【问题标题】:Custom Jetbrains Plugin - Missing Dependency自定义 Jetbrains 插件 - 缺少依赖项
【发布时间】: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 解析 PsiIdentifier 和 PsiMethod ...

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()
}

【问题讨论】:

标签: java intellij-idea intellij-plugin psi


【解决方案1】:

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

intellij {
    plugins = ['java']
}

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多