#java #intellij-idea #intellij-plugin #psi
Вопрос:
Я пытаюсь создать свой собственный маркер линии для Clion, следуя этому руководству — https://plugins.jetbrains.com/docs/intellij/line-marker-provider.html . Мой вопрос касается атрибута языка в теге расширения в plugin.xml
файле …
<extensions defaultExtensionNs="com.intellij">
<codeInsight.lineMarkerProvider language="JAVA"
implementationClass="org.intellij.sdk.language.SimpleLineMarkerProvider"/>
</extensions>
Когда я добавляю это расширение language="JAVA"
, оно подсвечивается красным. Какой плагин/зависимость мне нужно добавить, чтобы это было решено?
Моя среда IDE также не может разрешить PsiIdentifier
и PsiMethod
из предоставленного фрагмента …
public class MyCorrectLineMarkerProvider implements LineMarkerProvider {
public LineMarkerInfo getLineMarkerInfo(@NotNull PsiElement element) {
if (element instanceof PsiIdentifier amp;amp; 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()
}
Комментарии:
1. Вы можете использовать форум открытого API сообщества для ответа на вопрос, связанный с разработкой плагинов: intellij-support.jetbrains.com/hc/en-us/community/topics/… .
Ответ №1:
Вы должны добавить зависимость от java
плагина в свой build.gradle
, вот так
intellij {
plugins = ['java']
}
Дополнительную информацию о зависимостях плагинов см. в Руководстве разработчика IntelliJ.
Учебник, которому вы следуете, предназначен для добавления поддержки нового языка, вместо этого вы добавляете маркер строки в Java (существующий язык :p). Зависимости плагинов просто выходят за рамки этого руководства.