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 /lexlib | |
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.
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; |