diff options
-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 ""; } |