docs: Add GEMINI.md for project context
Introduces GEMINI.md to provide a comprehensive overview of the ActionModelsGenerator project, including its purpose, core technologies, build instructions, and development conventions. This document serves as essential context for future interactions and development.
This commit is contained in:
44
GEMINI.md
Normal file
44
GEMINI.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# ActionModelsGenerator
|
||||
|
||||
## Project Overview
|
||||
|
||||
The `ActionModelsGenerator` is an IntelliJ Platform Plugin designed to automate the generation of Java `ActionBean` and Data Transfer Object (DTO) classes from a database schema. This plugin integrates directly into the IntelliJ IDE, allowing developers to select a database table and generate corresponding Java classes based on predefined FreeMarker templates.
|
||||
|
||||
**Key Features:**
|
||||
* **Database Schema Introspection:** Utilizes IntelliJ's database tools to read table and column metadata.
|
||||
* **Code Generation:** Generates `ActionBean` and DTO classes using FreeMarker templates.
|
||||
* **Template-driven:** Customizable code generation via FreeMarker templates (`actionBean.ftl`, `actionBean.extend.ftl`, `actionDTO.ftl`, `actionDTO.extend.ftl`).
|
||||
* **IDE Integration:** Provides a context menu action ("Generate Action Models") in the Database View for easy access.
|
||||
|
||||
**Core Technologies:**
|
||||
* **Java:** Primary development language.
|
||||
* **Kotlin:** Configured in `build.gradle.kts`, indicating potential for Kotlin usage.
|
||||
* **Gradle (Kotlin DSL):** Build automation system.
|
||||
* **IntelliJ Platform SDK:** For IDE integration and database interaction.
|
||||
* **FreeMarker:** Templating engine for code generation.
|
||||
|
||||
## Building and Running
|
||||
|
||||
This project is an IntelliJ Platform Plugin built with Gradle.
|
||||
|
||||
**Build the Plugin:**
|
||||
To build the plugin, use the following Gradle command:
|
||||
```bash
|
||||
./gradlew build
|
||||
```
|
||||
This will produce a `.zip` plugin artifact in the `build/distributions` directory.
|
||||
|
||||
**Run the Plugin in a Development IDE:**
|
||||
To run a new IntelliJ IDE instance with this plugin installed for development and testing:
|
||||
```bash
|
||||
./gradlew runIde
|
||||
```
|
||||
Alternatively, you can use the "Run IDE with Plugin" run configuration provided in the `.run` directory within IntelliJ IDEA.
|
||||
|
||||
## Development Conventions
|
||||
|
||||
* **Language:** Primarily Java, with Kotlin support configured.
|
||||
* **Build System:** Gradle with Kotlin DSL (`.gradle.kts` files).
|
||||
* **Code Generation:** FreeMarker templates are located in `src/main/resources/templates/`. Modifications to these templates will change the generated code structure.
|
||||
* **IntelliJ Platform APIs:** Development involves using IntelliJ Platform SDK for UI actions, virtual file system operations, and database schema access.
|
||||
* **Action Definition:** New actions are defined in `src/main/resources/META-INF/plugin.xml`.
|
||||
Reference in New Issue
Block a user