diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ScintillaBase.cxx | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index e65b3ecf7..75f0d5a16 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -504,6 +504,7 @@ public: int SubStylesStart(int styleBase); int SubStylesLength(int styleBase); int StyleFromSubStyle(int subStyle); + int PrimaryStyleFromStyle(int style); void FreeSubStyles(); void SetIdentifiers(int style, const char *identifiers); int DistanceToSecondaryStyles(); @@ -686,6 +687,13 @@ int LexState::StyleFromSubStyle(int subStyle) { return 0; } +int LexState::PrimaryStyleFromStyle(int style) { + if (instance && (interfaceVersion >= lvSubStyles)) { + return static_cast<ILexerWithSubStyles *>(instance)->PrimaryStyleFromStyle(style); + } + return 0; +} + void LexState::FreeSubStyles() { if (instance && (interfaceVersion >= lvSubStyles)) { static_cast<ILexerWithSubStyles *>(instance)->FreeSubStyles(); @@ -994,6 +1002,9 @@ sptr_t ScintillaBase::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lPara case SCI_GETSTYLEFROMSUBSTYLE: return DocumentLexState()->StyleFromSubStyle(wParam); + case SCI_GETPRIMARYSTYLEFROMSTYLE: + return DocumentLexState()->PrimaryStyleFromStyle(wParam); + case SCI_FREESUBSTYLES: DocumentLexState()->FreeSubStyles(); break; |