Почему Sublime не обнаруживает автоматически эту пользовательскую Sublime-сборку с помощью селектора?

Я сохранил следующее node-sass.sublime-build в моей папке пользователя

{
    "shell_cmd": "node-sass.cmd $file",
    "selector": "source.scss"
}

у меня есть slideEditor.scss файл. Если я явно установить систему сборки на node-sass, Ctrl+ B работает просто отлично, но если я установлю его на "Автоматически", Ctrl+ B ничего не делает, ничего не записываясь в консоль. Что может происходить? По ограниченной документации я все делаю правильно.

1 ответ

Решение

Во-первых, краткий ответ на ваш вопрос: изменить "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Яваскрипт source.javascriptи т. д. Эта базовая область "selector" ищет - это никак не связано с именем файла.

Определение синтаксиса, которое вы используете, имеет базовую область видимости source.sassВот почему ваша система сборки не работала, если вы не выбрали ее специально (которая переопределяетselectorатрибуты). Есть два способа обойти это. Первое, как я уже говорил выше, это просто изменить селектор наsource.sassи у вас все будет готово. Второе, что я предпочитаю, - это использовать подсветку синтаксиса для пакета Sass, доступную в Package Control. Во-первых, у него есть отдельные определения языка для SASS и SCSS, так что вы можете получить правильное выделение для обоих. Базовая область действия для SCSS source.scss, как и следовало ожидать, в то время как для SASS это source.sass, так что вы можете иметь отдельные системы сборки, если вы используете оба языка. Кроме того, определение синтаксиса намного богаче, чем пакет, который вы используете, поэтому, если вы используете одну из рекомендуемых цветовых схем, вы получите очень хорошее выделение всех различных элементов, ключевых слов, свойств и т. Д. Наконец, Пакет включает в себя множество дополнений и других дополнений, которые значительно облегчают написание таблиц стилей.

Другие вопросы по тегам