2015-05-15 10 views
8

Jest bardzo możliwe, że po prostu nie rozumiem problemu, ale mam problem ze zrozumieniem MEF (Editor Classifier project).Jak dynamicznie dodawać słowa uzupełniające do VS2013 Rozszerzenie składni (MEF)

Stworzyłem (łącząc przewodniki po instrukcjach z MSDN https://msdn.microsoft.com/en-us/library/ee197665.aspx) składni highligher dla języka procedury składowanej Informix.

Jednym z głównych problemów, jakie mam, jest: - Chcę znaleźć wszystkie wystąpienia słowa kluczowego "DEFINE" i zapełnić słowo bezpośrednio po nim w rozszerzeniu Statement Completion, które mam (obecnie jest wypełnione ze zdefiniowanej listy słów).

Podobnie jak natywne wsparcie C# - po zdefiniowaniu zmiennej staje się dostępna w menu rozwijanym autouzupełniania.

Pozbyłem się w klasie hardcoding (z solucji) i moje zakończenia słowa są zdefiniowane następująco:

List<Completion> completions = new List<Completion>(); 

CompletionTags completionTags = new CompletionTags(); 

foreach (string completionTag in completionTags.completionTags) 
{ 
    completions.Add(new Completion(completionTag)); 
}; 

Moja klasa CompletionTags jest dość prosta:

klasy CompletionTags { publicznego List completionTags;

public CompletionTags() 
{ 
    this.completionTags = new List<string> { 
     // SQL keywords 
     "COUNT", 
     "FROM", 
     "HAVING", 
    }; 
} 

Wiem, CO MUSZĘ zrobić. Muszę jakoś przejąć bufor po zmianie i znaleźć wszystkie wystąpienia "DEFINE ([a-zA-Z0-9 _] {1,})" i dodać \ 1 do listy completionTags.

Nie mam pojęcia, JAK to zrobić. Wszelkie wskazówki w prawym (lub dowolnym) kierunku w tym miejscu będą bardzo mile widziane.

być miły - wszyscy byliśmy z naszym głębokość, na pewnym etapie (I już zostały programowania w języku C# teraz przez 3 dni) ...

+0

udało mi się uzyskać tej pracy poprzez obrócenie klasę CompletionTags w Singleton - a potem już porwali klasyfikujący składnia Highlighter celu sprawdzenia definiuje i dodaj do listy zakończeniuTagi. WIEM, że to nie jest właściwa droga, więc pytanie nadal jest aktualne. – Trent

Odpowiedz

Powiązane problemy