]> 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 fa427ff2eb0694ed3304bb47cc41ea05d4ec1606..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);
                   
@@ -19,15 +23,30 @@ protected:
        int language;
        LexerFunction fnLexer;
        LexerFunction fnFolder;
-       
+       const char * const * wordListDescriptions;
+       int styleBits;
+
        static const LexerModule *base;
        static int nextLanguage;
 
 public:
        const char *languageName;
-       LexerModule(int language_, LexerFunction fnLexer_, 
-               const char *languageName_=0, LexerFunction fnFolder_=0);
+       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) const;
        virtual void Fold(unsigned int startPos, int lengthDoc, int initStyle,
@@ -36,6 +55,10 @@ public:
        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.