如何在VS代码中启用HTML实体突出显示?

时间:2016-03-24 22:03:48

标签: html visual-studio-code

在VS Code UserVoice页面上,there was a request为HTML实体添加建议和突出显示,例如&。微软将此标记为完整,并附有评论,声明“此功能是在Visual Studio 2013中为HTML和Razor文档实现的”。我认为这意味着它是在VS 2013中实现的,而不是VS Code。

假设这是正确的,我如何在HTML文档中为这些项添加突出显示?它们似乎在XML文档中正确突出显示。看看syntaxes / html.plist,它看起来应该是捕获HTML实体,所以我认为主题会适当地为它们着色,但我真的不明白它是如何在后端工作的。

我的问题是:

  1. VS Code是否应突出显示这些项目?

  2. 如果没有,我可以更改HTML语法文件或主题文件吗?如果是这样,我该怎么做?

  3. 这是html.plist(这是默认安装):

    <key>entities</key>
            <dict>
                <key>patterns</key>
                <array>
                    <dict>
                        <key>captures</key>
                        <dict>
                            <key>1</key>
                            <dict>
                                <key>name</key>
                                <string>punctuation.definition.entity.html</string>
                            </dict>
                            <key>3</key>
                            <dict>
                                <key>name</key>
                                <string>punctuation.definition.entity.html</string>
                            </dict>
                        </dict>
                        <key>match</key>
                        <string>(&amp;)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)</string>
                        <key>name</key>
                        <string>constant.character.entity.html</string>
                    </dict>
                    <dict>
                        <key>match</key>
                        <string>&amp;</string>
                        <key>name</key>
                        <string>invalid.illegal.bad-ampersand.html</string>
                    </dict>
    

    --- --- EDIT

    这里有一些截图来澄清我的意思(两者都采用相同的主题):

    xml doc with highlighting

    html without highlighting

    当涉及到这些实体时,XML.plist看起来非常类似于HTML.plist,但我不会将XML.plist添加到这个已经很长的问题中,除非有人没有他们自己的副本并希望我这样做。

3 个答案:

答案 0 :(得分:1)

您可以使用扩展程序

您可以使用VS Code的Yeoman扩展生成器,yo代码将新的TextMate主题文件(.tmTheme)添加到VS Code安装中。扩展生成器获取现有的TextMate主题文件并将其打包以在VS Code中使用。

ColorSublime有数百个现有的TextMate主题可供选择。选择您喜欢的主题并复制下载链接以在Yeoman生成器中使用。它将采用“http://colorsublime.com/theme/download/(number)”之类的格式。 “代码”生成器将提示您输入.tmTheme文件的URL或文件位置,主题名称以及与主题相关的其他信息。

将生成的主题文件夹复制到.vscode/extensions文件夹下的新文件夹,然后重新启动VS Code。

使用File&gt;打开Color Theme选取器主题。偏好&gt;颜色主题,您可以在下拉菜单中看到您的主题。向上和向下箭头以查看主题的实时预览。

您也可以自己创建主题

您还可以从头开始创作自己的TextMate主题。有关详细信息,请参阅TextMate主题和语言语法命名约定文档。

除了TextMate语言语法标准范围外,VS Code还具有自定义主题设置,您可以使用它们来调整自己的主题:

rangeHighlight:突出显示范围的背景颜色,例如快速打开和查找功能。

selectionHighlight:选择时突出显示的区域的背景颜色。

inactiveSelection:不在焦点时选择的背景颜色。

wordHighlight:读取访问期间符号的背景颜色,如读取变量。

wordHighlightStrong:写入访问期间符号的背景颜色,如写入变量。

findMatchHighlight:与搜索匹配的区域的背景颜色。 currentFindMatchHighlight:与搜索匹配的当前区域的背景颜色。

findRangeHighlight:为搜索选择的区域的背景颜色。

linkForeground:链接的颜色。

activeLinkForeground:活动链接的颜色。

hoverHighlight:悬停时的背景颜色。

referenceHighlight:查找所有引用时引用的背景颜色。

guide:显示指南的颜色以指示嵌套级别。

您可以在此处找到包含自定义设置的VS Code主题示例。

创作主题相当棘手,因为语法的行为有点不同。尝试遵循TextMate约定并避免在主题中使用特定于语言的规则,因为语法也可以被扩展名替换。

答案 1 :(得分:0)

这是VS代码的功能请求:https://github.com/Microsoft/vscode/issues/784

回答你的问题:

  1. 您可以向项目提交拉取请求,从而使其他人受益!您要修改的代码是herehere's how you can contribute

答案 2 :(得分:0)

您可以更改“颜色主题”以突出显示 VS Code 中的 HTML 实体。 转到首选项 -> 颜色主题并选择另一个主题 - 例如“Light+(默认光)”或“Dark+(默认暗)”使 HTML 实体的突出显示工作。