首先,对您的问题的简短回答:更改"source.scss"
为"source.sass"
自动构建系统应该可以正常工作。
背景和一些替代方案:
Sublime 中的语法高亮(以及这个想法最初来自的 TextMate)基于.tmLanguage
每种语言的语法定义。这些 XML/Plist 文件基本上是一系列将匹配项分配给范围的正则表达式。例如,在以下 CSS 中:
body {
margin: 0;
}
这个词body
有范围source.css meta.selector.css entity.name.tag.css
。source.css
是基本作用域,或所有其他作用域的父作用域。在 Python 文件中,基本范围是source.python
,在 HTML 中是text.html.basic
,Javascript 是source.javascript
等等。这个基本范围就是要"selector"
寻找的——它与文件名无关。
您正在使用的语法定义的基本范围为source.sass
,这就是为什么您的构建系统无法正常工作的原因,除非您特别选择它(它会覆盖该selector
属性)。有两种方法可以解决这个问题。第一个,正如我上面提到的,只是简单地将选择器更改为source.sass
,然后你就准备好了。第二个,我更喜欢使用Sass 包的语法高亮,可从包控制中获得。一方面,它为 SASS 和 SCSS 提供了不同的语言定义,因此您可以对两者进行适当的突出显示。如您所料, SCSS 的基本范围是source.scss
,而 SASS的基本范围是source.sass
,因此如果您使用两种语言,则可以拥有单独的构建系统。此外,语法定义比您使用的包要丰富得多,因此,如果您使用推荐的配色方案之一,您会很好地突出显示所有各种元素、关键字、属性等。最后,包包括一堆完成和其他使编写样式表更容易的附加功能。