diff options
| author | Neil <nyamatongwe@gmail.com> | 2017-06-22 17:25:07 +1000 | 
|---|---|---|
| committer | Neil <nyamatongwe@gmail.com> | 2017-06-22 17:25:07 +1000 | 
| commit | e7375474b0697983b727a1efd32eb8b6bbbbd00d (patch) | |
| tree | 157998ee0755ada4429c080a00a173eb84b07344 | |
| parent | 3cd8489f5082c7b95fe5be45caf7fbdfc191f056 (diff) | |
| download | scintilla-mirror-e7375474b0697983b727a1efd32eb8b6bbbbd00d.tar.gz | |
Merge Ilexer and ILexerWithSubStyles into ILexer4 to avoid need for version
checking in 4.0. Use lvRelease4 ID.
| -rw-r--r-- | include/ILexer.h | 8 | ||||
| -rw-r--r-- | lexers/LexAsm.cxx | 6 | ||||
| -rw-r--r-- | lexers/LexBaan.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexBasic.cxx | 8 | ||||
| -rw-r--r-- | lexers/LexCPP.cxx | 8 | ||||
| -rw-r--r-- | lexers/LexD.cxx | 6 | ||||
| -rw-r--r-- | lexers/LexDMIS.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexEDIFACT.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexHaskell.cxx | 6 | ||||
| -rw-r--r-- | lexers/LexJSON.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexLaTeX.cxx | 3 | ||||
| -rw-r--r-- | lexers/LexPerl.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexProgress.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexPython.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexRegistry.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexRust.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexSQL.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexVerilog.cxx | 4 | ||||
| -rw-r--r-- | lexers/LexVisualProlog.cxx | 4 | ||||
| -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 | ||||
| -rw-r--r-- | src/Document.cxx | 6 | ||||
| -rw-r--r-- | src/Document.h | 2 | ||||
| -rw-r--r-- | src/ScintillaBase.cxx | 44 | 
28 files changed, 126 insertions, 83 deletions
| diff --git a/include/ILexer.h b/include/ILexer.h index d18b307d1..7f92e2b79 100644 --- a/include/ILexer.h +++ b/include/ILexer.h @@ -50,9 +50,9 @@ public:  	virtual int SCI_METHOD GetCharacterAndWidth(Sci_Position position, Sci_Position *pWidth) const = 0;  }; -enum { lvOriginal=0, lvSubStyles=1 }; +enum { lvRelease4=2 }; -class ILexer { +class ILexer4 {  public:  	virtual int SCI_METHOD Version() const = 0;  	virtual void SCI_METHOD Release() = 0; @@ -65,10 +65,6 @@ public:  	virtual void SCI_METHOD Lex(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, IDocument *pAccess) = 0;  	virtual void SCI_METHOD Fold(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, IDocument *pAccess) = 0;  	virtual void * SCI_METHOD PrivateCall(int operation, void *pointer) = 0; -}; - -class ILexerWithSubStyles : public ILexer { -public:  	virtual int SCI_METHOD LineEndTypesSupported() = 0;  	virtual int SCI_METHOD AllocateSubStyles(int styleBase, int numberStyles) = 0;  	virtual int SCI_METHOD SubStylesStart(int styleBase) = 0; diff --git a/lexers/LexAsm.cxx b/lexers/LexAsm.cxx index 16b32443c..d236ed657 100644 --- a/lexers/LexAsm.cxx +++ b/lexers/LexAsm.cxx @@ -162,7 +162,7 @@ public:  		delete this;  	}  	int SCI_METHOD Version() const override { -		return lvOriginal; +		return lvRelease4;  	}  	const char * SCI_METHOD PropertyNames() override {  		return osAsm.PropertyNames(); @@ -185,11 +185,11 @@ public:  		return 0;  	} -	static ILexer *LexerFactoryAsm() { +	static ILexer4 *LexerFactoryAsm() {  		return new LexerAsm(';');  	} -	static ILexer *LexerFactoryAs() { +	static ILexer4 *LexerFactoryAs() {  		return new LexerAsm('#');  	}  }; diff --git a/lexers/LexBaan.cxx b/lexers/LexBaan.cxx index 30dc4dada..3e51adb62 100644 --- a/lexers/LexBaan.cxx +++ b/lexers/LexBaan.cxx @@ -402,7 +402,7 @@ public:  	}  	int SCI_METHOD Version() const override { -		return lvOriginal; +		return lvRelease4;  	}  	void SCI_METHOD Release() override { @@ -437,7 +437,7 @@ public:  		return NULL;  	} -	static ILexer * LexerFactoryBaan() { +	static ILexer4 * LexerFactoryBaan() {  		return new LexerBaan();  	}  }; diff --git a/lexers/LexBasic.cxx b/lexers/LexBasic.cxx index 8aa64267b..68e4c8574 100644 --- a/lexers/LexBasic.cxx +++ b/lexers/LexBasic.cxx @@ -245,7 +245,7 @@ public:  		delete this;  	}  	int SCI_METHOD Version() const override { -		return lvOriginal; +		return lvRelease4;  	}  	const char * SCI_METHOD PropertyNames() override {  		return osBasic.PropertyNames(); @@ -267,13 +267,13 @@ public:  	void * SCI_METHOD PrivateCall(int, void *) override {  		return 0;  	} -	static ILexer *LexerFactoryBlitzBasic() { +	static ILexer4 *LexerFactoryBlitzBasic() {  		return new LexerBasic(';', CheckBlitzFoldPoint, blitzbasicWordListDesc);  	} -	static ILexer *LexerFactoryPureBasic() { +	static ILexer4 *LexerFactoryPureBasic() {  		return new LexerBasic(';', CheckPureFoldPoint, purebasicWordListDesc);  	} -	static ILexer *LexerFactoryFreeBasic() { +	static ILexer4 *LexerFactoryFreeBasic() {  		return new LexerBasic('\'', CheckFreeFoldPoint, freebasicWordListDesc );  	}  }; diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index 238856b1c..5d75aa171 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -434,7 +434,7 @@ const char styleSubable[] = {SCE_C_IDENTIFIER, SCE_C_COMMENTDOCKEYWORD, 0};  } -class LexerCPP : public ILexerWithSubStyles { +class LexerCPP : public ILexer4 {  	bool caseSensitive;  	CharacterSet setWord;  	CharacterSet setNegationOp; @@ -489,7 +489,7 @@ public:  		delete this;  	}  	int SCI_METHOD Version() const override { -		return lvSubStyles; +		return lvRelease4;  	}  	const char * SCI_METHOD PropertyNames() override {  		return osCPP.PropertyNames(); @@ -546,10 +546,10 @@ public:  		return styleSubable;  	} -	static ILexer *LexerFactoryCPP() { +	static ILexer4 *LexerFactoryCPP() {  		return new LexerCPP(true);  	} -	static ILexer *LexerFactoryCPPInsensitive() { +	static ILexer4 *LexerFactoryCPPInsensitive() {  		return new LexerCPP(false);  	}  	static int MaskActive(int style) { diff --git a/lexers/LexD.cxx b/lexers/LexD.cxx index c09498407..eb69f6bf9 100644 --- a/lexers/LexD.cxx +++ b/lexers/LexD.cxx @@ -167,7 +167,7 @@ public:  		delete this;  	}  	int SCI_METHOD Version() const override { -		return lvOriginal; +		return lvRelease4;  	}  	const char * SCI_METHOD PropertyNames() override {  		return osD.PropertyNames(); @@ -190,10 +190,10 @@ public:  		return 0;  	} -	static ILexer *LexerFactoryD() { +	static ILexer4 *LexerFactoryD() {  		return new LexerD(true);  	} -	static ILexer *LexerFactoryDInsensitive() { +	static ILexer4 *LexerFactoryDInsensitive() {  		return new LexerD(false);  	}  }; diff --git a/lexers/LexDMIS.cxx b/lexers/LexDMIS.cxx index 9db391971..86fdbe32b 100644 --- a/lexers/LexDMIS.cxx +++ b/lexers/LexDMIS.cxx @@ -58,7 +58,7 @@ class LexerDMIS : public DefaultLexer  		virtual ~LexerDMIS(void);  		int SCI_METHOD Version() const override { -			return lvOriginal; +			return lvRelease4;  		}  		void SCI_METHOD Release() override { @@ -87,7 +87,7 @@ class LexerDMIS : public DefaultLexer  			return NULL;  		} -		static ILexer *LexerFactoryDMIS() { +		static ILexer4 *LexerFactoryDMIS() {  			return new LexerDMIS;  		} diff --git a/lexers/LexEDIFACT.cxx b/lexers/LexEDIFACT.cxx index c21351bf5..b502fd13c 100644 --- a/lexers/LexEDIFACT.cxx +++ b/lexers/LexEDIFACT.cxx @@ -30,13 +30,13 @@ public:  	LexerEDIFACT();  	virtual ~LexerEDIFACT() {} // virtual destructor, as we inherit from ILexer -	static ILexer *Factory() { +	static ILexer4 *Factory() {  		return new LexerEDIFACT;  	}  	int SCI_METHOD Version() const override  	{ -		return lvOriginal; +		return lvRelease4;  	}  	void SCI_METHOD Release() override  	{ diff --git a/lexers/LexHaskell.cxx b/lexers/LexHaskell.cxx index 00e6b8cbf..a7ac82a90 100644 --- a/lexers/LexHaskell.cxx +++ b/lexers/LexHaskell.cxx @@ -402,7 +402,7 @@ public:     }     int SCI_METHOD Version() const override { -      return lvOriginal; +      return lvRelease4;     }     const char * SCI_METHOD PropertyNames() override { @@ -433,11 +433,11 @@ public:        return 0;     } -   static ILexer *LexerFactoryHaskell() { +   static ILexer4 *LexerFactoryHaskell() {        return new LexerHaskell(false);     } -   static ILexer *LexerFactoryLiterateHaskell() { +   static ILexer4 *LexerFactoryLiterateHaskell() {        return new LexerHaskell(true);     }  }; diff --git a/lexers/LexJSON.cxx b/lexers/LexJSON.cxx index 516aeb933..16b43abf3 100644 --- a/lexers/LexJSON.cxx +++ b/lexers/LexJSON.cxx @@ -210,7 +210,7 @@ class LexerJSON : public DefaultLexer {  	}  	virtual ~LexerJSON() {}  	int SCI_METHOD Version() const override { -		return lvOriginal; +		return lvRelease4;  	}  	void SCI_METHOD Release() override {  		delete this; @@ -254,7 +254,7 @@ class LexerJSON : public DefaultLexer {  	void *SCI_METHOD PrivateCall(int, void *) override {  		return 0;  	} -	static ILexer *LexerFactoryJSON() { +	static ILexer4 *LexerFactoryJSON() {  		return new LexerJSON;  	}  	const char *SCI_METHOD DescribeWordListSets() override { diff --git a/lexers/LexLaTeX.cxx b/lexers/LexLaTeX.cxx index 612ef486a..7c9f129b7 100644 --- a/lexers/LexLaTeX.cxx +++ b/lexers/LexLaTeX.cxx @@ -26,6 +26,7 @@  #include "StyleContext.h"  #include "CharacterSet.h"  #include "LexerModule.h" +#include "DefaultLexer.h"  #include "LexerBase.h"  #ifdef SCI_NAMESPACE @@ -78,7 +79,7 @@ private:  			saves.resize(numLines + 128);  	}  public: -	static ILexer *LexerFactoryLaTeX() { +	static ILexer4 *LexerFactoryLaTeX() {  		return new LexerLaTeX();  	}  	void SCI_METHOD Lex(Sci_PositionU startPos, Sci_Position length, int initStyle, IDocument *pAccess) override; diff --git a/lexers/LexPerl.cxx b/lexers/LexPerl.cxx index 5e4071b20..4d60f6e03 100644 --- a/lexers/LexPerl.cxx +++ b/lexers/LexPerl.cxx @@ -420,7 +420,7 @@ public:  		delete this;  	}  	int SCI_METHOD Version() const override { -		return lvOriginal; +		return lvRelease4;  	}  	const char *SCI_METHOD PropertyNames() override {  		return osPerl.PropertyNames(); @@ -443,7 +443,7 @@ public:  		return 0;  	} -	static ILexer *LexerFactoryPerl() { +	static ILexer4 *LexerFactoryPerl() {  		return new LexerPerl();  	}  	int InputSymbolScan(StyleContext &sc); diff --git a/lexers/LexProgress.cxx b/lexers/LexProgress.cxx index c4a0e6a41..e59e98361 100644 --- a/lexers/LexProgress.cxx +++ b/lexers/LexProgress.cxx @@ -150,7 +150,7 @@ public:        delete this;     }     int SCI_METHOD Version() const override { -      return lvOriginal; +      return lvRelease4;     }     const char * SCI_METHOD PropertyNames() override {        return osABL.PropertyNames(); @@ -176,7 +176,7 @@ public:     int SCI_METHOD LineEndTypesSupported() override {        return SC_LINE_END_TYPE_DEFAULT;     } -   static ILexer *LexerFactoryABL() { +   static ILexer4 *LexerFactoryABL() {        return new LexerABL();     }  }; diff --git a/lexers/LexPython.cxx b/lexers/LexPython.cxx index 50c3baa8c..21a7fe5a8 100644 --- a/lexers/LexPython.cxx +++ b/lexers/LexPython.cxx @@ -329,7 +329,7 @@ public:  		delete this;  	}  	int SCI_METHOD Version() const override { -		return lvSubStyles; +		return lvRelease4;  	}  	const char *SCI_METHOD PropertyNames() override {  		return osPython.PropertyNames(); @@ -385,7 +385,7 @@ public:  		return styleSubable;  	} -	static ILexer *LexerFactoryPython() { +	static ILexer4 *LexerFactoryPython() {  		return new LexerPython();  	} diff --git a/lexers/LexRegistry.cxx b/lexers/LexRegistry.cxx index b02a0d265..3f54df023 100644 --- a/lexers/LexRegistry.cxx +++ b/lexers/LexRegistry.cxx @@ -166,7 +166,7 @@ public:  	LexerRegistry() {}  	virtual ~LexerRegistry() {}  	int SCI_METHOD Version() const override { -		return lvOriginal; +		return lvRelease4;  	}  	void SCI_METHOD Release() override {  		delete this; @@ -192,7 +192,7 @@ public:  	void *SCI_METHOD PrivateCall(int, void *) override {  		return 0;  	} -	static ILexer *LexerFactoryRegistry() { +	static ILexer4 *LexerFactoryRegistry() {  		return new LexerRegistry;  	}  	const char *SCI_METHOD DescribeWordListSets() override { diff --git a/lexers/LexRust.cxx b/lexers/LexRust.cxx index ff5e816ba..686326347 100644 --- a/lexers/LexRust.cxx +++ b/lexers/LexRust.cxx @@ -128,7 +128,7 @@ public:  		delete this;  	}  	int SCI_METHOD Version() const override { -		return lvOriginal; +		return lvRelease4;  	}  	const char * SCI_METHOD PropertyNames() override {  		return osRust.PropertyNames(); @@ -149,7 +149,7 @@ public:  	void * SCI_METHOD PrivateCall(int, void *) override {  		return 0;  	} -	static ILexer *LexerFactoryRust() { +	static ILexer4 *LexerFactoryRust() {  		return new LexerRust();  	}  }; diff --git a/lexers/LexSQL.cxx b/lexers/LexSQL.cxx index 871f4dce1..635e3efe0 100644 --- a/lexers/LexSQL.cxx +++ b/lexers/LexSQL.cxx @@ -310,7 +310,7 @@ public :  	virtual ~LexerSQL() {}  	int SCI_METHOD Version () const override { -		return lvOriginal; +		return lvRelease4;  	}  	void SCI_METHOD Release() override { @@ -348,7 +348,7 @@ public :  		return 0;  	} -	static ILexer *LexerFactorySQL() { +	static ILexer4 *LexerFactorySQL() {  		return new LexerSQL();  	}  private: diff --git a/lexers/LexVerilog.cxx b/lexers/LexVerilog.cxx index 6be3392f1..aa6cd6d33 100644 --- a/lexers/LexVerilog.cxx +++ b/lexers/LexVerilog.cxx @@ -219,7 +219,7 @@ public:  		}  	virtual ~LexerVerilog() {}  	int SCI_METHOD Version() const override { -		return lvSubStyles; +		return lvRelease4;  	}  	void SCI_METHOD Release() override {  		delete this; @@ -277,7 +277,7 @@ public:  	const char * SCI_METHOD GetSubStyleBases() override {  		return styleSubable;  	} -	static ILexer* LexerFactoryVerilog() { +	static ILexer4* LexerFactoryVerilog() {  		return new LexerVerilog();  	}  	static int MaskActive(int style) { diff --git a/lexers/LexVisualProlog.cxx b/lexers/LexVisualProlog.cxx index c03069075..dfd749b70 100644 --- a/lexers/LexVisualProlog.cxx +++ b/lexers/LexVisualProlog.cxx @@ -81,7 +81,7 @@ public:          delete this;      }      int SCI_METHOD Version() const override { -        return lvOriginal; +        return lvRelease4;      }      const char * SCI_METHOD PropertyNames() override {          return osVisualProlog.PropertyNames(); @@ -104,7 +104,7 @@ public:          return 0;      } -    static ILexer *LexerFactoryVisualProlog() { +    static ILexer4 *LexerFactoryVisualProlog() {          return new LexerVisualProlog();      }  }; 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; diff --git a/src/Document.cxx b/src/Document.cxx index 98baf9180..86339827a 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -85,11 +85,7 @@ void LexInterface::Colourise(Sci::Position start, Sci::Position end) {  int LexInterface::LineEndTypesSupported() {  	if (instance) { -		const int interfaceVersion = instance->Version(); -		if (interfaceVersion >= lvSubStyles) { -			ILexerWithSubStyles *ssinstance = static_cast<ILexerWithSubStyles *>(instance); -			return ssinstance->LineEndTypesSupported(); -		} +		return instance->LineEndTypesSupported();  	}  	return 0;  } diff --git a/src/Document.h b/src/Document.h index bf44b6c3b..0aff383d2 100644 --- a/src/Document.h +++ b/src/Document.h @@ -175,7 +175,7 @@ inline int LevelNumber(int level) {  class LexInterface {  protected:  	Document *pdoc; -	ILexer *instance; +	ILexer4 *instance;  	bool performingStyle;	///< Prevent reentrance  public:  	explicit LexInterface(Document *pdoc_) : pdoc(pdoc_), instance(0), performingStyle(false) { diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 0c7df04cb..204ff9f8e 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -591,7 +591,7 @@ public:  LexState::LexState(Document *pdoc_) : LexInterface(pdoc_) {  	lexCurrent = 0;  	performingStyle = false; -	interfaceVersion = lvOriginal; +	interfaceVersion = lvRelease4;  	lexLanguage = SCLEX_CONTAINER;  } @@ -615,7 +615,7 @@ void LexState::SetLexerModule(const LexerModule *lex) {  			instance->Release();  			instance = 0;  		} -		interfaceVersion = lvOriginal; +		interfaceVersion = lvRelease4;  		lexCurrent = lex;  		if (lexCurrent) {  			instance = lexCurrent->Create(); @@ -722,70 +722,70 @@ int LexState::PropGetExpanded(const char *key, char *result) const {  }  int LexState::LineEndTypesSupported() { -	if (instance && (interfaceVersion >= lvSubStyles)) { -		return static_cast<ILexerWithSubStyles *>(instance)->LineEndTypesSupported(); +	if (instance) { +		return instance->LineEndTypesSupported();  	}  	return 0;  }  int LexState::AllocateSubStyles(int styleBase, int numberStyles) { -	if (instance && (interfaceVersion >= lvSubStyles)) { -		return static_cast<ILexerWithSubStyles *>(instance)->AllocateSubStyles(styleBase, numberStyles); +	if (instance) { +		return instance->AllocateSubStyles(styleBase, numberStyles);  	}  	return -1;  }  int LexState::SubStylesStart(int styleBase) { -	if (instance && (interfaceVersion >= lvSubStyles)) { -		return static_cast<ILexerWithSubStyles *>(instance)->SubStylesStart(styleBase); +	if (instance) { +		return instance->SubStylesStart(styleBase);  	}  	return -1;  }  int LexState::SubStylesLength(int styleBase) { -	if (instance && (interfaceVersion >= lvSubStyles)) { -		return static_cast<ILexerWithSubStyles *>(instance)->SubStylesLength(styleBase); +	if (instance) { +		return instance->SubStylesLength(styleBase);  	}  	return 0;  }  int LexState::StyleFromSubStyle(int subStyle) { -	if (instance && (interfaceVersion >= lvSubStyles)) { -		return static_cast<ILexerWithSubStyles *>(instance)->StyleFromSubStyle(subStyle); +	if (instance) { +		return instance->StyleFromSubStyle(subStyle);  	}  	return 0;  }  int LexState::PrimaryStyleFromStyle(int style) { -	if (instance && (interfaceVersion >= lvSubStyles)) { -		return static_cast<ILexerWithSubStyles *>(instance)->PrimaryStyleFromStyle(style); +	if (instance) { +		return instance->PrimaryStyleFromStyle(style);  	}  	return 0;  }  void LexState::FreeSubStyles() { -	if (instance && (interfaceVersion >= lvSubStyles)) { -		static_cast<ILexerWithSubStyles *>(instance)->FreeSubStyles(); +	if (instance) { +		instance->FreeSubStyles();  	}  }  void LexState::SetIdentifiers(int style, const char *identifiers) { -	if (instance && (interfaceVersion >= lvSubStyles)) { -		static_cast<ILexerWithSubStyles *>(instance)->SetIdentifiers(style, identifiers); +	if (instance) { +		instance->SetIdentifiers(style, identifiers);  		pdoc->ModifiedAt(0);  	}  }  int LexState::DistanceToSecondaryStyles() { -	if (instance && (interfaceVersion >= lvSubStyles)) { -		return static_cast<ILexerWithSubStyles *>(instance)->DistanceToSecondaryStyles(); +	if (instance) { +		return instance->DistanceToSecondaryStyles();  	}  	return 0;  }  const char *LexState::GetSubStyleBases() { -	if (instance && (interfaceVersion >= lvSubStyles)) { -		return static_cast<ILexerWithSubStyles *>(instance)->GetSubStyleBases(); +	if (instance) { +		return instance->GetSubStyleBases();  	}  	return "";  } | 
