Ich entwickle ein Plugin für intellij und ich möchte benutzerdefinierte Vorschläge zu XML-Editor basierend auf einem xsd hinzufügen. Bis jetzt kann ich erforderliche Vorschläge von der xsd Datei erhalten.Intellij Completion Contributor
Ich habe einen Abschluss Beitrag für XML implementiert als
import com.intellij.codeInsight.completion.*;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.patterns.PlatformPatterns;
import com.intellij.psi.xml.XmlElementType;
import com.intellij.util.ProcessingContext;
import com.intellij.lang.xml.*;
import org.jetbrains.annotations.NotNull;
public class SimpleCompletionContributor extends CompletionContributor {
public SimpleCompletionContributor() {
extend(CompletionType.BASIC,PlatformPatterns.psiElement(XmlElementType.XML_ATTRIBUTE_VALUE).withLanguage(XMLLanguage.INSTANCE),
new CompletionProvider<CompletionParameters>() {
public void addCompletions(@NotNull CompletionParameters parameters,
ProcessingContext context,
@NotNull CompletionResultSet resultSet) {
resultSet.addElement(LookupElementBuilder.create("Hello"));
}
}
);
}
}
folgt aber diese bieten keinen Vorschlag. aber wenn ich eine benutzerdefinierte Sprache implementiere, funktioniert es. Mein Ziel ist es, den Kontext der Cursorposition zu sehen und basierend darauf einen Vorschlag zu machen. Als ein Beispiel, wenn Benutzer ein Tag auf XML-Datei-Plugin startet, sollten Attribute als Code-Vervollständigung bereitstellen. Ich bin neu in dieser benutzerdefinierten Sprache.
Also kann mir jemand mit diesem Abschluss Beitrag helfen?
Wie haben Sie diesen Mitarbeiter in plugin.xml registriert? –
Ich füge hinzu –