Подсветка синтаксиса в Sublime определяется определениями синтаксиса, которые позволяют Sublime распознавать язык и выделять его соответствующим образом. Это делается либо в tmLanguage
(более старый совместимый с TextMate) XML PLIST-файл, либо в sublime-syntax
(новая форма с большими возможностями) JSON-файла.
По сути, определение синтаксиса сводится к списку правил регулярных выражений и описанию того, как и когда их применять для распознавания языка. Синтаксис, который вы используете, предназначен для SCSS, который не распознает директиву @apply
и, следовательно, помечает ее как недействительную.
Таким образом, вы не можете выполнить простую настройку или переключение, которые бы препятствовали этому происходить, и вместо этого вы должны сделать одну из трех вещей:
Измените определение синтаксиса, чтобы знать, что @apply
является допустимым, чтобы он не выделялся как недействительный код
Измените цветовую схему, чтобы не использовать неприятные цвета для недопустимого кода в файлах SCSS.
Использовать альтернативный синтаксис, который либо знает о @apply
, либо не помечает код как недействительный с определенной областью *
Первый из них не особенно прост, поскольку требует знания того, как работает синтаксис @apply
и как писать и изменять определения синтаксиса в Sublime.
Второй вариант довольно прост в использовании; в основном вы бы добавили правило цветовой схемы, которое соответствует области source.css invalid.illegal
, и закрасили бы его как обычный текст вместо цветов, которые использует ваша цветовая схема. Однако нацелить это невозможно только на строки типа @apply
, поэтому вы потеряли бы, что вам скажут о другом недействительном коде, который на самом деле недействителен.
Для третьего варианта есть пакет Подсветка синтаксиса для Sass , который также включает определение синтаксиса для SCSS, у которого нет проблем с директивой @apply
:
Этот пакет намного новее, чем тот, который вы используете в настоящее время, поэтому вы можете увидеть, что некоторые вещи визуально меняют цвета по сравнению с тем, что вы привыкли видеть, поскольку этот синтаксис может использовать другие области действия, чем старый пакет, для тех же конструкций; например, за последние пару лет много раз менялось руководство по использованию областей применения.
Возможно, вы также захотите взглянуть на README для пакета, в котором описаны вещи, которые могут потребовать дополнительной настройки, если вы используете более старый пакет.