Как использовать IntelliJ Language Injection в пользовательском теге в JSP
Моя компания использует собственные теги в наших JSP для упаковки JavaScript. Я не могу заставить IntelliJ обрабатывать содержимое этих тегов как JavaScript. Вот простой пример того, как выглядит наш тег.
<ui:script>
//Include javascript here...
alert('Any code in here is treated as JavaScript');
</ui:script>
Любые предложения? Я пробовал использовать языковые инъекции, но я не могу найти нужные настройки.
Я только заметил, что проблема связана скорее с использованием JSP-специфического языка в теге <ui:script>
. Пример более неприятный (обратите внимание на тег ${selectedReportID}, который разбивает все):
<ui:script>
new Kamino.DependencyLoader({
source: [
'/static/js/modules/folders/Report.js'
],
onSuccess: function () {
new Kamino.Report({
id: '${selectedReportID}',
element: 'content-reporting-report-list'
});
}
}).load();
</ui:script>
Ответы
Ответ 1
Это то, что сработало для меня в IntelliJ IDEA 12.
Вот фрагмент JSP с пользовательским тегом (aui:script
), который отображает код javascript:
![before]()
Как вы можете видеть, это простой текст, т.е. alt + enter не дает никаких предложений и т.д.
Ниже приведена Инъекция тегов XML, добавленная в Настройки впрыска языка:
![setting]()
Обязательно выберите правильное пространство имен. После этого тот же код выглядит следующим образом (ожидайте небольшую задержку после открытия файла):
![after]()
Он окрашен по-разному и, как видите, код между тегами aui:script
знает о контексте javascript, предложения доступны и т.д.
Попробуйте, если это сработает для вас, я не использую его столько, сколько захочу:)