如何在JSP中的自定义标记中使用IntelliJ语言注入

如何在JSP中的自定义标记中使用IntelliJ语言注入,jsp,intellij-idea,Jsp,Intellij Idea,我的公司在JSP中使用自定义标记来包装JavaScript。我无法让IntelliJ将这些标记的内容视为JavaScript。下面是一个简单的标签示例 <ui:script> //Include javascript here... alert('Any code in here is treated as JavaScript'); </ui:script> //在这里包含javascript。。。 警报(“此处的任何代码都被视为JavaScript”);

我的公司在JSP中使用自定义标记来包装JavaScript。我无法让IntelliJ将这些标记的内容视为JavaScript。下面是一个简单的标签示例

<ui:script>
  //Include javascript here...
  alert('Any code in here is treated as JavaScript');
</ui:script>

//在这里包含javascript。。。
警报(“此处的任何代码都被视为JavaScript”);
有什么建议吗?我尝试过使用语言注入,但找不到正确的设置

我刚刚注意到,问题更多地与在
标记中使用JSP特定语言有关。一个更糟糕的例子(注意${selectedReportID}标记破坏了一切):


新卡米诺独立装载机({
资料来源:[
“/static/js/modules/folders/Report.js”
],
onSuccess:函数(){
新卡米诺报道({
id:“${selectedReportID}”,
元素:“内容报告报告列表”
});
}
}).load();

这就是我在IntelliJ IDEA 12中的工作原理

下面是带有自定义标记(
aui:script
)的JSP代码段,它呈现一些javascript代码:

如您所见,它是纯文本,即alt+enter不提供任何建议等

以下是我在语言注入设置中添加的XML标记注入

请确保选择正确的命名空间。在此之后,相同的代码如下所示(打开文件后会有一些小的延迟):

它的颜色不同,正如您所见,
aui:script
标记之间的代码知道javascript上下文,可以提供建议等


如果这对您有效,请尝试一下,我没有像我所希望的那样使用它:)

Alt+Enter,
InjectLanguage
JavaScript
?Igor,谢谢!它对我有用。我发现的唯一问题是IDEA在js代码格式方面存在一些问题-例如,如果我选择代码块并想用tab缩进它,IDEA会用一个空格缩进,而不是用4缩进,因为我设置了JavaScript的代码样式设置。是的,确实有效!对于IntelliJ来说,想法11也是如此。谢谢你,伊戈尔。尽管仍然没有相应的意图操作。注意:要做到这一点,您需要启用IntellijLang插件。默认情况下,它是捆绑和启用的,但是如果像我一样,您已经用所需的插件配置了intellij idea,您可能已经禁用了它。这为我注入了色彩。但不应用缩进。我怎样才能解决它?
<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>