自定义 Jetbrains 插件 - 缺少依赖项

Posted

技术标签:

【中文标题】自定义 Jetbrains 插件 - 缺少依赖项【英文标题】:Custom Jetbrains Plugin - Missing Dependency 【发布时间】:2021-12-02 10:54:00 【问题描述】:

我正在尝试按照本教程 - https://plugins.jetbrains.com/docs/intellij/line-marker-provider.html 为 Clion 构建我自己的自定义线标记。我的问题是关于 plugin.xml 文件中扩展标签上的语言属性...

<extensions defaultExtensionNs="com.intellij">
  <codeInsight.lineMarkerProvider language="JAVA"
          implementationClass="org.intellij.sdk.language.SimpleLineMarkerProvider"/>
</extensions>

当我添加这个扩展时,language="JAVA" 会以红色突出显示。我需要添加什么插件/依赖项才能解决这个问题?

我的 IDE 也无法从提供的 sn-p 解析 PsiIdentifierPsiMethod ...

public class MyCorrectLineMarkerProvider implements LineMarkerProvider 
  public LineMarkerInfo getLineMarkerInfo(@NotNull PsiElement element) 
    if (element instanceof PsiIdentifier && element.getParent() instanceof PsiMethod) return new LineMarkerInfo(element, ...);
    return null;
  

这就是我的 build.gradle 的样子,我知道我需要添加一些其他依赖项,但我一直在关注的教程对此不是很清楚。

plugins 
    id 'org.jetbrains.intellij' version '1.2.0'
    id 'java'


group 'com.example'
version '1.0-SNAPSHOT'

repositories 
    mavenCentral()


dependencies 
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'


// See https://github.com/JetBrains/gradle-intellij-plugin/
intellij 
    version = '2021.2.2'


runIde 
    jvmArgs '--add-exports', 'java.base/jdk.internal.vm=ALL-UNNAMED'


patchPluginXml 
    changeNotes = """
      Add change notes here.<br>
      <em>most HTML tags may be used</em>"""

test 
    useJUnitPlatform()

【问题讨论】:

您可以使用社区 Open API 论坛提出与插件开发相关的问题:intellij-support.jetbrains.com/hc/en-us/community/topics/…。 【参考方案1】:

你必须在build.gradle 中添加对java 插件的依赖,就像这样

intellij 
    plugins = ['java']

有关插件依赖项的更多信息,请参阅IntelliJ Dev Guide。

您所遵循的教程旨在添加对新语言的支持,而不是向 Java(现有语言:p)添加行标记。插件依赖项完全超出了该教程的范围。

【讨论】:

以上是关于自定义 Jetbrains 插件 - 缺少依赖项的主要内容,如果未能解决你的问题,请参考以下文章

C#下拉菜单最后一项自定义的实现

Android Studio 缺少必要的插件 org.jetbrains.android

Android Studio 缺少 MAC ERROR 的必要插件 org.jetbrains.android

useEffect 在自定义钩子中使用 ref 缺少依赖项警告

IvyIDEA 插件不会下载所有依赖项

JetBrains IDE。要突出显示的自定义模式(不像todos那样评论)