我们想为自定义语言创建IntelliJ IDEA插件。已经有一个大的(独立于IntelliJ的)项目,用Scala编写,叫做MyLang
,它为自定义语言提供了解析和类型检查。
一个主要问题是我们希望插件与MyLang
依赖项的特定来源脱钩,但是我们曾经或曾经被告知的所有尝试和想法都有缺点。
tl; dr:是否可以通过IntelliJ插件来实现用户可选的运行时Java依赖关系,从而实现以下目标?
MyLang
依赖项源(也从版本,至少是非主要的)中解耦MyLang
依赖项指向本地JAR和/或已编译的源目录。MyLang
的开发人员使用该插件测试其最新更改。例如,如果一个开发人员改进了MyLang
语言的类型检查,那么他可能想立即在IntelliJ中对其进行测试以获取视觉反馈。MyLang
依赖性。MyLang
中的数据结构(即类和函数)。部署具有MyLang
依赖项的插件
部署没有MyLang
的插件,让用户选择MyLang
构建JAR并使用反射。
针对(稳定)MyLang
编译插件,无需使用部署程序即可使用classloader魔术
addUrl
addUrl
被标记为已弃用,也许将来会被删除。IntelliJ论坛中有一个(未解决的)讨论,其中OP需要完全相同的设置:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206121299-classloader-in-plugin