aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexlib
diff options
context:
space:
mode:
Diffstat (limited to 'lexlib')
-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
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;