写一个亲爱的idea工具的插件 - 1
使用github上的idea plugin模板开始制作
package com.github.moocstudent.plugin1.listeners
import com.intellij.openapi.components.service
import com.intellij.openapi.project.Project
import com.intellij.openapi.project.ProjectManagerListener
import com.github.moocstudent.plugin1.services.MyProjectService
internal class MyProjectManagerListener : ProjectManagerListener {
override fun projectOpened(project: Project) {
project.service<MyProjectService>()
}
}
默认语言是kotlin
可以试着转为java,可以参考我的kotlin笔记 https://www.yuque.com/docs/share/c637c257-8ad8-46cb-914c-ff538a116479?#实际我参与过仅仅一个kotlin的项目,但是这个语言确认精炼.
上面的代码转为java:
package com.github.moocstudent.plugin1.listeners;
import com.github.moocstudent.plugin1.services.MyProjectServiceJ;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManagerListener;
/**
* @Author: zhangQi
* @Date: 2021-12-29 9:34
*/
public class MyProjectManagerListenerJ implements ProjectManagerListener {
@Override
public void projectOpened(Project project){
project.getService(MyProjectServiceJ.class);
}
}
其中里面的.class可以直接使用kotlin的类
package com.github.moocstudent.plugin1.listeners;
import com.github.moocstudent.plugin1.services.MyProjectService;
import com.github.moocstudent.plugin1.services.MyProjectServiceJ;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManagerListener;
/**
* @Author: zhangQi
* @Date: 2021-12-29 9:34
*/
public class MyProjectManagerListenerJ implements ProjectManagerListener {
@Override
public void projectOpened(Project project){
project.getService(MyProjectService.class);
}
}
因为两者都是运行在JVM上的语言,所以这个kotlin类也可以编译为class
package com.github.moocstudent.plugin1.services
import com.intellij.openapi.project.Project
import com.github.moocstudent.plugin1.MyBundle
class MyProjectService(project: Project) {
init {
println(MyBundle.message("projectService", project.name))
}
}
如果不是从plugin template配置,需要配置一下idea平台的SDK,具体不说了,这里感觉还是直接template比较合适
因为我配置非templateSDK时,没有引入相对应的类,因为不仅对IDEA版本有编排也是对JDK的版本的一个编排问题
使用plugin template创建了一个AnAction继承类
点击后正常弹出提示:
参考:
https://github.com/moocstudent/plugin1
https://plugins.jetbrains.com/docs/intellij/github-template.html
https://plugins.jetbrains.com/docs/intellij/working-with-custom-actions.html#extending-the-update-method
https://plugins.jetbrains.com/docs/marketplace/about-marketplace.html#what-are-the-benefits-of-using-jetbrains-marketplace-extensions
https://www.zhihu.com/question/378975906/answer/1079100012
https://www.cnblogs.com/mushan/p/12275581.html
作者:ukyo--碳水化合物
出处:https://www.cnblogs.com/ukzq/p/15741104.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
2019-12-29 sql - group by 之后获取其它要的字段并根据where选定
2018-12-29 [SpringMVC] - 简单说明什么是SpringMVC