仅删除“@apply”的 Sublime 语法高亮

Posted

技术标签:

【中文标题】仅删除“@apply”的 Sublime 语法高亮【英文标题】:Removing Sublime syntax highlight for just '@apply' 【发布时间】:2019-10-18 14:35:30 【问题描述】:

我正在为我的 scss 文件使用 Tailwindcss,它引入了一个新命令 @apply。但问题是 Sublime 突出了这一点(可能是错误或无法识别的语法)。如何关闭单个突出显示,这样它就不会显示为我所有的 @apply 规则的明显错误?

【问题讨论】:

您是否使用第三方软件包来支持这一点?据我所知,Sublime @apply 仅突出显示普通文本,虽然我不熟悉 TailWind,所以我可能做错了什么。 @apply 进入我的 scss 文件,所以我确实有 scss 语法亮点。但由于@apply 不是普通的scss 命令,它会显示为亮粉色覆盖。 =( 啊,我明白了。我怀疑您需要在语法中添加额外的规则。您使用什么包来为 SCSS 提供语法高亮显示? 我认为这只是包控制中的 SCSS 语法,packagecontrol.io/packages/SCSS 【参考方案1】:

Sublime 中的语法高亮是由允许 Sublime 识别语言并在适当时高亮显示的语法定义驱动的。这可以在tmLanguage(与旧版 TextMate 兼容)XML PLIST 文件或sublime-syntax(具有更多功能的新形式)JSON 文件中完成。

基本上,语法定义归结为正则表达式规则列表以及如何以及何时应用它们以识别语言的描述。您使用的语法适用于 SCSS,它无法识别 @apply 指令,因此将其标记为无效。

因此,您无法进行简单的设置或切换来阻止这种情况发生,您必须改为执行以下三件事之一:

    修改语法定义,知道@apply是有效的,这样就不会高亮为无效代码

    修改你的配色方案,不要对 SCSS 文件中的无效代码使用讨厌的颜色。

    使用知道@apply 或不会在特定范围内将代码标记为无效的替代语法

第一个不是特别直接,因为它需要了解@apply 语法的工作原理以及如何在 Sublime 中编写和修改语法定义。

第二个选项很容易实现;基本上,您将添加一个与source.css invalid.illegal 范围匹配的配色方案规则,并将其着色为纯文本,而不是您的配色方案使用的颜色。但是,不可能仅将其定位到 @apply 类型行,因此您将不会被告知其他实际上无效的无效代码。

对于第三个选项,有 Syntax Highlighting for Sass 包,它还包括一个 SCSS 的语法定义,它与 @apply 指令没有问题:

这个包比你当前使用的包要新得多,所以你可能会看到一些东西在视觉上改变了你以前看到的颜色,因为这个语法可能使用与旧包不同的范围来处理相同的结构;例如,在过去几年中,关于使用什么范围的指南发生了很大变化。

您可能还想查看该软件包的 README,其中概述了如果您来自较旧的软件包,可能需要额外设置的内容。

【讨论】:

以上是关于仅删除“@apply”的 Sublime 语法高亮的主要内容,如果未能解决你的问题,请参考以下文章

sublime vue 语法高亮插件安装

Sublime Text 语法高亮 Jinja2 [关闭]

Sublime Text 3:自定义语法高亮

sublime text 如何支持vue提示(语法高亮)

让sublime text3支持Vue语法高亮显示

让sublime text3支持Vue语法高亮显示