Es ist sehr wahrscheinlich, dass ich den Problembereich einfach nicht verstehe, aber ich habe Probleme, das MEF (Editor Classifier-Projekt) herauszufinden.So fügen Sie Vervollständigungswörter dynamisch zur VS2013-Syntaxerweiterung (MEF) hinzu
Ich habe eine Syntax highligher für Informix Stored Procedure-Sprache erstellt (Zusammenführen der Walkthrough-Guides von MSDN https://msdn.microsoft.com/en-us/library/ee197665.aspx).
Ein Hauptproblem, das ich habe, ist - ich möchte in der Lage sein, alle Instanzen des Schlüsselwortes "DEFINE" zu finden und das folgende Wort direkt in die Statement Completion-Erweiterung einzufügen (derzeit wird es aus einer definierten Liste von Wörtern gefüllt)).
Ähnlich wie die native Unterstützung von C# - wenn Sie eine Variable definieren, wird sie im Dropdown-Menü für die automatische Vervollständigung verfügbar.
ich losgeworden die in der Klasse Hardcoding (aus dem Durchlauf) und mein Abschluss Worte sind wie folgt definiert:
List<Completion> completions = new List<Completion>();
CompletionTags completionTags = new CompletionTags();
foreach (string completionTag in completionTags.completionTags)
{
completions.Add(new Completion(completionTag));
};
Meine CompletionTags Klasse ist ziemlich einfach:
Klasse CompletionTags { Öffentlichkeit ListenvervollständigungTags;
public CompletionTags()
{
this.completionTags = new List<string> {
// SQL keywords
"COUNT",
"FROM",
"HAVING",
};
}
Ich weiß, was ich tun muss. Ich muss irgendwie den Puffer entführen, wenn er sich ändert, und alle Vorkommen von 'DEFINE ([a-zA-Z0-9 _] {1,})' finden und \ 1 zur completeTags-Liste hinzufügen.
Ich habe keine Ahnung, wie dies zu tun ist. Irgendwelche Zeiger in der rechten (oder irgendeiner) Richtung an diesem Punkt würden sehr geschätzt werden.
Art - wir irgendwann alle sind aus unserer Tiefe haben (ich habe für 3 Tage in C# worden Programmierung) ...
Ich habe es geschafft, diese Funktion zu erhalten, indem die CompletionTags Klasse in ein Singleton drehen - und dann habe ich die Syntax-Highlighter classifer entführt für die definiert zu überprüfen und Fügen Sie der completeTags Liste hinzu. Ich weiß, dass dies nicht der richtige Weg ist, also bleibt die Frage bestehen. – Trent