Kotlin 将VSCode扩展转换为Intellij插件问题

Kotlin 将VSCode扩展转换为Intellij插件问题,kotlin,gradle,intellij-idea,plugins,intellij-plugin,Kotlin,Gradle,Intellij Idea,Plugins,Intellij Plugin,我刚刚为VisualStudio代码()编写了第一个扩展。这很好,现在我正尝试为Intellij IDEA创建一个类似的插件 没有什么事情进展顺利,或者像我发现的任何例子那样有效 也许我试图一次学习太多新东西:我对Gradle、IDEA的扩展API或Kotlin不太了解(至少我对Java很了解) 我现在坚持的是从IDEA获取事件或通知的基础知识,这些事件或通知至少大致对应于这些VSCode扩展回调: workspace.onDidOpenTextDocument workspace.onDidC

我刚刚为VisualStudio代码()编写了第一个扩展。这很好,现在我正尝试为Intellij IDEA创建一个类似的插件

没有什么事情进展顺利,或者像我发现的任何例子那样有效

也许我试图一次学习太多新东西:我对Gradle、IDEA的扩展API或Kotlin不太了解(至少我对Java很了解)

我现在坚持的是从IDEA获取事件或通知的基础知识,这些事件或通知至少大致对应于这些VSCode扩展回调:

workspace.onDidOpenTextDocument
workspace.onDidCloseTextDocument
window.onDidChangeVisibleTextEditors
window.onDidChangeTextEditorSelection
workspace.onDidChangeTextDocument
workspace.onDidChangeConfiguration
基本上我需要知道:

  • 在开始打开项目时,当前打开了哪些文档/编辑器
  • 之后打开和关闭文档/编辑器时
  • 当当前光标位置或文本选择在任何打开的编辑器中更改时
  • 在任何打开的编辑器中修改文本时
  • 当插件的配置被修改时
以下是我现在对
plugin.xml
文件的一点了解:


com.shetline.ligations-limited
连字有限公司
凯瑞谢特琳
只在你想要的地方,而不是你不想要的地方
]]>
com.intellij.modules.platform
我成功捕获的一个事件是应用程序启动时:

package com.shetline.lligatures
导入com.intellij.ide.AppLifecycleListener
类连接器slimited:AppLifecycleListener{
覆盖已创建的应用程序框架(commandLineArgs:MutableList){
println(“***appFrameCreated”)
}
}
我可以从示例代码中理解我是如何将操作附加到文档的,例如,一旦用户触发该操作,就可以了解相关的文档和编辑器。。。但我不想等那样的事情。我需要立即意识到这样一个事实,即一个编辑器是打开的,并且在这种情况发生时立即查看文档

我试着查看Rainbow括号的源代码,因为我认为在扩展和我尝试做的事情之间会有相当多的重叠——基本上就是将上下文格式应用于用户正在编辑的代码。但我恐怕很少了解彩虹支架是如何做到这一点的