diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/KeyWords.h | 23 | ||||
| -rw-r--r-- | include/SciLexer.h | 1 | ||||
| -rw-r--r-- | include/Scintilla.h | 1 | ||||
| -rw-r--r-- | include/Scintilla.iface | 6 | 
4 files changed, 26 insertions, 5 deletions
| diff --git a/include/KeyWords.h b/include/KeyWords.h index d589d1228..43de26fe6 100644 --- a/include/KeyWords.h +++ b/include/KeyWords.h @@ -9,17 +9,30 @@ typedef void (*LexerFunction)(unsigned int startPos, int lengthDoc, int initStyl                    WordList *keywordlists[], Accessor &styler);  /** + * A LexerModule is responsible for lexing and folding a particular language. + * The class maintains a list of LexerModules which can be searched to find a + * module appropriate to a particular language.   */  class LexerModule { -	static LexerModule *base;  	LexerModule *next;  	int language; -	LexerFunction fn; +	const char *languageName; +	LexerFunction fnLexer; +	LexerFunction fnFolder; +	 +	static LexerModule *base; +	static int nextLanguage;  public: -	LexerModule(int language_, LexerFunction fn_); -	static void Colourise(unsigned int startPos, int lengthDoc, int initStyle, -                  int language, WordList *keywordlists[], Accessor &styler); +	LexerModule(int language_, LexerFunction fnLexer_,  +		const char *languageName_=0, LexerFunction fnFolder_=0); +	int GetLanguage() { return language; } +	void Lex(unsigned int startPos, int lengthDoc, int initStyle, +                  WordList *keywordlists[], Accessor &styler); +	void Fold(unsigned int startPos, int lengthDoc, int initStyle, +                  WordList *keywordlists[], Accessor &styler); +	static LexerModule *Find(int language); +	static LexerModule *Find(const char *languageName);  };  /** diff --git a/include/SciLexer.h b/include/SciLexer.h index 88e8b954b..9274b31de 100644 --- a/include/SciLexer.h +++ b/include/SciLexer.h @@ -35,6 +35,7 @@  #define SCLEX_PASCAL 18  #define SCLEX_AVE 19  #define SCLEX_ADA 20 +#define SCLEX_AUTOMATIC 1000  #define SCE_P_DEFAULT 0  #define SCE_P_COMMENTLINE 1  #define SCE_P_NUMBER 2 diff --git a/include/Scintilla.h b/include/Scintilla.h index fa1003ab4..54c02de47 100644 --- a/include/Scintilla.h +++ b/include/Scintilla.h @@ -411,6 +411,7 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,  #define SCI_COLOURISE 4003  #define SCI_SETPROPERTY 4004  #define SCI_SETKEYWORDS 4005 +#define SCI_SETLEXERLANGUAGE 4006  #define SC_MOD_INSERTTEXT 0x1  #define SC_MOD_DELETETEXT 0x2  #define SC_MOD_CHANGESTYLE 0x4 diff --git a/include/Scintilla.iface b/include/Scintilla.iface index 97f183ffc..be9468184 100644 --- a/include/Scintilla.iface +++ b/include/Scintilla.iface @@ -1102,6 +1102,9 @@ set void SetProperty=4004(string key, string value)  # Set up the key words used by the lexer.  set void SetKeyWords=4005(int keywordSet, string keyWords) +# Set the lexing language of the document based on string name. +set void SetLexerLanguage=4006(, string language) +  # Notifications  # Type of modification and the action which caused the modification  # These are defined as a bit mask to make it easy to specify which notifications are wanted. @@ -1174,6 +1177,9 @@ val SCLEX_CONF=17  val SCLEX_PASCAL=18  val SCLEX_AVE=19  val SCLEX_ADA=20 +# When a lexer specifies its language as SCLEX_AUTOMATIC it receives a  +# value assigned in sequence from SCLEX_AUTOMATIC+1. +val SCLEX_AUTOMATIC=1000  # Lexical states for SCLEX_PYTHON  val SCE_P_DEFAULT=0  val SCE_P_COMMENTLINE=1 | 
