]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/stc/scintilla/include/KeyWords.h
On the Mac the Alt key is a character modifier like Shift, so let char
[wxWidgets.git] / contrib / src / stc / scintilla / include / KeyWords.h
index 869b59d2674a4a3226885fb1738d6e683407ef64..df4e870c580f507203f57f61f2cc58a7af04a2fe 100644 (file)
@@ -15,25 +15,32 @@ typedef void (*LexerFunction)(unsigned int startPos, int lengthDoc, int initStyl
  */
 class LexerModule {
 protected:
-       LexerModule *next;
+       const LexerModule *next;
        int language;
-       const char *languageName;
        LexerFunction fnLexer;
        LexerFunction fnFolder;
-       
-       static LexerModule *base;
+       const char * const * wordListDescriptions;
+
+       static const LexerModule *base;
        static int nextLanguage;
 
 public:
+       const char *languageName;
        LexerModule(int language_, LexerFunction fnLexer_, 
-               const char *languageName_=0, LexerFunction fnFolder_=0);
-       int GetLanguage() { return language; }
+               const char *languageName_=0, LexerFunction fnFolder_=0,
+               const char * const wordListDescriptions_[] = NULL);
+       int GetLanguage() const { return language; }
+
+       // -1 is returned if no WordList information is available
+       int GetNumWordLists() const;
+       const char *GetWordListDescription(int index) const;
+
        virtual void Lex(unsigned int startPos, int lengthDoc, int initStyle,
-                  WordList *keywordlists[], Accessor &styler);
+                  WordList *keywordlists[], Accessor &styler) const;
        virtual void Fold(unsigned int startPos, int lengthDoc, int initStyle,
-                  WordList *keywordlists[], Accessor &styler);
-       static LexerModule *Find(int language);
-       static LexerModule *Find(const char *languageName);
+                  WordList *keywordlists[], Accessor &styler) const;
+       static const LexerModule *Find(int language);
+       static const LexerModule *Find(const char *languageName);
 };
 
 /**