JSONToKotlinClass 项目教程
1. 项目的目录结构及介绍
JSONToKotlinClass/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── com/
│ │ │ │ ├── sealwu/
│ │ │ │ │ ├── jsontokotlin/
│ │ │ │ │ │ ├── action/
│ │ │ │ │ │ ├── model/
│ │ │ │ │ │ ├── utils/
│ │ │ │ │ │ ├── JsonToKotlinClass.java
│ │ │ │ │ │ ├── JsonToKotlinSettings.java
│ │ │ │ │ │ └── ...
│ │ ├── resources/
│ │ │ ├── META-INF/
│ │ │ │ ├── plugin.xml
│ │ │ │ └── ...
│ │ │ └── ...
│ │ └── ...
│ ├── test/
│ │ ├── java/
│ │ │ ├── com/
│ │ │ │ ├── sealwu/
│ │ │ │ │ ├── jsontokotlin/
│ │ │ │ │ │ ├── ...
│ │ │ │ │ └── ...
│ │ │ └── ...
│ │ └── ...
│ └── ...
├── .gitignore
├── LICENSE
├── README.md
└── ...
目录结构介绍
src/main/java/com/sealwu/jsontokotlin/
: 包含插件的主要代码。action/
: 包含插件的动作类。model/
: 包含插件的数据模型类。utils/
: 包含插件的工具类。JsonToKotlinClass.java
: 插件的主类。JsonToKotlinSettings.java
: 插件的配置类。
src/main/resources/META-INF/plugin.xml
: 插件的配置文件。src/test/java/com/sealwu/jsontokotlin/
: 包含插件的测试代码。.gitignore
: Git忽略文件。LICENSE
: 项目的许可证。README.md
: 项目的说明文档。
2. 项目的启动文件介绍
项目的启动文件是 JsonToKotlinClass.java
,它位于 src/main/java/com/sealwu/jsontokotlin/
目录下。这个文件是插件的主类,负责初始化和启动插件。
package com.sealwu.jsontokotlin;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
public class JsonToKotlinClass extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
// 插件启动逻辑
}
}
3. 项目的配置文件介绍
项目的配置文件是 plugin.xml
,它位于 src/main/resources/META-INF/
目录下。这个文件包含了插件的元数据和配置信息。
<idea-plugin>
<id>com.sealwu.jsontokotlin</id>
<name>JSON To Kotlin Class</name>
<version>1.0</version>
<vendor email="support@example.com" url="http://example.com">Your Company</vendor>
<description><![CDATA[
Plugin for Android Studio And IntelliJ Idea to generate Kotlin data class code from JSON text (Json to Kotlin).
]]></description>
<change-notes><![CDATA[
Initial release of the plugin.
]]></change-notes>
<actions>
<action id="com.sealwu.jsontokotlin.JsonToKotlinClass" class="com.sealwu.jsontokotlin.JsonToKotlinClass" text="JsonToKotlinClass" description="Generate Kotlin data class from JSON">
<add-to-group group-id="EditorPopup