]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/stc/scintilla/include/KeyWords.h
To -> From
[wxWidgets.git] / contrib / src / stc / scintilla / include / KeyWords.h
index 869b59d2674a4a3226885fb1738d6e683407ef64..059ac0da0fd881dbe31aebe03c584cb368837f39 100644 (file)
@@ -15,25 +15,40 @@ 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;
+       int styleBits;
+
+       static const LexerModule *base;
        static int nextLanguage;
 
 public:
-       LexerModule(int language_, LexerFunction fnLexer_, 
-               const char *languageName_=0, LexerFunction fnFolder_=0);
-       int GetLanguage() { return language; }
+       const char *languageName;
+       LexerModule(int language_, 
+               LexerFunction fnLexer_, 
+               const char *languageName_=0, 
+               LexerFunction fnFolder_=0,
+               const char * const wordListDescriptions_[] = NULL,
+               int styleBits_=5);
+       virtual ~LexerModule() {
+       }
+       int GetLanguage() const { return language; }
+
+       // -1 is returned if no WordList information is available
+       int GetNumWordLists() const;
+       const char *GetWordListDescription(int index) const;
+
+       int GetStyleBitsNeeded() 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);
 };
 
 /**