diff options
-rw-r--r-- | src/ScintillaBase.cxx | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 8e3a86c15..9180b3796 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -679,6 +679,18 @@ void LexState::SetWordList(int n, const char *wl) { } } +int LexState::GetIdentifier() const { + if (lexCurrent) { + return lexCurrent->GetLanguage(); + } + if (instance) { + if (instance->Version() >= lvRelease5) { + return instance->GetIdentifier(); + } + } + return SCLEX_CONTAINER; +} + const char *LexState::GetName() const { if (lexCurrent) { return lexCurrent->languageName; @@ -847,7 +859,7 @@ const char *LexState::DescriptionOfStyle(int style) { } void ScintillaBase::NotifyStyleToNeeded(Sci::Position endStyleNeeded) { - if (DocumentLexState()->lexLanguage != SCLEX_CONTAINER) { + if (DocumentLexState()->GetIdentifier() != SCLEX_CONTAINER) { const Sci::Line lineEndStyled = pdoc->SciLineFromPosition(pdoc->GetEndStyled()); const Sci::Position endStyled = @@ -1062,7 +1074,7 @@ sptr_t ScintillaBase::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lPara break; case SCI_GETLEXER: - return DocumentLexState()->lexLanguage; + return DocumentLexState()->GetIdentifier(); case SCI_SETILEXER: DocumentLexState()->SetInstance(reinterpret_cast<ILexer5 *>(lParam)); |