]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/scintilla/include/KeyWords.h
Invalidate only the specified rectangle
[wxWidgets.git] / src / stc / scintilla / include / KeyWords.h
index 869b59d2674a4a3226885fb1738d6e683407ef64..6abae594538d22399d268f55044a9fcfea48fd93 100644 (file)
@@ -5,6 +5,10 @@
 // Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>
 // The License.txt file describes the conditions under which this software may be distributed.
 
+#ifdef SCI_NAMESPACE
+namespace Scintilla {
+#endif
+
 typedef void (*LexerFunction)(unsigned int startPos, int lengthDoc, int initStyle,
                   WordList *keywordlists[], Accessor &styler);
                   
@@ -15,27 +19,46 @@ 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);
 };
 
+#ifdef SCI_NAMESPACE
+}
+#endif
+
 /**
  * Check if a character is a space.
  * This is ASCII specific but is safe with chars >= 0x80.