Eclipse 通过自动格式化使漂亮的 JSF 代码 (XHTML) 变得不可读
Posted
技术标签:
【中文标题】Eclipse 通过自动格式化使漂亮的 JSF 代码 (XHTML) 变得不可读【英文标题】:Eclipse is making nice looking JSF code (XHTML) unreadable by autoformating 【发布时间】:2012-11-01 19:35:11 【问题描述】:我遇到的问题是,如果我在 Eclipse 中使用 CTRL + SHIFT + f 键自动格式化 Xhtml 文件 (JSF 1.2),输出看起来很糟糕,不再可读。
我的格式化代码:
<span class="label viertel alignright">
<h:outputLabel for="itLine5" value="E-Mail:" />
</span>
变成这样:
<span class="label viertel alignright"> <h:outputLabel
for="itLine5" value="E-Mail:" /> </span>
在这个小例子中,它仍然是可读的 - 但在更长的代码中它只是混乱!
如何确保我的 XHTML 代码以可读的方式格式化?
我使用这个版本的 Eclipse Helios:
面向 Web 开发人员的 Eclipse Java EE IDE。 版本:Helios Service Release 1 - Build id:20100917-0705我使用这些 JBoss 工具:
JBoss Archies 工具 3.2.0 JBoss 工具 RichFaces 3.2.1 JBossASTools 2.2.0 休眠工具 3.40.0 JBoss Seam 工具:3.2.1【问题讨论】:
好问题,如果有人对此有答案,我会很高兴。 :) 我倾向于不自动格式化我的 xhtml 代码。 我确信有一个很酷的 checkstyle 模板,我希望有人得到一个! 我希望赏金能帮助解决这个问题! 对于 Helios,您是否安装了任何插件来帮助您创建和使用 JSF 项目和 xhtml? 我下载了您的 Eclipse 版本,并尝试下载相同版本的 Jboss Tools,但没有成功。尝试了市场和老式更新站点。抱歉,我要放弃了。 【参考方案1】:我认为我有一个运行良好的解决方案(Eclipse Juno)。许多标签/元素被指定为内联导致奇怪的格式。 <span>
例如在该列表中。您可以尝试删除内联元素列表(不用担心,您始终可以选择“恢复默认值”)。当您使用它时,将宽度更改为比默认值更有用的值(在我的情况下为 72)。首选项位于 Window > Preferences > Web > HTML Files > Editor:
我删除了列表中的所有内联元素并格式化了一个大的 xhtml 文件,结果很好。我将线宽设置为 120,这是我用于 Java 的。当然,此更改也会影响常规 HTML 文件。
根据您的示例,此代码:
<span class="label viertel alignright"> <h:outputLabel
for="itLine5" value="E-Mail:" />
</span>
被格式化为:
<span class="label viertel alignright">
<h:outputLabel for="itLine5" value="E-Mail:" />
</span>
这对你来说足够了吗?
【讨论】:
这听起来不错,但我在 Helios 中找不到这一点,所以它并不能真正帮助我解决问题。 真可惜...升级到 Juno? :) 最后,我们进行了更新......你的伎俩完美,你应该得到赏金,谢谢!!!! 很高兴听到。也谢谢你!【参考方案2】:我不使用 CTRL + SHIFT + F 来格式化代码,而只使用 CTRL + I 缩进。这个功能只有在页面的所有代码都被选中的情况下才能正常工作,所以我使用 CTRL+A 来选择所有和 CTRL+I 缩进。
indent 函数保留换行符并且只缩进代码。我正在使用 Juno,希望这也适用于 Helios!
【讨论】:
hmmm 这没什么用,如果代码已经从我的CTRL + SHIFT + f
损坏了;) 如果我有一个新的 xhtml 文件,它看起来会更好,但也有一些不好的副作用在让它看起来很糟糕的标签上。
是的,你是对的。当标签不为空时,会有一些不好的副作用。我只是在编写 xhtml 时将其用作快速修复。以上是关于Eclipse 通过自动格式化使漂亮的 JSF 代码 (XHTML) 变得不可读的主要内容,如果未能解决你的问题,请参考以下文章
JSF 2.2 h:inputFile 不适用于漂亮的面孔[重复]