diff options
author | Neil <nyamatongwe@gmail.com> | 2017-06-22 17:43:56 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2017-06-22 17:43:56 +1000 |
commit | 3a993f0a5e97435874e06d5496085c4cb7a0d4cb (patch) | |
tree | f1bfbd0aa566e23e67d9340f5fde763ba3621278 /lexlib | |
parent | 6c72bb1aba1b8b0cea4bd5360f94847316166a92 (diff) | |
download | scintilla-mirror-3a993f0a5e97435874e06d5496085c4cb7a0d4cb.tar.gz |
Backport: Add style metadata methods with null implementations.
Backport based on changesets 6345:faecbd0078e5 and 6346:72bd27f81477.
Diffstat (limited to 'lexlib')
-rw-r--r-- | lexlib/DefaultLexer.cxx | 18 | ||||
-rw-r--r-- | lexlib/DefaultLexer.h | 8 | ||||
-rw-r--r-- | lexlib/LexerBase.cxx | 58 | ||||
-rw-r--r-- | lexlib/LexerBase.h | 16 |
4 files changed, 95 insertions, 5 deletions
diff --git a/lexlib/DefaultLexer.cxx b/lexlib/DefaultLexer.cxx index 9babbf7a4..4089273f7 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 lvMetaData; } const char * SCI_METHOD DefaultLexer::PropertyNames() { @@ -108,3 +108,19 @@ int SCI_METHOD DefaultLexer::DistanceToSecondaryStyles() { const char * SCI_METHOD DefaultLexer::GetSubStyleBases() { return styleSubable; } + +int SCI_METHOD DefaultLexer::NamedStyles() { + return 0; +} + +const char * SCI_METHOD DefaultLexer::NameOfStyle(int) { + return ""; +} + +const char * SCI_METHOD DefaultLexer::TagsOfStyle(int) { + return ""; +} + +const char * SCI_METHOD DefaultLexer::DescriptionOfStyle(int) { + return ""; +} diff --git a/lexlib/DefaultLexer.h b/lexlib/DefaultLexer.h index 7b1490138..0e62a6320 100644 --- a/lexlib/DefaultLexer.h +++ b/lexlib/DefaultLexer.h @@ -1,6 +1,6 @@ // Scintilla source code edit control /** @file DefaultLexer.h - ** A lexer base class with default empty implementations of methods. + ** A lexer base class with default empty implementations of methods. ** For lexers that do not support all features so do not need real implementations. ** Does have real implementation for style metadata. **/ @@ -15,7 +15,7 @@ namespace Scintilla { #endif // A simple lexer with no state -class DefaultLexer : public ILexerWithSubStyles { +class DefaultLexer : public ILexerWithMetaData { public: DefaultLexer(); virtual ~DefaultLexer(); @@ -40,6 +40,10 @@ public: void SCI_METHOD SetIdentifiers(int style, const char *identifiers) override; int SCI_METHOD DistanceToSecondaryStyles() override; const char * SCI_METHOD GetSubStyleBases() override; + int SCI_METHOD NamedStyles() override; + const char * SCI_METHOD NameOfStyle(int style) override; + const char * SCI_METHOD TagsOfStyle(int style) override; + const char * SCI_METHOD DescriptionOfStyle(int style) override; }; #ifdef SCI_NAMESPACE diff --git a/lexlib/LexerBase.cxx b/lexlib/LexerBase.cxx index 71e2601dc..5ebbe0958 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 lvMetaData; } const char * SCI_METHOD LexerBase::PropertyNames() { @@ -85,5 +87,59 @@ 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; +} + +int SCI_METHOD LexerBase::NamedStyles() { return 0; } + +const char * SCI_METHOD LexerBase::NameOfStyle(int) { + return ""; +} + +const char * SCI_METHOD LexerBase::TagsOfStyle(int) { + return ""; +} + +const char * SCI_METHOD LexerBase::DescriptionOfStyle(int) { + return ""; +} diff --git a/lexlib/LexerBase.h b/lexlib/LexerBase.h index ddc561c5c..f320633ef 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 ILexerWithMetaData { protected: PropSetSimple props; enum {numWordLists=KEYWORDSET_MAX+1}; @@ -32,6 +32,20 @@ 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; + int SCI_METHOD NamedStyles() override; + const char * SCI_METHOD NameOfStyle(int style) override; + const char * SCI_METHOD TagsOfStyle(int style) override; + const char * SCI_METHOD DescriptionOfStyle(int style) override; }; #ifdef SCI_NAMESPACE |