userDefineLang.xml
Opracowałem dla edytora NOTEPAD++ plik sterujący userDefineLang.xml pozwalający na "rozumienie" przez ten edytor plików języka PROGRESS-4GL.
- Rozpoznawane są WSZYSTKIE słowa kluczowe języka Progress-4GL. Zarówno ich pełne formy jak i WSZYSTKIE dopuszczalne ich skróty.
- Można śledzić strukturę bloków.
- Rozpoznawane są:
- komentarze (/* */),
- bloki (DO, REPEAT .. END),
- słowa kluczowe preprocesora (&IF, &ENDIF),
- polecenia (DEFINE, IF, UPDATE),
- słowa kluczowe, które nie wolno przeciążać (ACCUMULATE, OR, YES),
- słowa kluczowe, które można przeciążać (DEFAULT-EXTENSION, INTEGER, STRING).
To rozwiązanie ma kilka ograniczeń:
- Początki /* i końce */ komentarza muszą być otoczone „białym polem”. NIE są więc jako komentarz rozpoznane takie konstrukcje jak /*To powinien być komentarz*/.
- NIE są rozpoznawalne włożone komentarze: /* Komentarz1 /* Kom2 */ To też powinien być komentarz (a nie jest rozpoznany */.
- Słowo kluczowe FOR jest przeciążone. Konstrukcja FOR END jest oczywiście prawidłowo rozpoznawana jako blok.
Niestety. Konstrukcja “DEFINE BUFFOR b FOR tablica” zawiera słowo kluczowe FOR, które Notepad++ traktuje jako początek bloku.
- Prawidłowo rozpoznawane są konstrukcje FUNCTION..END czy CASE..END . Jednakże za słowem kluczowym END może być dodatkowe słowo kluczowe (CASE, FUNCTION, PROCEDURE, ...). Notepad++ traktuje te „nadmiarowe” słowa jako początek bloku.
Dla zainstalowania rozwiązania należy przepisać plik userDefineLang.xml do katalogu Notepad++. U mnie jest to C:\Documents and Setting\Administrator\Dane aplikacji\Notepad++\ .