diff options
Diffstat (limited to 'lexlib')
| -rw-r--r-- | lexlib/DefaultLexer.cxx | 2 | ||||
| -rw-r--r-- | lexlib/DefaultLexer.h | 2 | ||||
| -rw-r--r-- | lexlib/LexerBase.cxx | 42 | ||||
| -rw-r--r-- | lexlib/LexerBase.h | 12 | ||||
| -rw-r--r-- | lexlib/LexerModule.cxx | 2 | ||||
| -rw-r--r-- | lexlib/LexerModule.h | 4 | 
6 files changed, 57 insertions, 7 deletions
| diff --git a/lexlib/DefaultLexer.cxx b/lexlib/DefaultLexer.cxx index 9babbf7a4..69310f33c 100644 --- a/lexlib/DefaultLexer.cxx +++ b/lexlib/DefaultLexer.cxx @@ -37,7 +37,7 @@ void SCI_METHOD DefaultLexer::Release() {  }  int SCI_METHOD DefaultLexer::Version() const { -	return lvOriginal; +	return lvRelease4;  }  const char * SCI_METHOD DefaultLexer::PropertyNames() { diff --git a/lexlib/DefaultLexer.h b/lexlib/DefaultLexer.h index 7b1490138..be287546b 100644 --- a/lexlib/DefaultLexer.h +++ b/lexlib/DefaultLexer.h @@ -15,7 +15,7 @@ namespace Scintilla {  #endif  // A simple lexer with no state -class DefaultLexer : public ILexerWithSubStyles { +class DefaultLexer : public ILexer4 {  public:  	DefaultLexer();  	virtual ~DefaultLexer(); diff --git a/lexlib/LexerBase.cxx b/lexlib/LexerBase.cxx index 71e2601dc..232b110c4 100644 --- a/lexlib/LexerBase.cxx +++ b/lexlib/LexerBase.cxx @@ -24,6 +24,8 @@  using namespace Scintilla;  #endif +static const char styleSubable[] = { 0 }; +  LexerBase::LexerBase() {  	for (int wl = 0; wl < numWordLists; wl++)  		keyWordLists[wl] = new WordList; @@ -43,7 +45,7 @@ void SCI_METHOD LexerBase::Release() {  }  int SCI_METHOD LexerBase::Version() const { -	return lvOriginal; +	return lvRelease4;  }  const char * SCI_METHOD LexerBase::PropertyNames() { @@ -85,5 +87,43 @@ Sci_Position SCI_METHOD LexerBase::WordListSet(int n, const char *wl) {  }  void * SCI_METHOD LexerBase::PrivateCall(int, void *) { +	return nullptr; +} + +int SCI_METHOD LexerBase::LineEndTypesSupported() { +	return SC_LINE_END_TYPE_DEFAULT; +} + +int SCI_METHOD LexerBase::AllocateSubStyles(int, int) { +	return -1; +} + +int SCI_METHOD LexerBase::SubStylesStart(int) { +	return -1; +} + +int SCI_METHOD LexerBase::SubStylesLength(int) { +	return 0; +} + +int SCI_METHOD LexerBase::StyleFromSubStyle(int subStyle) { +	return subStyle; +} + +int SCI_METHOD LexerBase::PrimaryStyleFromStyle(int style) { +	return style; +} + +void SCI_METHOD LexerBase::FreeSubStyles() { +} + +void SCI_METHOD LexerBase::SetIdentifiers(int, const char *) { +} + +int SCI_METHOD LexerBase::DistanceToSecondaryStyles() {  	return 0;  } + +const char * SCI_METHOD LexerBase::GetSubStyleBases() { +	return styleSubable; +} diff --git a/lexlib/LexerBase.h b/lexlib/LexerBase.h index ddc561c5c..f0378916f 100644 --- a/lexlib/LexerBase.h +++ b/lexlib/LexerBase.h @@ -13,7 +13,7 @@ namespace Scintilla {  #endif  // A simple lexer with no state -class LexerBase : public ILexer { +class LexerBase : public ILexer4 {  protected:  	PropSetSimple props;  	enum {numWordLists=KEYWORDSET_MAX+1}; @@ -32,6 +32,16 @@ public:  	void SCI_METHOD Lex(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, IDocument *pAccess) override = 0;  	void SCI_METHOD Fold(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, IDocument *pAccess) override = 0;  	void * SCI_METHOD PrivateCall(int operation, void *pointer) override; +	int SCI_METHOD LineEndTypesSupported() override; +	int SCI_METHOD AllocateSubStyles(int styleBase, int numberStyles) override; +	int SCI_METHOD SubStylesStart(int styleBase) override; +	int SCI_METHOD SubStylesLength(int styleBase) override; +	int SCI_METHOD StyleFromSubStyle(int subStyle) override; +	int SCI_METHOD PrimaryStyleFromStyle(int style) override; +	void SCI_METHOD FreeSubStyles() override; +	void SCI_METHOD SetIdentifiers(int style, const char *identifiers) override; +	int SCI_METHOD DistanceToSecondaryStyles() override; +	const char * SCI_METHOD GetSubStyleBases() override;  };  #ifdef SCI_NAMESPACE diff --git a/lexlib/LexerModule.cxx b/lexlib/LexerModule.cxx index a9fc4f522..c7dec38e2 100644 --- a/lexlib/LexerModule.cxx +++ b/lexlib/LexerModule.cxx @@ -74,7 +74,7 @@ const char *LexerModule::GetWordListDescription(int index) const {  	}  } -ILexer *LexerModule::Create() const { +ILexer4 *LexerModule::Create() const {  	if (fnFactory)  		return fnFactory();  	else diff --git a/lexlib/LexerModule.h b/lexlib/LexerModule.h index ca1d86ce5..d05993d96 100644 --- a/lexlib/LexerModule.h +++ b/lexlib/LexerModule.h @@ -17,7 +17,7 @@ class WordList;  typedef void (*LexerFunction)(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle,                    WordList *keywordlists[], Accessor &styler); -typedef ILexer *(*LexerFactoryFunction)(); +typedef ILexer4 *(*LexerFactoryFunction)();  /**   * A LexerModule is responsible for lexing and folding a particular language. @@ -51,7 +51,7 @@ public:  	int GetNumWordLists() const;  	const char *GetWordListDescription(int index) const; -	ILexer *Create() const; +	ILexer4 *Create() const;  	virtual void Lex(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle,                    WordList *keywordlists[], Accessor &styler) const; | 
