diff options
| author | mitchell <unknown> | 2020-01-04 13:50:52 -0500 |
|---|---|---|
| committer | mitchell <unknown> | 2020-01-04 13:50:52 -0500 |
| commit | 215e051e588219ec41341a27bb87793732cccd88 (patch) | |
| tree | bfcd76bec4252a214985c66da3d3d88c8123154a /lexers/LexCPP.cxx | |
| parent | a64428dc77747caba268e25e4ec9d7d1db10eefa (diff) | |
| download | scintilla-mirror-215e051e588219ec41341a27bb87793732cccd88.tar.gz | |
Backport: Define ILexerWithIdentity with methods for retrieving name, ID, and property values.
Implement ILexerWithIdentity on object lexers.
Implement ILexerWithIdentity on LexerSimple wrapper for function lexers.
Backport of changeset 7870:6ffcbd42288c, but with a new interface compatible
with ILexer, not ILexer5.
Diffstat (limited to 'lexers/LexCPP.cxx')
| -rw-r--r-- | lexers/LexCPP.cxx | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index 06d4c0265..c6b52784e 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -499,7 +499,7 @@ LexicalClass lexicalClasses[] = { } -class LexerCPP : public ILexerWithMetaData { +class LexerCPP : public ILexerWithIdentity { bool caseSensitive; CharacterSet setWord; CharacterSet setNegationOp; @@ -562,7 +562,7 @@ public: delete this; } int SCI_METHOD Version() const noexcept override { - return lvMetaData; + return lvIdentity; } const char * SCI_METHOD PropertyNames() override { return osCPP.PropertyNames(); @@ -672,6 +672,15 @@ public: return ""; } + // ILexerWithIdentity methods + const char * SCI_METHOD GetName() override { + return caseSensitive ? "cpp" : "cppnocase"; + } + int SCI_METHOD GetIdentifier() override { + return caseSensitive ? SCLEX_CPP : SCLEX_CPPNOCASE; + } + const char * SCI_METHOD PropertyGet(const char *key) override; + static ILexer *LexerFactoryCPP() { return new LexerCPP(true); } @@ -699,6 +708,10 @@ Sci_Position SCI_METHOD LexerCPP::PropertySet(const char *key, const char *val) return -1; } +const char * SCI_METHOD LexerCPP::PropertyGet(const char *key) { + return osCPP.PropertyGet(key); +} + Sci_Position SCI_METHOD LexerCPP::WordListSet(int n, const char *wl) { WordList *wordListN = nullptr; switch (n) { |
