aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/ILexer.h8
-rw-r--r--lexers/LexAsm.cxx6
-rw-r--r--lexers/LexBaan.cxx4
-rw-r--r--lexers/LexBasic.cxx8
-rw-r--r--lexers/LexCPP.cxx8
-rw-r--r--lexers/LexD.cxx6
-rw-r--r--lexers/LexDMIS.cxx4
-rw-r--r--lexers/LexEDIFACT.cxx4
-rw-r--r--lexers/LexHaskell.cxx6
-rw-r--r--lexers/LexJSON.cxx4
-rw-r--r--lexers/LexLaTeX.cxx3
-rw-r--r--lexers/LexPerl.cxx4
-rw-r--r--lexers/LexProgress.cxx4
-rw-r--r--lexers/LexPython.cxx4
-rw-r--r--lexers/LexRegistry.cxx4
-rw-r--r--lexers/LexRust.cxx4
-rw-r--r--lexers/LexSQL.cxx4
-rw-r--r--lexers/LexVerilog.cxx4
-rw-r--r--lexers/LexVisualProlog.cxx4
-rw-r--r--lexlib/DefaultLexer.cxx2
-rw-r--r--lexlib/DefaultLexer.h2
-rw-r--r--lexlib/LexerBase.cxx42
-rw-r--r--lexlib/LexerBase.h12
-rw-r--r--lexlib/LexerModule.cxx2
-rw-r--r--lexlib/LexerModule.h4
-rw-r--r--src/Document.cxx6
-rw-r--r--src/Document.h2
-rw-r--r--src/ScintillaBase.cxx44
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 "";
}