idea插件开发

idea插件开发 IntelliJ IDEA插件开发入门指南

在JetBrains生态中,IntelliJ IDEA插件是扩展IDE功能的核心方式。通过插件开发,开发者能深度定制代码分析、自动化流程或集成第三方工具。本文将从环境搭建到插件发布,详解开发流程。

一、开发环境准备

1. 基础工具

– JDK 17+(需与目标IDE版本兼容)

– IntelliJ IDEA 2023.1+(需包含Plugin DevKit插件)

– Gradle 7.6+(官方推荐构建工具)

2. 项目初始化

通过IDEA新建项目,选择Gradle > IntelliJ Platform Plugin,配置:

– Project SDK:指向IDEA安装目录

– GroupId:如`com.example.plugin`

– ArtifactId:插件唯一标识

二、核心概念解析

1. 插件描述文件(plugin.xml)

定义插件元数据、依赖项及扩展点:

xml

com.example.myplugin

Code Analyzer

1.0

Your Company

com.intellij.modules.platform

2. 扩展点(Extension Points)

– Actions:用户交互入口(菜单项、工具栏按钮)

– Services:后台服务(持久化或定时任务)

– Inspections:代码检查规则

– Tool Windows:自定义界面面板

三、实战:开发代码统计插件

1. 创建Action

右键菜单新增“统计代码行数”选项:

java

public class CodeLineAction extends AnAction {

@Override

public void actionPerformed(@NotNull AnActionEvent e) {

Project project = e.getProject();

int lines = countCodeLines(project);

Messages.showInfoMessage(“Total lines: ” + lines, “Code Stats”);

}

}

在`plugin.xml`中注册Action:

xml

2. 实现统计逻辑

递归遍历项目文件计算行数:

java

private int countCodeLines(Project project) {

VirtualFile root = ProjectRootManager.getInstance(project).getContentRoots()[0];

return FileUtil.iterateFiles(root, file -> file.getExtension().equals(“java”), true)

.mapToInt(file -> FileContentUtil.loadText(file).split(“n”).length)

.sum();

}

3. 添加快捷键

在`plugin.xml`中绑定`Ctrl+Shift+L`:

xml

四、调试与发布

1. 本地测试

点击`Run Plugin`启动沙盒环境,新IDEA实例将加载插件。

2. 打包发布

– 执行Gradle任务`buildPlugin`生成`.zip`包

– 登录[JetBrains Marketplace](https://plugins.jetbrains.com),上传插件并填写元数据:

– 版本号遵循SemVer规范

– 提供兼容的IDE版本范围

– 上传截图和演示视频(提升下载量)

五、进阶技巧

– PSI(Program Structure Interface):操作代码语法树实现重构功能

– 异步处理:使用`Task.Backgroundable`避免阻塞UI线程

– 持久化存储:通过`PersistentStateComponent`保存用户配置

结语

IDEA插件开发打通了IDE定制的无限可能。通过合理利用扩展点和API,开发者能显著提升团队效率。建议参考[官方文档](https://plugins.jetbrains.com/docs/intellij/welcome.html)深入探索,并参与开源社区(如[IntelliJ SDK Docs](https://github.com/JetBrains/intellij-sdk-docs))获取最新实践。

点击右侧按钮,了解更多行业解决方案。

咨询解决方案

相关推荐

idea插件开发官方指南

idea插件开发官方指南

IntelliJ IDEA 插件开发官方指南

IntelliJ IDEA 插件开发允许开发者扩展 IDE 功能,提升开发效率。本指南将带你快速入门插件开发的核心流程。

一、环境准备

1. 安装 IntelliJ IDEA

推荐使用最新版 [IntelliJ IDEA Ultimate](https://www.jetbrains.com/idea/),社区版也可支持基础插件开发。

2. 配置 IntelliJ Platform SDK

- 创建新项目时选择 "IDE Plugin" 类型。

- 首次开发需配置 IntelliJ Platform SDK:在项目设置中指定本地安装的 IDEA 路径(自动检测或手动添加)。

3. 依赖管理

插件开发通常基于 Gradle,`build.gradle.kts` 中需包含:

kotlin

plugins { id("org.jetbrains.intellij") version "1.16.0" }

intellij { version.set("2023.1") } // 与目标IDE版本一致

二、创建第一个插件

1. 项目结构

新建插件项目后,默认生成以下文件:

- `plugin.xml`: 插件元数据(名称、描述、依赖等)。

- `src/main/kotlin`: 插件代码目录(支持Java/Kotlin)。

2. 示例:添加工具窗口

- 创建类继承 `ToolWindowFactory`:

kotlin

class MyToolWindow : ToolWindowFactory {

override fun createToolWindowContent(project: Project, toolWindow: ToolWindow) {

val panel = JPanel()

panel.add(JLabel("Hello Plugin!"))

val content = toolWindow.contentManager.factory.createContent(panel, "", false)

toolWindow.contentManager.addContent(content)

}

}

- 在 `plugin.xml` 中注册:

xml

三、核心开发概念

1. Actions(操作)

用户交互入口(菜单项、快捷键等)。继承 `AnAction` 类并重写 `actionPerformed`:

kotlin

class MyAction : AnAction() {

override fun actionPerformed(e: AnActionEvent) {

e.project?.showMessage("Action Triggered!")

}

}

注册到 `plugin.xml`:

xml

2. PSI(程序结构接口)

操作代码元素(类、方法等)的核心API。例如,获取当前文件:

kotlin

val psiFile = e.getData(CommonDataKeys.PSI_FILE)

3. UI 组件

使用 Swing 或 JetBrains 的 [Kotlin UI DSL](https://github.com/JetBrains/intellij-ui-test-robot) 构建界面。

四、调试与测试

1. 运行插件

点击 Gradle 任务的 `runIde`,将启动沙盒环境(独立于主IDE)。

2. 断点调试

直接附加调试器到沙盒实例,实时检查变量和逻辑。

3. 单元测试

使用 `intellij.junit5` 和 `LightPlatformTestCase` 模拟IDE环境测试组件。

五、发布插件

1. 打包

执行 Gradle 的 `buildPlugin` 任务,生成 `.zip` 或 `.jar` 文件。

2. 发布到市场

- 登录 [JetBrains Marketplace](https://plugins.jetbrains.com/)。

- 提交插件包,填写版本说明和兼容的IDE版本。

3. 更新维护

通过 `version` 字段管理语义化版本号,及时适配新IDE版本。

六、最佳实践

- 遵循官方规范:参考 [Plugin Verifier](https://plugins.jetbrains.com/docs/intellij/plugin-verifier.html) 确保兼容性。

- 模块化设计:将功能拆分为独立监听器或服务。

- 性能优化:避免阻塞主线程,耗时操作使用 `Backgroundable`。

资源推荐

- 官方文档: [IntelliJ Platform SDK Docs](https://plugins.jetbrains.com/docs/intellij/)

- 社区: [JetBrains Slack](https://plugins.jetbrains.com/slack)、[IntelliJ IDEA OpenAPI论坛](https://intellij-support.jetbrains.com/)

- 示例仓库: [intellij-sdk-code-samples](https://github.com/JetBrains/intellij-sdk-code-samples)

通过本指南,你可以快速上手开发实用插件,为开发者社区贡献工具!

点击右侧按钮,了解更多行业解决方案。

咨询解决方案

idea插件开发中文文档

idea插件开发中文文档

IntelliJ IDEA 插件开发简明指南

一、环境准备

1. 开发工具

- 安装 IntelliJ IDEA Ultimate 版(社区版功能受限)

- 确保 JDK 11+ 环境(推荐 JDK 17,与最新插件开发兼容)

2. 依赖配置

使用 Gradle 创建项目(推荐):

groovy

plugins {

id 'java'

id 'org.jetbrains.intellij' version '1.16.0'

}

intellij {

version = '2023.2' // 与目标IDE版本匹配

type = 'IC' // 社区版,可选 'IU'(旗舰版)

}

二、创建第一个插件

1. 新建项目

选择 IntelliJ Platform Plugin 模板,配置插件ID和名称。

2. 核心文件结构

- `src/main/java`: 插件代码

- `resources/META-INF/plugin.xml`: 插件元数据(名称、依赖等)

3. 编写Action示例

java

public class HelloAction extends AnAction {

@Override

public void actionPerformed(@NotNull AnActionEvent e) {

Project project = e.getProject();

Messages.showInfoMessage("Hello Plugin!", "Greeting");

}

}

在 `plugin.xml` 中注册Action:

xml

三、核心开发概念

1. PSI(Program Structure Interface)

- 通过 `PsiFile` 操作代码结构,如获取Java类:

java

PsiJavaFile javaFile = (PsiJavaFile) psiFile;

- 使用 `PsiElementVisitor` 遍历AST树。

2. 文件系统交互

- `VirtualFile`: 表示IDE中的虚拟文件(物理文件或内存文件)

- 通过 `LocalFileSystem` 获取物理文件路径。

3. 界面开发

- Swing组件:直接使用 `JPanel`、`JButton` 等

- 工具窗口:继承 `ToolWindowFactory` 并在 `plugin.xml` 注册

- 对话框:使用 `DialogWrapper` 简化弹窗开发

四、调试与发布

1. 运行测试

通过Gradle任务 `runIde` 启动沙盒环境,自动加载当前插件。

2. 打包插件

bash

./gradlew buildPlugin 生成ZIP包(位于 build/distributions/)

3. 发布到市场

- 登录 [JetBrains Marketplace](https://plugins.jetbrains.com)

- 上传ZIP包并填写描述、兼容版本等信息

- 通过审核后用户即可通过IDE插件市场安装

五、进阶技巧

1. 持久化配置

使用 `PersistentStateComponent` 保存插件状态:

java

@State(name = "MyConfig", storages = @Storage("my_config.xml"))

public class MyConfigService implements PersistentStateComponent {

// 实现配置加载/保存逻辑

}

2. 后台任务

避免阻塞UI线程,使用 `Task.Backgroundable`:

java

new Task.Backgroundable(project, "Processing...") {

public void run(@NotNull ProgressIndicator indicator) {

// 耗时操作

}

}.queue();

六、资源推荐

- 官方文档:https://plugins.jetbrains.com/docs/intellij

- 开源示例:

- 官方Demo:https://github.com/JetBrains/intellij-sdk-code-samples

- 中文社区:https://www.ideajava.com

常见问题

- 版本兼容性:插件需明确声明兼容的IDE版本范围

- 性能优化:避免频繁操作PSI树,必要时使用批量操作

- UI线程:耗时操作必须异步执行

(本文约800字,涵盖插件开发全流程核心要点)

点击右侧按钮,了解更多行业解决方案。

咨询解决方案

idea插件开发官方文档

idea插件开发官方文档

以下是关于 IntelliJ IDEA 插件开发的官方文档核心内容整理(约 800 字):

IntelliJ IDEA 插件开发指南

1. 开发环境准备

- JDK 版本:推荐使用 JDK 17+(需与目标 IDE 版本兼容)

- IDE:IntelliJ IDEA Ultimate(内置插件开发支持)

- 必备插件:

- Plugin DevKit(官方插件开发工具包)

- Gradle(推荐使用 Gradle 构建项目)

2. 创建第一个插件

步骤 1:新建项目

1. 选择 `File > New > Project`

2. 模板选择 `IDE Plugin`,配置项目名称和路径

3. 选择构建工具(Gradle 或 Plugin DevKit)

步骤 2:项目结构

markdown

src/

main/

java/ 插件代码

resources/ 资源文件(图标、配置等)

build.gradle Gradle 构建配置

plugin.xml 插件核心描述文件

步骤 3:配置 plugin.xml

xml

com.yourcompany.unique.plugin.id

MyPlugin

1.0

YourCompany

com.intellij.modules.platform

3. 核心开发概念

- 扩展点(Extension Points):通过 `plugin.xml` 扩展 IDE 功能(如菜单、工具窗口)

- Actions 系统:用户交互入口,通过 `AnAction` 类实现点击事件

- PSI(Program Structure Interface):操作代码的抽象语法树

- 编辑器 API:访问文本选区、语法高亮等编辑器功能

4. 调试与部署

- 本地运行:通过 Gradle 任务 `runIde` 启动沙盒环境

- 调试:直接附加调试器到沙盒实例

- 打包发布:

bash

./gradlew buildPlugin 生成 .zip 分发包

- 发布到市场:通过 [JetBrains Marketplace](https://plugins.jetbrains.com) 提交审核

5. 关键 API 示例

创建工具窗口:

java

public class MyToolWindow {

public static void create(@NotNull Project project) {

ToolWindowManager.getInstance(project).registerToolWindow(

"MyToolWindow",

true,

ToolWindowAnchor.RIGHT

);

}

}

自定义 Action:

java

public class MyAction extends AnAction {

@Override

public void actionPerformed(@NotNull AnActionEvent e) {

Messages.showInfoMessage("Hello Plugin!", "Greeting");

}

}

6. 最佳实践

- 兼容性:通过 `until-build` 和 `since-build` 控制插件版本兼容范围

- 性能优化:避免阻塞主线程,复杂操作使用 `BackgroundTask`

- UI 线程规则:所有 UI 更新需在 `SwingUtilities.invokeLater()` 中执行

- 测试建议:使用 `LightJavaCodeInsightTestCase` 编写单元测试

7. 学习资源

- 官方文档:[IntelliJ Platform SDK](https://plugins.jetbrains.com/docs/intellij/welcome.html)

- 示例仓库:[intellij-sdk-code-samples](https://github.com/JetBrains/intellij-sdk-code-samples)

- 社区支持:[JetBrains Platform Slack](https://plugins.jetbrains.com/slack)

通过以上内容,开发者可以快速上手创建基础插件,并了解进阶开发的关键要点。建议结合官方文档中的具体案例进行实践学习。

点击右侧按钮,了解更多行业解决方案。

咨询解决方案

免责声明

本文内容通过AI工具智能整合而成,仅供参考,e路人不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系1224598712@qq.com进行反馈,e路人收到您的反馈后将及时答复和处理。

价值及亮点

只有业财一体化的软件,才能提升企业管理经营效率

帮助您的企业加速成长的云端生鲜ERP管理系统

业财税一体融合

企业的进销存、资金、财务、合同全流程在线管控,提升协同效率,以便管理者随时随地掌控企业经营情况。

财务管理智能化

对接企业的进销存系统,信息共享,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来。

经营数据智能决策

手机端、电脑端随时跟踪经营数据,智能商品\客户分析、实时监控企业异常数据,制定经营策略。

项目合同全过程管控

项目合同成本、费用自动归集,执行进度、回款异常及时预警,利润一目了然,项目全过程精细化管控。

业务单据智能流转到财务, 一套系统多管齐下

随时随地,多端报价开单做生意

聚焦生鲜供应链管理,适配食材行业特性

实时可视化经营图表,辅助做经营决策

定制行业解决方案

产品介绍

热门产品推荐

基于大中小食材供应链企业数智化的需求,e路人推出了一系列SaaS产品,包括配送系统(生鲜配送系统软件SaaS产品)、央厨系统(中央厨房管理系统软件SaaS产品)、溯源系统(农产品溯源系统软件SaaS产品)等,截至2023年,e路人的服务企业数量已突破13000家。

生鲜配送软件

87600元/年起

订单管理

采购管理

分拣管理

仓储管理

配送管理

数据报表

免费试用

食材溯源系统

87600元/年起

订单管理

采购管理

分拣管理

仓储管理

配送管理

数据报表

免费试用

中央厨房系统

XXX元/年起

订单管理

采购管理

分拣管理

仓储管理

配送管理

数据报表

免费试用

竞品对比

功能对比,好用在于细节!

功能差异点
e路人ERP
某友商
微信商城

商城自定义装修、每日特价

货到付款、微信支付、余额支付等

支持

不支持

销售提成计算

支持

不支持

销售费用分摊

(运费、装卸费等)

支持

不支持

销售物流跟踪

支持

不支持

优惠促销

(优惠券、单品折扣、满减)

支持

不支持

采购管理

进货开单时

历史单据查询

支持

非常方便

支持

不直观

采购开单时

查看历史进价

支持

不支持

库存管理

拣货装箱

PDA拣货出入库

支持

不支持

多人同时盘点

支持

不支持

实时计算出库成本

支持

部分支持

往来资金

供应商/客户对账单

及微信分享账单

支持

不支持

报表

个性化设置报表查询方案

支持

不支持

经营管理

供应商/客户对账单

及微信分享账单

支持

不支持

个性化设置报表查询方案

支持

不支持

增购功能

微信商城小程序

食材溯源

支持

不支持

PDA预分拣

供应商代分拣

支持

不支持

咨询具体功能对比

场景

角色场景

从管控到赋能,帮公司不同角色应用场景提升效率

老板

支持查看综合销售情况、商品销售情况、客户销售情况、客户商品销售情况、分类销售情况、售后报表等

财务

支持先款后货与先货后款结款模式,客户帐期支持周结、月结

仓管

支持出库、入库、盘点3种作业单据,支持手动输入、扫码输入商品数

分拣

可随时查看分拣商品种类、供应商、入库数量、入库单号、操作员

录单

灵活下单方式,客户自主下单、代客下单,满足不同业务场景

老板

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

财务

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

库管

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

业务员

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

项目经理

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

老板

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

财务

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

库管

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

业务员

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

项目经理

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

老板

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

财务

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

库管

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

业务员

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

项目经理

对接企业的进销存系统,信息共享,对账查账更方便,一键智能生成财务凭证和账表,将财务人员从基础性工作中释放出来

行业场景

适用于【生鲜配送、蔬菜批发、肉类、冻品、水产、食品领域】 多行业需求

一键体验所有功能

申请免费试用

服务背书

全流程陪伴式价值服务

我们秉承用户之友、持续创新、专业奋斗的核心价值观,一切源于为客户创造价值

初次相识

体验产品

1对1定制方案

下单购买

开通应用

专家指导使用

售后服务

客户售前/售后一站式服务内容

e路人放心购,365天全年无休,为企业提供一站式服务保障

e路人品质 品牌口碑双保障

e路人,中国食材供应链SaaS领导品牌。2022年5月,e路人完成由哗啦啦领投的数亿元C轮融资,成为行业唯一获C轮融资企业。

全自动

高性价比,自动更新最新版本

按需订阅,按年付费,最低每天仅需266.84元;产品即买即用,无需安装下载,用户快速实现上云,产品自动更新到最新版本。

7*16小时

7*16小时售后保障,及时解决问题

5*8小时400热线/7*16小时企业微信群/7*15小时人工在线客服,更有专家1对1提供专业指导操作等全方位服务,确保您购买与服务无后顾之忧。

安全 可靠

“银行级”数据安全,上云数据不丢失

服务器部署在安全可靠的云平台,荣获我国唯一针对云服务可信性的权威认证体系。

简介

13000+

企业用户信赖

10年

持续专注食材供应链

30+

荣誉证书

9+

专利技术证书

60+

软件版权登记

获取试用资格

限时前100名!免费试用通道

立即提交
免费试用