diff options
-rw-r--r-- | cocoa/ScintillaFramework/ScintillaFramework.xcodeproj/project.pbxproj | 8 | ||||
-rw-r--r-- | gtk/makefile | 2 | ||||
-rw-r--r-- | lexers/LexAsm.cxx | 3 | ||||
-rw-r--r-- | lexers/LexBaan.cxx | 3 | ||||
-rw-r--r-- | lexers/LexBasic.cxx | 3 | ||||
-rw-r--r-- | lexers/LexD.cxx | 3 | ||||
-rw-r--r-- | lexers/LexDMIS.cxx | 3 | ||||
-rw-r--r-- | lexers/LexEDIFACT.cxx | 3 | ||||
-rw-r--r-- | lexers/LexHaskell.cxx | 3 | ||||
-rw-r--r-- | lexers/LexJSON.cxx | 3 | ||||
-rw-r--r-- | lexers/LexPerl.cxx | 3 | ||||
-rw-r--r-- | lexers/LexProgress.cxx | 5 | ||||
-rw-r--r-- | lexers/LexPython.cxx | 3 | ||||
-rw-r--r-- | lexers/LexRegistry.cxx | 3 | ||||
-rw-r--r-- | lexers/LexRust.cxx | 3 | ||||
-rw-r--r-- | lexers/LexSQL.cxx | 3 | ||||
-rw-r--r-- | lexers/LexVerilog.cxx | 3 | ||||
-rw-r--r-- | lexers/LexVisualProlog.cxx | 3 | ||||
-rw-r--r-- | lexlib/DefaultLexer.cxx | 110 | ||||
-rw-r--r-- | lexlib/DefaultLexer.h | 49 | ||||
-rw-r--r-- | qt/ScintillaEdit/ScintillaEdit.pro | 1 | ||||
-rw-r--r-- | qt/ScintillaEditBase/ScintillaEditBase.pro | 1 | ||||
-rw-r--r-- | win32/makefile | 1 | ||||
-rw-r--r-- | win32/scintilla.mak | 1 |
24 files changed, 205 insertions, 18 deletions
diff --git a/cocoa/ScintillaFramework/ScintillaFramework.xcodeproj/project.pbxproj b/cocoa/ScintillaFramework/ScintillaFramework.xcodeproj/project.pbxproj index 671799fc1..3346a8bdc 100644 --- a/cocoa/ScintillaFramework/ScintillaFramework.xcodeproj/project.pbxproj +++ b/cocoa/ScintillaFramework/ScintillaFramework.xcodeproj/project.pbxproj @@ -215,6 +215,8 @@ 28B647101B54C0720009DC49 /* LexNull.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 28B6470A1B54C0720009DC49 /* LexNull.cxx */; }; 28B647111B54C0720009DC49 /* LexProps.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 28B6470B1B54C0720009DC49 /* LexProps.cxx */; }; 28BC38EC1B74C6AD008BF9EB /* Sci_Position.h in Headers */ = {isa = PBXBuildFile; fileRef = 28BC38EB1B74C6AD008BF9EB /* Sci_Position.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28BDA1221EFB8F7C00EBD3F3 /* DefaultLexer.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 28BDA1211EFB8F7C00EBD3F3 /* DefaultLexer.cxx */; }; + 28BDA1241EFB8FB200EBD3F3 /* DefaultLexer.h in Headers */ = {isa = PBXBuildFile; fileRef = 28BDA1231EFB8FB200EBD3F3 /* DefaultLexer.h */; }; 28C40CA81CB7321200B089F2 /* LexJSON.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 28C40CA71CB7321200B089F2 /* LexJSON.cxx */; }; 28D191A21DEA72C800159938 /* LexEDIFACT.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 28D191A11DEA72C800159938 /* LexEDIFACT.cxx */; }; 28D516D81830FFCA0047C93D /* info_bar_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 28D516D51830FFCA0047C93D /* info_bar_bg@2x.png */; }; @@ -440,6 +442,8 @@ 28B6470A1B54C0720009DC49 /* LexNull.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LexNull.cxx; path = ../../lexers/LexNull.cxx; sourceTree = "<group>"; }; 28B6470B1B54C0720009DC49 /* LexProps.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LexProps.cxx; path = ../../lexers/LexProps.cxx; sourceTree = "<group>"; }; 28BC38EB1B74C6AD008BF9EB /* Sci_Position.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sci_Position.h; path = ../../include/Sci_Position.h; sourceTree = "<group>"; }; + 28BDA1211EFB8F7C00EBD3F3 /* DefaultLexer.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DefaultLexer.cxx; path = ../../lexlib/DefaultLexer.cxx; sourceTree = "<group>"; }; + 28BDA1231EFB8FB200EBD3F3 /* DefaultLexer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DefaultLexer.h; path = ../../lexlib/DefaultLexer.h; sourceTree = "<group>"; }; 28C40CA71CB7321200B089F2 /* LexJSON.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LexJSON.cxx; path = ../../lexers/LexJSON.cxx; sourceTree = "<group>"; }; 28D1919E1DE69FC100159938 /* module.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = "<group>"; }; 28D191A11DEA72C800159938 /* LexEDIFACT.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LexEDIFACT.cxx; path = ../../lexers/LexEDIFACT.cxx; sourceTree = "<group>"; }; @@ -672,6 +676,7 @@ 114B6FA611FA7623004FB6AB /* CharClassify.h */, 114B6FA711FA7623004FB6AB /* ContractionState.h */, 114B6FA811FA7623004FB6AB /* Decoration.h */, + 28BDA1231EFB8FB200EBD3F3 /* DefaultLexer.h */, 114B6FA911FA7623004FB6AB /* Document.h */, 28A1DD54196BE0ED006EFCDD /* EditModel.h */, 114B6FAA11FA7623004FB6AB /* Editor.h */, @@ -728,6 +733,7 @@ 114B6F6511FA7597004FB6AB /* ContractionState.cxx */, 28804B2B1EEE232E00C0D154 /* DBCS.cxx */, 114B6F6611FA7597004FB6AB /* Decoration.cxx */, + 28BDA1211EFB8F7C00EBD3F3 /* DefaultLexer.cxx */, 114B6F6711FA7597004FB6AB /* Document.cxx */, 28A1DD4E196BE0CA006EFCDD /* EditModel.cxx */, 114B6F6811FA7597004FB6AB /* Editor.cxx */, @@ -822,6 +828,7 @@ 2744E5A40FC168A100E85C33 /* InfoBar.h in Headers */, 2744E5AC0FC168B200E85C33 /* InfoBarCommunicator.h in Headers */, 2744E5AA0FC168A100E85C33 /* ScintillaView.h in Headers */, + 28BDA1241EFB8FB200EBD3F3 /* DefaultLexer.h in Headers */, 280056FB188DDD2C00F200AE /* SparseState.h in Headers */, 2791F3C80FC19F71009DBCF9 /* SciLexer.h in Headers */, 2791F3C60FC19F71009DBCF9 /* PlatCocoa.h in Headers */, @@ -957,6 +964,7 @@ 2744E5B50FC168C500E85C33 /* ScintillaCocoa.mm in Sources */, 2744E5B60FC168C500E85C33 /* ScintillaView.mm in Sources */, 28D191A21DEA72C800159938 /* LexEDIFACT.cxx in Sources */, + 28BDA1221EFB8F7C00EBD3F3 /* DefaultLexer.cxx in Sources */, 114B6F0D11FA7526004FB6AB /* LexAbaqus.cxx in Sources */, 114B6F0E11FA7526004FB6AB /* LexAda.cxx in Sources */, 28B6470C1B54C0720009DC49 /* LexBatch.cxx in Sources */, diff --git a/gtk/makefile b/gtk/makefile index 39d811b83..321b273a5 100644 --- a/gtk/makefile +++ b/gtk/makefile @@ -113,7 +113,7 @@ deps: deps.mak deps.mak: $(CXX) -MM $(CONFIGFLAGS) $(CXXTFLAGS) $(DEPSRCS) | sed -e 's/\/usr.* //' | grep [a-zA-Z] > $@ -$(COMPLIB): Accessor.o CharacterSet.o LexerBase.o LexerModule.o LexerSimple.o StyleContext.o WordList.o \ +$(COMPLIB): Accessor.o CharacterSet.o DefaultLexer.o LexerBase.o LexerModule.o LexerSimple.o StyleContext.o WordList.o \ CharClassify.o Decoration.o Document.o PerLine.o Catalogue.o CallTip.o CaseConvert.o CaseFolder.o \ ScintillaBase.o ContractionState.o EditModel.o Editor.o EditView.o ExternalLexer.o MarginView.o \ PropSetSimple.o PlatGTK.o \ diff --git a/lexers/LexAsm.cxx b/lexers/LexAsm.cxx index 78550bba1..16b32443c 100644 --- a/lexers/LexAsm.cxx +++ b/lexers/LexAsm.cxx @@ -30,6 +30,7 @@ #include "CharacterSet.h" #include "LexerModule.h" #include "OptionSet.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -139,7 +140,7 @@ struct OptionSetAsm : public OptionSet<OptionsAsm> { } }; -class LexerAsm : public ILexer { +class LexerAsm : public DefaultLexer { WordList cpuInstruction; WordList mathInstruction; WordList registers; diff --git a/lexers/LexBaan.cxx b/lexers/LexBaan.cxx index ab96a0db5..9d1f20972 100644 --- a/lexers/LexBaan.cxx +++ b/lexers/LexBaan.cxx @@ -34,6 +34,7 @@ #include "CharacterSet.h" #include "LexerModule.h" #include "OptionSet.h" +#include "DefaultLexer.h" # ifdef SCI_NAMESPACE using namespace Scintilla; @@ -381,7 +382,7 @@ public: } -class LexerBaan : public ILexer { +class LexerBaan : public DefaultLexer { WordListAbridged keywords; WordListAbridged keywords2; WordListAbridged keywords3; diff --git a/lexers/LexBasic.cxx b/lexers/LexBasic.cxx index 4aa449d43..8aa64267b 100644 --- a/lexers/LexBasic.cxx +++ b/lexers/LexBasic.cxx @@ -37,6 +37,7 @@ #include "CharacterSet.h" #include "LexerModule.h" #include "OptionSet.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -226,7 +227,7 @@ struct OptionSetBasic : public OptionSet<OptionsBasic> { } }; -class LexerBasic : public ILexer { +class LexerBasic : public DefaultLexer { char comment_char; int (*CheckFoldPoint)(char const *, int &); WordList keywordlists[4]; diff --git a/lexers/LexD.cxx b/lexers/LexD.cxx index ededccdf4..c09498407 100644 --- a/lexers/LexD.cxx +++ b/lexers/LexD.cxx @@ -27,6 +27,7 @@ #include "CharacterSet.h" #include "LexerModule.h" #include "OptionSet.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -145,7 +146,7 @@ struct OptionSetD : public OptionSet<OptionsD> { } }; -class LexerD : public ILexer { +class LexerD : public DefaultLexer { bool caseSensitive; WordList keywords; WordList keywords2; diff --git a/lexers/LexDMIS.cxx b/lexers/LexDMIS.cxx index 8700d5329..9db391971 100644 --- a/lexers/LexDMIS.cxx +++ b/lexers/LexDMIS.cxx @@ -21,6 +21,7 @@ #include "StyleContext.h" #include "CharacterSet.h" #include "LexerModule.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -38,7 +39,7 @@ static const char *const DMISWordListDesc[] = { }; -class LexerDMIS : public ILexer +class LexerDMIS : public DefaultLexer { private: char *m_wordListSets; diff --git a/lexers/LexEDIFACT.cxx b/lexers/LexEDIFACT.cxx index f7e55bfe9..63805b04e 100644 --- a/lexers/LexEDIFACT.cxx +++ b/lexers/LexEDIFACT.cxx @@ -18,12 +18,13 @@ #include "LexAccessor.h" #include "LexerModule.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; #endif -class LexerEDIFACT : public ILexer +class LexerEDIFACT : public DefaultLexer { public: LexerEDIFACT(); diff --git a/lexers/LexHaskell.cxx b/lexers/LexHaskell.cxx index 26657830c..00e6b8cbf 100644 --- a/lexers/LexHaskell.cxx +++ b/lexers/LexHaskell.cxx @@ -41,6 +41,7 @@ #include "CharacterCategory.h" #include "LexerModule.h" #include "OptionSet.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -269,7 +270,7 @@ struct OptionSetHaskell : public OptionSet<OptionsHaskell> { } }; -class LexerHaskell : public ILexer { +class LexerHaskell : public DefaultLexer { bool literate; Sci_Position firstImportLine; int firstImportIndent; diff --git a/lexers/LexJSON.cxx b/lexers/LexJSON.cxx index 32b71926c..516aeb933 100644 --- a/lexers/LexJSON.cxx +++ b/lexers/LexJSON.cxx @@ -27,6 +27,7 @@ #include "CharacterSet.h" #include "LexerModule.h" #include "OptionSet.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -128,7 +129,7 @@ struct OptionSetJSON : public OptionSet<OptionsJSON> { } }; -class LexerJSON : public ILexer { +class LexerJSON : public DefaultLexer { OptionsJSON options; OptionSetJSON optSetJSON; EscapeSequence escapeSeq; diff --git a/lexers/LexPerl.cxx b/lexers/LexPerl.cxx index 03e371738..5e4071b20 100644 --- a/lexers/LexPerl.cxx +++ b/lexers/LexPerl.cxx @@ -27,6 +27,7 @@ #include "CharacterSet.h" #include "LexerModule.h" #include "OptionSet.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -398,7 +399,7 @@ struct OptionSetPerl : public OptionSet<OptionsPerl> { } }; -class LexerPerl : public ILexer { +class LexerPerl : public DefaultLexer { CharacterSet setWordStart; CharacterSet setWord; CharacterSet setSpecialVar; diff --git a/lexers/LexProgress.cxx b/lexers/LexProgress.cxx index aaa3d4b2d..c4a0e6a41 100644 --- a/lexers/LexProgress.cxx +++ b/lexers/LexProgress.cxx @@ -38,6 +38,7 @@ Differentiate between labels and variables #include "LexerModule.h" #include "OptionSet.h" #include "SparseState.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -122,7 +123,7 @@ namespace { }; } -class LexerABL : public ILexer { +class LexerABL : public DefaultLexer { CharacterSet setWord; CharacterSet setNegationOp; CharacterSet setArithmethicOp; @@ -172,7 +173,7 @@ public: void * SCI_METHOD PrivateCall(int, void *) override { return 0; } - int SCI_METHOD LineEndTypesSupported() { + int SCI_METHOD LineEndTypesSupported() override { return SC_LINE_END_TYPE_DEFAULT; } static ILexer *LexerFactoryABL() { diff --git a/lexers/LexPython.cxx b/lexers/LexPython.cxx index 97943ca24..50c3baa8c 100644 --- a/lexers/LexPython.cxx +++ b/lexers/LexPython.cxx @@ -30,6 +30,7 @@ #include "LexerModule.h" #include "OptionSet.h" #include "SubStyles.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -310,7 +311,7 @@ const char styleSubable[] = { SCE_P_IDENTIFIER, 0 }; } -class LexerPython : public ILexerWithSubStyles { +class LexerPython : public DefaultLexer { WordList keywords; WordList keywords2; OptionsPython options; diff --git a/lexers/LexRegistry.cxx b/lexers/LexRegistry.cxx index 43519e2e2..b02a0d265 100644 --- a/lexers/LexRegistry.cxx +++ b/lexers/LexRegistry.cxx @@ -27,6 +27,7 @@ #include "CharacterSet.h" #include "LexerModule.h" #include "OptionSet.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -53,7 +54,7 @@ struct OptionSetRegistry : public OptionSet<OptionsRegistry> { } }; -class LexerRegistry : public ILexer { +class LexerRegistry : public DefaultLexer { OptionsRegistry options; OptionSetRegistry optSetRegistry; diff --git a/lexers/LexRust.cxx b/lexers/LexRust.cxx index 4f2c6617a..ff5e816ba 100644 --- a/lexers/LexRust.cxx +++ b/lexers/LexRust.cxx @@ -29,6 +29,7 @@ #include "CharacterSet.h" #include "LexerModule.h" #include "OptionSet.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -116,7 +117,7 @@ struct OptionSetRust : public OptionSet<OptionsRust> { } }; -class LexerRust : public ILexer { +class LexerRust : public DefaultLexer { WordList keywords[NUM_RUST_KEYWORD_LISTS]; OptionsRust options; OptionSetRust osRust; diff --git a/lexers/LexSQL.cxx b/lexers/LexSQL.cxx index 6562839e4..871f4dce1 100644 --- a/lexers/LexSQL.cxx +++ b/lexers/LexSQL.cxx @@ -31,6 +31,7 @@ #include "LexerModule.h" #include "OptionSet.h" #include "SparseState.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -302,7 +303,7 @@ struct OptionSetSQL : public OptionSet<OptionsSQL> { } }; -class LexerSQL : public ILexer { +class LexerSQL : public DefaultLexer { public : LexerSQL() {} diff --git a/lexers/LexVerilog.cxx b/lexers/LexVerilog.cxx index 28b8dfbdb..6be3392f1 100644 --- a/lexers/LexVerilog.cxx +++ b/lexers/LexVerilog.cxx @@ -31,6 +31,7 @@ #include "OptionSet.h" #include "SubStyles.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -172,7 +173,7 @@ const char styleSubable[] = {0}; } -class LexerVerilog : public ILexerWithSubStyles { +class LexerVerilog : public DefaultLexer { CharacterSet setWord; WordList keywords; WordList keywords2; diff --git a/lexers/LexVisualProlog.cxx b/lexers/LexVisualProlog.cxx index 6c61c1874..c03069075 100644 --- a/lexers/LexVisualProlog.cxx +++ b/lexers/LexVisualProlog.cxx @@ -39,6 +39,7 @@ #include "CharacterCategory.h" #include "LexerModule.h" #include "OptionSet.h" +#include "DefaultLexer.h" #ifdef SCI_NAMESPACE using namespace Scintilla; @@ -64,7 +65,7 @@ struct OptionSetVisualProlog : public OptionSet<OptionsVisualProlog> { } }; -class LexerVisualProlog : public ILexer { +class LexerVisualProlog : public DefaultLexer { WordList majorKeywords; WordList minorKeywords; WordList directiveKeywords; diff --git a/lexlib/DefaultLexer.cxx b/lexlib/DefaultLexer.cxx new file mode 100644 index 000000000..9babbf7a4 --- /dev/null +++ b/lexlib/DefaultLexer.cxx @@ -0,0 +1,110 @@ +// Scintilla source code edit control +/** @file DefaultLexer.cxx + ** A lexer base class that provides reasonable default behaviour. + **/ +// Copyright 2017 by Neil Hodgson <neilh@scintilla.org> +// The License.txt file describes the conditions under which this software may be distributed. + +#include <cstdlib> +#include <cassert> +#include <cstring> + +#include "ILexer.h" +#include "Scintilla.h" +#include "SciLexer.h" + +#include "PropSetSimple.h" +#include "WordList.h" +#include "LexAccessor.h" +#include "Accessor.h" +#include "LexerModule.h" +#include "DefaultLexer.h" + +#ifdef SCI_NAMESPACE +using namespace Scintilla; +#endif + +static const char styleSubable[] = { 0 }; + +DefaultLexer::DefaultLexer() { +} + +DefaultLexer::~DefaultLexer() { +} + +void SCI_METHOD DefaultLexer::Release() { + delete this; +} + +int SCI_METHOD DefaultLexer::Version() const { + return lvOriginal; +} + +const char * SCI_METHOD DefaultLexer::PropertyNames() { + return ""; +} + +int SCI_METHOD DefaultLexer::PropertyType(const char *) { + return SC_TYPE_BOOLEAN; +} + +const char * SCI_METHOD DefaultLexer::DescribeProperty(const char *) { + return ""; +} + +Sci_Position SCI_METHOD DefaultLexer::PropertySet(const char *, const char *) { + return -1; +} + +const char * SCI_METHOD DefaultLexer::DescribeWordListSets() { + return ""; +} + +Sci_Position SCI_METHOD DefaultLexer::WordListSet(int, const char *) { + return -1; +} + +void SCI_METHOD DefaultLexer::Fold(Sci_PositionU, Sci_Position, int, IDocument *) { +} + +void * SCI_METHOD DefaultLexer::PrivateCall(int, void *) { + return nullptr; +} + +int SCI_METHOD DefaultLexer::LineEndTypesSupported() { + return SC_LINE_END_TYPE_DEFAULT; +} + +int SCI_METHOD DefaultLexer::AllocateSubStyles(int, int) { + return -1; +} + +int SCI_METHOD DefaultLexer::SubStylesStart(int) { + return -1; +} + +int SCI_METHOD DefaultLexer::SubStylesLength(int) { + return 0; +} + +int SCI_METHOD DefaultLexer::StyleFromSubStyle(int subStyle) { + return subStyle; +} + +int SCI_METHOD DefaultLexer::PrimaryStyleFromStyle(int style) { + return style; +} + +void SCI_METHOD DefaultLexer::FreeSubStyles() { +} + +void SCI_METHOD DefaultLexer::SetIdentifiers(int, const char *) { +} + +int SCI_METHOD DefaultLexer::DistanceToSecondaryStyles() { + return 0; +} + +const char * SCI_METHOD DefaultLexer::GetSubStyleBases() { + return styleSubable; +} diff --git a/lexlib/DefaultLexer.h b/lexlib/DefaultLexer.h new file mode 100644 index 000000000..7b1490138 --- /dev/null +++ b/lexlib/DefaultLexer.h @@ -0,0 +1,49 @@ +// Scintilla source code edit control +/** @file DefaultLexer.h + ** 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. + **/ +// Copyright 2017 by Neil Hodgson <neilh@scintilla.org> +// The License.txt file describes the conditions under which this software may be distributed. + +#ifndef DEFAULTLEXER_H +#define DEFAULTLEXER_H + +#ifdef SCI_NAMESPACE +namespace Scintilla { +#endif + +// A simple lexer with no state +class DefaultLexer : public ILexerWithSubStyles { +public: + DefaultLexer(); + virtual ~DefaultLexer(); + void SCI_METHOD Release() override; + int SCI_METHOD Version() const override; + const char * SCI_METHOD PropertyNames() override; + int SCI_METHOD PropertyType(const char *name) override; + const char * SCI_METHOD DescribeProperty(const char *name) override; + Sci_Position SCI_METHOD PropertySet(const char *key, const char *val) override; + const char * SCI_METHOD DescribeWordListSets() override; + Sci_Position SCI_METHOD WordListSet(int n, const char *wl) override; + 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; + 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 +} +#endif + +#endif diff --git a/qt/ScintillaEdit/ScintillaEdit.pro b/qt/ScintillaEdit/ScintillaEdit.pro index 613393011..651b4fed3 100644 --- a/qt/ScintillaEdit/ScintillaEdit.pro +++ b/qt/ScintillaEdit/ScintillaEdit.pro @@ -60,6 +60,7 @@ SOURCES += \ ../../lexlib/LexerNoExceptions.cxx \ ../../lexlib/LexerModule.cxx \ ../../lexlib/LexerBase.cxx \ + ../../lexlib/DefaultLexer.cxx \ ../../lexlib/CharacterSet.cxx \ ../../lexlib/CharacterCategory.cxx \ ../../lexlib/Accessor.cxx \ diff --git a/qt/ScintillaEditBase/ScintillaEditBase.pro b/qt/ScintillaEditBase/ScintillaEditBase.pro index 098fa74bd..26dba021f 100644 --- a/qt/ScintillaEditBase/ScintillaEditBase.pro +++ b/qt/ScintillaEditBase/ScintillaEditBase.pro @@ -58,6 +58,7 @@ SOURCES += \ ../../lexlib/LexerNoExceptions.cxx \ ../../lexlib/LexerModule.cxx \ ../../lexlib/LexerBase.cxx \ + ../../lexlib/DefaultLexer.cxx \ ../../lexlib/CharacterSet.cxx \ ../../lexlib/Accessor.cxx \ ../../lexlib/CharacterCategory.cxx \ diff --git a/win32/makefile b/win32/makefile index 9f6309f67..cfd5b27d9 100644 --- a/win32/makefile +++ b/win32/makefile @@ -116,6 +116,7 @@ LOBJS = \ Accessor.o \ Catalogue.o \ ExternalLexer.o \ + DefaultLexer.o \ LexerBase.o \ LexerModule.o \ LexerSimple.o \ diff --git a/win32/scintilla.mak b/win32/scintilla.mak index 612d278ad..75becbfd1 100644 --- a/win32/scintilla.mak +++ b/win32/scintilla.mak @@ -219,6 +219,7 @@ LOBJS=\ $(DIR_O)\Accessor.obj \ $(DIR_O)\Catalogue.obj \ $(DIR_O)\ExternalLexer.obj \ + $(DIR_O)\DefaultLexer.obj \ $(DIR_O)\LexerBase.obj \ $(DIR_O)\LexerModule.obj \ $(DIR_O)\LexerSimple.obj \ |