From 8894350a9d04fe4060c7bf980c64b4f47ee3d4ae Mon Sep 17 00:00:00 2001 From: zufuliu Date: Sat, 6 Jan 2024 15:18:07 +0800 Subject: [PATCH] Reuse unused brace highlighting styles in lexer for URL highlighting. --- scintilla/include/SciLexer.h | 4 +++- scintilla/include/SciLexer.iface | 1 - scintilla/include/Scintilla.h | 3 +-- scintilla/include/Scintilla.iface | 3 +-- scintilla/include/ScintillaTypes.h | 3 +-- scintilla/lexers/LexMarkdown.cxx | 4 ++-- scintilla/scripts/HFacerLexer.py | 6 +++++- scintilla/src/EditView.cxx | 6 +++--- src/EditAutoC.c | 2 +- src/Styles.c | 2 +- tools/LexerConfig.py | 2 +- 11 files changed, 19 insertions(+), 17 deletions(-) diff --git a/scintilla/include/SciLexer.h b/scintilla/include/SciLexer.h index e49a48b828..4a48b4d2af 100644 --- a/scintilla/include/SciLexer.h +++ b/scintilla/include/SciLexer.h @@ -12,6 +12,9 @@ /* SciLexer features - not in standard Scintilla */ /* ++Autogenerated -- start of section automatically generated from SciLexer.iface */ +#define STYLE_LINK 33 +#define STYLE_COMMENT_LINK 34 +#define STYLE_STRING_LINK 35 #define SCLEX_CONTAINER 0 #define SCLEX_NULL 1 #define SCLEX_PYTHON 2 @@ -1085,7 +1088,6 @@ #define SCE_MARKDOWN_DIFF_ADD_SQUARE 93 #define SCE_MARKDOWN_DIFF_DEL_CURLY 94 #define SCE_MARKDOWN_DIFF_DEL_SQUARE 95 -#define SCE_MARKDOWN_COMMENT_LINK 96 #define SCE_AHK_DEFAULT 0 #define SCE_AHK_COMMENTLINE 1 #define SCE_AHK_SECTION_COMMENT 2 diff --git a/scintilla/include/SciLexer.iface b/scintilla/include/SciLexer.iface index a969164df0..137d9e91d6 100644 --- a/scintilla/include/SciLexer.iface +++ b/scintilla/include/SciLexer.iface @@ -2005,7 +2005,6 @@ val SCE_MARKDOWN_DIFF_ADD_CURLY= val SCE_MARKDOWN_DIFF_ADD_SQUARE= val SCE_MARKDOWN_DIFF_DEL_CURLY= val SCE_MARKDOWN_DIFF_DEL_SQUARE= -val SCE_MARKDOWN_COMMENT_LINK= # Lexical state for SCLEX_TXT2TAGS #lex Txt2tags=SCLEX_TXT2TAGS SCE_TXT2TAGS_ #val SCE_TXT2TAGS_DEFAULT=0 diff --git a/scintilla/include/Scintilla.h b/scintilla/include/Scintilla.h index 956467dff6..fd6cad7ceb 100644 --- a/scintilla/include/Scintilla.h +++ b/scintilla/include/Scintilla.h @@ -209,8 +209,7 @@ typedef sptr_t (*SciFnDirectStatus)(sptr_t ptr, unsigned int iMessage, uptr_t wP #define SCI_SETMARGINS 2252 #define SCI_GETMARGINS 2253 #define STYLE_DEFAULT 0 -#define STYLE_LINK 32 -#define STYLE_LINENUMBER 33 +#define STYLE_LINENUMBER 32 #define STYLE_BRACELIGHT 34 #define STYLE_BRACEBAD 35 #define STYLE_CONTROLCHAR 36 diff --git a/scintilla/include/Scintilla.iface b/scintilla/include/Scintilla.iface index 76911e5d9f..649aefda02 100644 --- a/scintilla/include/Scintilla.iface +++ b/scintilla/include/Scintilla.iface @@ -538,8 +538,7 @@ get int GetMargins=2253(,) # Styles in range 32..39 are predefined for parts of the UI and are not used as normal styles. enu StylesCommon=STYLE_ val STYLE_DEFAULT=0 -val STYLE_LINK=32 -val STYLE_LINENUMBER=33 +val STYLE_LINENUMBER=32 val STYLE_BRACELIGHT=34 val STYLE_BRACEBAD=35 val STYLE_CONTROLCHAR=36 diff --git a/scintilla/include/ScintillaTypes.h b/scintilla/include/ScintillaTypes.h index 30f5f0b1bd..d896e61ccd 100644 --- a/scintilla/include/ScintillaTypes.h +++ b/scintilla/include/ScintillaTypes.h @@ -114,8 +114,7 @@ enum class MarginType { enum class StylesCommon { Default = 0, - Link = 32, - LineNumber = 33, + LineNumber = 32, BraceLight = 34, BraceBad = 35, ControlChar = 36, diff --git a/scintilla/lexers/LexMarkdown.cxx b/scintilla/lexers/LexMarkdown.cxx index 772bf50eea..87adb65766 100644 --- a/scintilla/lexers/LexMarkdown.cxx +++ b/scintilla/lexers/LexMarkdown.cxx @@ -1128,7 +1128,7 @@ bool MarkdownLexer::DetectAutoLink() { periodCount = 0; autoLink = result; SaveOuterStyle(sc.state); - sc.SetState((sc.state == SCE_H_COMMENT)? SCE_MARKDOWN_COMMENT_LINK : STYLE_LINK); + sc.SetState((sc.state == SCE_H_COMMENT)? STYLE_COMMENT_LINK : STYLE_LINK); sc.Advance(offset); return true; } @@ -2111,7 +2111,7 @@ void ColouriseMarkdownDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int in continue; case STYLE_LINK: - case SCE_MARKDOWN_COMMENT_LINK: + case STYLE_COMMENT_LINK: if (lexer.HighlightAutoLink()) { continue; } diff --git a/scintilla/scripts/HFacerLexer.py b/scintilla/scripts/HFacerLexer.py index 13f0262381..335d125e5b 100644 --- a/scintilla/scripts/HFacerLexer.py +++ b/scintilla/scripts/HFacerLexer.py @@ -12,7 +12,11 @@ def printLexHFile(f): STYLE_FIRSTPREDEFINED = 32 STYLE_LASTPREDEFINED = 39 - out = [] + out = [ + '#define STYLE_LINK 33', + '#define STYLE_COMMENT_LINK 34', + '#define STYLE_STRING_LINK 35', + ] autoValue = 0 valueMap = {} for name in f.order: diff --git a/scintilla/src/EditView.cxx b/scintilla/src/EditView.cxx index f7935a9441..db9735641b 100644 --- a/scintilla/src/EditView.cxx +++ b/scintilla/src/EditView.cxx @@ -320,11 +320,11 @@ void EditView::RefreshPixMaps(Surface *surfaceWindow, const ViewStyle &vsDraw) { pixmapIndentGuideHighlight = surfaceWindow->AllocatePixMap(1, vsDraw.lineHeight + 1); const PRectangle rcIG = PRectangle::FromInts(0, 0, 1, vsDraw.lineHeight); pixmapIndentGuide->FillRectangle(rcIG, vsDraw.styles[StyleIndentGuide].back); - pixmapIndentGuideHighlight->FillRectangle(rcIG, vsDraw.styles[StyleBraceLight].back); + pixmapIndentGuideHighlight->FillRectangle(rcIG, vsDraw.styles[/*StyleBraceLight*/StyleDefault].back); for (int stripe = 1; stripe < vsDraw.lineHeight + 1; stripe += 2) { const PRectangle rcPixel = PRectangle::FromInts(0, stripe, 1, stripe + 1); pixmapIndentGuide->FillRectangle(rcPixel, vsDraw.styles[StyleIndentGuide].fore); - pixmapIndentGuideHighlight->FillRectangle(rcPixel, vsDraw.styles[StyleBraceLight].fore); + pixmapIndentGuideHighlight->FillRectangle(rcPixel, vsDraw.styles[/*StyleBraceLight*/StyleDefault].fore); } pixmapIndentGuide->FlushDrawing(); pixmapIndentGuideHighlight->FlushDrawing(); @@ -1058,7 +1058,7 @@ ColourRGBA TextBackground(const EditModel &model, const ViewStyle &vsDraw, const return colourHotSpotBack->Opaque(); } } - if (background && (styleMain != StyleBraceLight) && (styleMain != StyleBraceBad)) { + if (background /*&& (styleMain != StyleBraceLight) && (styleMain != StyleBraceBad)*/) { return *background; } else { return vsDraw.styles[styleMain].back; diff --git a/src/EditAutoC.c b/src/EditAutoC.c index ad82d8103f..6e9d9d9f7d 100644 --- a/src/EditAutoC.c +++ b/src/EditAutoC.c @@ -3155,7 +3155,7 @@ void InitAutoCompletionCache(LPCEDITLEXER pLex) { case NP2LEX_MARKDOWN: CommentStyleMask[SCE_H_COMMENT >> 5] |= (1U << (SCE_H_COMMENT & 31)); CommentStyleMask[SCE_H_SGML_COMMENT >> 5] |= (1U << (SCE_H_SGML_COMMENT & 31)); - CommentStyleMask[SCE_MARKDOWN_COMMENT_LINK >> 5] |= (1U << (SCE_MARKDOWN_COMMENT_LINK & 31)); + CommentStyleMask[STYLE_COMMENT_LINK >> 5] |= (1U << (STYLE_COMMENT_LINK & 31)); AllStringStyleMask[SCE_H_DOUBLESTRING >> 5] |= (1U << (SCE_H_DOUBLESTRING & 31)); AllStringStyleMask[SCE_H_SINGLESTRING >> 5] |= (1U << (SCE_H_SINGLESTRING & 31)); AllStringStyleMask[SCE_H_SGML_DOUBLESTRING >> 5] |= (1U << (SCE_H_SGML_DOUBLESTRING & 31)); diff --git a/src/Styles.c b/src/Styles.c index 076b577842..e804df11bc 100644 --- a/src/Styles.c +++ b/src/Styles.c @@ -1742,7 +1742,7 @@ void Style_SetLexer(PEDITLEXER pLexNew, BOOL bLexerChanged) { Style_LoadOne(&lexHTML); } if (rid == NP2LEX_MARKDOWN) { - SciCall_CopyStyles(STYLE_LINK, MULTI_STYLE(SCE_MARKDOWN_PLAIN_LINK, SCE_MARKDOWN_PAREN_LINK, SCE_MARKDOWN_ANGLE_LINK, SCE_MARKDOWN_COMMENT_LINK)); + SciCall_CopyStyles(STYLE_LINK, MULTI_STYLE(SCE_MARKDOWN_PLAIN_LINK, SCE_MARKDOWN_PAREN_LINK, SCE_MARKDOWN_ANGLE_LINK, STYLE_COMMENT_LINK)); } else { Style_SetAllStyle(&lexJavaScript, SCE_PHP_LABEL + 1); Style_SetAllStyle(&lexCSS, SCE_PHP_LABEL + SCE_JS_LABEL + 2); diff --git a/tools/LexerConfig.py b/tools/LexerConfig.py index 2f60a53992..8ff5f344e0 100644 --- a/tools/LexerConfig.py +++ b/tools/LexerConfig.py @@ -688,7 +688,7 @@ class KeywordAttr(IntFlag): }, 'NP2LEX_MARKDOWN': { 'block_comment_string': (''), - 'comment_style_list': ['SCE_H_COMMENT', 'SCE_H_SGML_COMMENT', 'SCE_MARKDOWN_COMMENT_LINK'], + 'comment_style_list': ['SCE_H_COMMENT', 'SCE_H_SGML_COMMENT', 'STYLE_COMMENT_LINK'], 'default_fold_level': ['header1', 'header2', 'header3'], 'escape_char_style': 'SCE_MARKDOWN_ESCAPECHAR', 'escape_punctuation': True,