当jspx文件长度为#34;时,IntelliJ Idea不会重新格式化jspx文件。

时间:2013-09-16 14:27:38

标签: intellij-idea

我在Intellij Idea中发现了一个奇怪的行为。在一个包含大约300行的复杂jspx页面中,intellij idea无法再正确格式化代码。

编辑:仅当页面保存为.jspx时才会出现此问题。如果我将其保存为.xml,问题就会消失。

例如此页:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns="http://www.w3.org/1999/xhtml"
      xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
      xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:my="http://java.sun.com/jsf/composite/mycomponents"
    >
<ui:composition>
<f:view>
<p:panel header="XXX">
<p:outputLabel value="YYY"/>
</p:panel>
</f:view>
</ui:composition>
</jsp:root>

当我按下Ctrl + Alt + L时,我得到正确的输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns="http://www.w3.org/1999/xhtml"
      xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
      xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:my="http://java.sun.com/jsf/composite/mycomponents"
    >

<ui:composition>
    <f:view>
        <p:panel header="XXX">
            <p:outputLabel value="YYY"/>
        </p:panel>
    </f:view>
</ui:composition>
</jsp:root>

但是,当我将<p:outputLabel value="YYY"/>粘贴到页面中大约300次时,自动装配会停止工作。

在更复杂的示例中,只有部分代码被格式化(例如p:panel内的所有内容都已格式化,但ui:compositionf:view保持在同一位置(无缩进) 。

我没有找到任何有用的配置。有没有办法摆脱这种行为?

我使用Intellij Idea 12 Ultimate

2 个答案:

答案 0 :(得分:2)

更新:该错误的解决方法是设置Code Style | HTML | Other | Do not indent children if tag size more than 200 lines

错误可能是tracked here

这似乎是一个错误,reported here,请投票。

答案 1 :(得分:0)

在想法中有这种行为的设置:

请调整设置:CodeStyle | HTML |其他|如果标签大小超过&lt; 200&gt;,请不要缩进儿童。线

https://youtrack.jetbrains.com/issue/IDEA-113688