文章目录
  1. 1. 插件入口文件
  2. 2. 插件启动流程
  3. 3. 参考

最近AI编程是挺火的,也确实能解决一些简单编程与代码生成。 于是乎今天有空就研究了下idea下流行的AI插件, 查看下反编译后的代码,了解下启动流程。
通过插件客户端,只能了解到客户端与服务端之间的通信,一点皮毛;而最有价值的部分,在于服务端AI大模型实现代码补全、代码自动生成,是没有办法了解到的。借助现在的AI能力,加上好的提示词,要实现IDE的AI插件, 会比之前容易很多了。

插件入口文件

idea的插件包在安装目录下的plugins目录下,插件的入口文件是plugin.xml,这个文件是插件的配置文件,里面定义了插件的ID、名称、版本、描述、作者、图标、依赖等等。
每个插件位于plugins下的一个子目录下,插件子目录下又有lib目录,然后是jar包,主jar包下的包含plugin.xml文件。所以第一步是找到包含plugin.xml的jar文件,再通过plugin.xml文件,找到插件的入口类。学习的这个插件的入口类是Cosy

目前对编写idea插件不太了解,之后有机会再研究。

插件启动流程

  • 启动时从服务器更新插件,下载客户端的二进制文件并解压。主目录位于用户主目录下.<doge>目录,客户端是使用golang开发。
  • 启动客户端程序,使用LSP协议,通过websocket协议通信。启动后,会在主目录下生成.info文件,包含ws端口与进程pid
  • chat聊天窗口输入数据后,调用ws socket client发送数据,在收到返回消息后通过调用processor处理Action事件,更新界面。

参考

文章目录
  1. 1. 插件入口文件
  2. 2. 插件启动流程
  3. 3. 参考