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

Как использовать 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>
4b9b3361

Ответ 1

Это то, что сработало для меня в IntelliJ IDEA 12.

Вот фрагмент JSP с пользовательским тегом (aui:script), который отображает код javascript:

before

Как вы можете видеть, это простой текст, т.е. alt + enter не дает никаких предложений и т.д.

Ниже приведена Инъекция тегов XML, добавленная в Настройки впрыска языка:

setting

Обязательно выберите правильное пространство имен. После этого тот же код выглядит следующим образом (ожидайте небольшую задержку после открытия файла):

after

Он окрашен по-разному и, как видите, код между тегами aui:script знает о контексте javascript, предложения доступны и т.д.

Попробуйте, если это сработает для вас, я не использую его столько, сколько захочу:)