aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Document.cxx
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2021-08-22 22:14:19 +1000
committerNeil <nyamatongwe@gmail.com>2021-08-22 22:14:19 +1000
commit6f709917a1134aaf55fc83d8a9f18a30b50efd89 (patch)
tree303457f17677c8c92d484b4485e1ec4cfc2499c8 /src/Document.cxx
parent557bea24106e3868d2b5c5c4b066575c5236538a (diff)
downloadscintilla-mirror-6f709917a1134aaf55fc83d8a9f18a30b50efd89.tar.gz
Encapsulate an ILexer5* in LexerInstance class to simplify client code.
Diffstat (limited to 'src/Document.cxx')
-rw-r--r--src/Document.cxx14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Document.cxx b/src/Document.cxx
index b5ec9a275..24ddd04ce 100644
--- a/src/Document.cxx
+++ b/src/Document.cxx
@@ -51,6 +51,16 @@
using namespace Scintilla;
using namespace Scintilla::Internal;
+LexInterface::LexInterface(Document *pdoc_) noexcept : pdoc(pdoc_), performingStyle(false) {
+}
+
+LexInterface::~LexInterface() noexcept = default;
+
+void LexInterface::SetInstance(ILexer5 *instance_) {
+ instance.reset(instance_);
+ pdoc->LexerChanged();
+}
+
void LexInterface::Colourise(Sci::Position start, Sci::Position end) {
if (pdoc && instance && !performingStyle) {
// Protect against reentrance, which may occur, for example, when
@@ -86,6 +96,10 @@ LineEndType LexInterface::LineEndTypesSupported() {
return LineEndType::Default;
}
+bool LexInterface::UseContainerLexing() const noexcept {
+ return !instance;
+}
+
ActionDuration::ActionDuration(double duration_, double minDuration_, double maxDuration_) noexcept :
duration(duration_), minDuration(minDuration_), maxDuration(maxDuration_) {
}