Подтвердить что ты не робот

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?

4b9b3361

Ответ 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