GTKSourceView Язык разметки HTML Комментарий
Я отредактировал языковой файл gtksourceview для уценки от Jean-Philippe Fleury. Вот моя улучшенная версия: https://gist.github.com/ZelphirKaltstahl/de2b725ef5adba0a150dd27a5f7b66dc
В этом используются специальные стили уценки, которые я определил в отредактированном файле стилей: https://gist.github.com/ZelphirKaltstahl/f45be7bcedbc895df2439dd252d28c7b
Эти файлы я использую для GEdit.
Тем не менее, я еще не удовлетворен на самом деле. Есть эти properties
для определения, как выглядит комментарий в meta data
, Они уже соответствуют комментариям HTML, но tommorow_night-eighties
Тема использует некоторый цвет для комментариев, который я не хочу использовать в файлах уценки, но хочу использовать в других файлах исходного кода.
Я решил решить эту проблему, добавив к этим свойствам знак минус, надеясь, что они больше не будут соответствовать html-комментариям, и определив мое собственное регулярное выражение для html-комментариев и придав этому другой цвет.
В связанные гистеты это уже включено, но как-то не работает должным образом. HTML-комментарии все еще сопоставляются и подсвечиваются в соответствии со свойствами метаданных и моего регулярного выражения html-block-comment
игнорируется
Регулярное выражение:
<!--
(literally this kind of comment!)
somehow still not working!
-->
<context id="html-block-comment" style-ref="html-block-comment">
<match extended="true">
^.* # at the beginning of the line an arbitrary amount of any characters
( # begin capture group 1
<!-- # the begin marker of an html comment
[^>]* # everything except >
--> # the end marker of an html comment
) # end of capturing group 1
.*$ # an arbitrary amount of any characters until line end
</match>
</context>
Я также уже включил его в синтаксис уценки (в самом низу):
<context id="markdown-syntax">
<include>
<!-- Markdown contexts. -->
<context ref="atx-header"/>
<context ref="setext-header"/>
<context ref="horizontal-rule"/>
<context ref="list"/>
<context ref="code-block"/>
<context ref="1-backtick-code-span"/>
<context ref="2-backticks-code-span"/>
<context ref="blockquote"/>
<context ref="automatic-link"/>
<context ref="inline-link"/>
<context ref="reference-link"/>
<context ref="link-definition"/>
<context ref="inline-image"/>
<context ref="reference-image"/>
<context ref="underscores-emphasis"/>
<context ref="asterisks-emphasis"/>
<context ref="underscores-strong-emphasis"/>
<context ref="asterisks-strong-emphasis"/>
<context ref="backslash-escape"/>
<context ref="line-break"/>
<!-- Markdown Extra contexts. -->
<context ref="setext-header-id-attribute"/>
<context ref="definition-list"/>
<context ref="fenced-code-block"/>
<context ref="footnote-reference"/>
<context ref="abbreviation"/>
<context ref="table-separator"/>
<context ref="backslash-escape-extra"/>
<!-- Xiaolong added -->
<context ref="math-span-inline"/>
<context ref="math-span-block"/>
<context ref="html-block-comment"/>
</include>
</context>
и есть определение стиля в верхней части файла lang:
<styles>
<!-- Markdown styles. -->
<style id="header" _name="Header" map-to="def:type"/>
<style id="horizontal-rule" _name="Horizontal Rule" map-to="def:type"/>
<style id="code" _name="Code" map-to="def:identifier"/>
<style id="blockquote-marker" _name="Blockquote Marker" map-to="def:shebang"/>
<style id="label" _name="Label" map-to="def:preprocessor"/>
<style id="attribute-value" _name="Attribute Value" map-to="def:constant"/>
<style id="image-marker" _name="Image Marker" map-to="def:shebang"/>
<style id="backslash-escape" _name="Backslash Escape" map-to="def:special-char"/>
<style id="line-break" _name="Line Break" map-to="def:note"/>
<!-- Xiaolong added styles -->
<style id="list-marker" _name="List Marker" map-to="markdown:list-marker"/>
<style id="math-inline" _name="Math Inline" map-to="markdown:single-math-marker"/>
<style id="math-block" _name="Math Block" map-to="markdown:double-math-marker"/>
<style id="url" _name="URL" map-to="markdown:url"/>
<style id="link-text" _name="Link Text" map-to="markdown:link-text"/>
<style id="emphasis" _name="Emphasis" map-to="markdown:emphasis"/>
<style id="strong-emphasis" _name="Strong Emphasis" map-to="markdown:strong-emphasis"/>
<style id="html-block-comment" _name="HTML Block Comment" map-to="markdown:html-block-comment"/>
<!-- Markdown Extra styles. -->
<style id="header-id-marker" _name="Header Id Marker" map-to="def:shebang"/>
<style id="definition-list-marker" _name="Definition List Marker" map-to="def:shebang"/>
<style id="footnote-marker" _name="Footnote Marker" map-to="def:shebang"/>
<style id="abbreviation-marker" _name="Abbreviation Marker" map-to="def:shebang"/>
<style id="abbreviation" _name="Abbreviation" map-to="def:preprocessor"/>
<style id="table-separator" _name="Table Separator" map-to="def:statement"/>
</styles>
Этот стиль отображается в XML-файле стиля, где у меня есть определение:
<style name="markdown:html-block-comment" foreground="#303030" bold="false" italic="false"/>
Так что я думаю, что все это на месте, но, видимо, это не так.
Как я могу сделать так, чтобы использовался только мой регулярное выражение для html-комментария?