Sublime Text 2: Разная подсветка языка на основе контекста? (a la Webstorm)
Я смотрел несколько видео на Egghead.io об AngularJS. Создатель видео использует Webstorm (и, я считаю, работает для них). Одна из особенностей, которую я заметил, заключается в том, что он может устанавливать различную подсветку синтаксиса в разных областях или кавычки. Итак, в коде вроде следующего (из директивы AngularJS)
return {
template: '<div>something</div>',
// ^^^ these guys ^^^
}
... он может получить внутри кавычек, чтобы выделить как HTML.
Я использую Sublime Text 2, и я довольно привязан к нему. Есть ли существующая функция/плагин для Sublime, который может обрабатывать такой случай? Если нет, возможно ли это технически возможно с использованием API Sublime Text 2?
Ответы
Ответ 1
Я не думаю, что он встроен, но это, безусловно, возможно. Я занимался графикой и хотел сделать что-то подобное. Ярлыки могут быть сгенерированы с помощью синтаксиса html. В любом случае, я играл с файлом .tmLanguage
и добавил новый шаблон для соответствия контексту, где html как записи были действительными (я ищу label = <
). Модели, которые я использовал для захватов, не так уж хороши, но для меня это работает отлично. Это дает мне следующее, которое, я думаю, похоже на то, что вы ищете.
![Demo]()
Я ничего не знаю об AngularJS, поэтому я не могу помочь вам с чем-то конкретным, но это, безусловно, возможно. Обратите внимание, что на изображении ниже последний <table></table>
должен просто показать, что выделения там не встречаются.
Edit:
Забыл включить это в исходное сообщение, но вот мой обновленный файл tmLangauage. Этот первый шаблон - это то, что я добавил (ссылка). Я использовал PlistJsonConverter, чтобы перейти от JSON к plist, а затем сохранил файл как .tmLanguage
. Надеюсь, это поможет.
Ответ 2
@skuroda прав, я применил код @skuroda с дополнительным плагином, чтобы легко редактировать HTML в файле JS файла AngularJS. Результатом является подсветка синтаксиса HTML в директивном JS файле и дополнительные функции для удаления строковых разделителей при редактировании шаблонов.... Sublime AngularJS HTML Template Plugin