diff --git a/README.md b/README.md new file mode 100644 index 0000000..82bd944 --- /dev/null +++ b/README.md @@ -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`.