diff options
Diffstat (limited to 'src/ScintillaBase.cxx')
-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 814eac726..e65b3ecf7 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -503,6 +503,7 @@ public: int AllocateSubStyles(int styleBase, int numberStyles); int SubStylesStart(int styleBase); int SubStylesLength(int styleBase); + int StyleFromSubStyle(int subStyle); void FreeSubStyles(); void SetIdentifiers(int style, const char *identifiers); int DistanceToSecondaryStyles(); @@ -678,6 +679,13 @@ int LexState::SubStylesLength(int styleBase) { return 0; } +int LexState::StyleFromSubStyle(int subStyle) { + if (instance && (interfaceVersion >= lvSubStyles)) { + return static_cast<ILexerWithSubStyles *>(instance)->StyleFromSubStyle(subStyle); + } + return 0; +} + void LexState::FreeSubStyles() { if (instance && (interfaceVersion >= lvSubStyles)) { static_cast<ILexerWithSubStyles *>(instance)->FreeSubStyles(); @@ -983,6 +991,9 @@ sptr_t ScintillaBase::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lPara case SCI_GETSUBSTYLESLENGTH: return DocumentLexState()->SubStylesLength(wParam); + case SCI_GETSTYLEFROMSUBSTYLE: + return DocumentLexState()->StyleFromSubStyle(wParam); + case SCI_FREESUBSTYLES: DocumentLexState()->FreeSubStyles(); break; |