aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexlib
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2017-06-22 17:43:56 +1000
committerNeil <nyamatongwe@gmail.com>2017-06-22 17:43:56 +1000
commit3a993f0a5e97435874e06d5496085c4cb7a0d4cb (patch)
treef1bfbd0aa566e23e67d9340f5fde763ba3621278 /lexlib
parent6c72bb1aba1b8b0cea4bd5360f94847316166a92 (diff)
downloadscintilla-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.cxx18
-rw-r--r--lexlib/DefaultLexer.h8
-rw-r--r--lexlib/LexerBase.cxx58
-rw-r--r--lexlib/LexerBase.h16
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