我很难让我的 JavaScript 很好地格式化日食。在第一个示例中,它的行为符合预期(不是第二个 url 的长度):
每当我有一个较长的 url 时,eclipse 就会疯狂地格式化我的代码,并且到处都有额外的填充,如下例所示:
为什么 JavaScript 格式化程序会有这样的行为,我该如何解决?
(以防万一:我没有安装任何格式化插件,我只是使用 Eclipse Juno 自带的默认插件)
我很难让我的 JavaScript 很好地格式化日食。在第一个示例中,它的行为符合预期(不是第二个 url 的长度):
每当我有一个较长的 url 时,eclipse 就会疯狂地格式化我的代码,并且到处都有额外的填充,如下例所示:
为什么 JavaScript 格式化程序会有这样的行为,我该如何解决?
(以防万一:我没有安装任何格式化插件,我只是使用 Eclipse Juno 自带的默认插件)
该问题可以通过访问解决
Preferences > JavaScript > Code Style > Formatter
这些是步骤:
Edit...
。Line Wrapping
选项卡。Maximum line width
字段中,输入9999。Apply
和Ok
。对于超过 9999 个字符的代码行,问题再次出现,但我可以忍受。
示例中的长 url 会影响 "$.ajax(..." 和 "$(function()..."。
至于“$(function()...”,设置在 Preferences/JavaScript/Code Style/Formatter/Line Wrapping/Function Calls/Arguments. 'Do not wrap' 可用。
至于“$.ajax(...”,它类似于 Java 格式化程序中的“合格调用”。(Preferences/Java/Code Style/Formatter/Line Wrapping/Function Calls) 不幸的是,JSDT 没有这方面的 UI。 (首选项/JavaScript/代码样式/格式化程序/换行/函数调用)
这是 JSDT 1.4.1(WTP R3.4.1) 的一个技巧。
workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.jsdt.core.prefs
org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation=16
(因为你有自己的个人资料,也许 1-5 是不必要的)
当您在首选项中编辑格式化程序设置时,此 hack 将被恢复。- (为防止覆盖,您需要做的就是导出格式化程序配置文件,编辑 XML 并将 'org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation' 更改为 0。现在再次保存并重新导入。此更改是永恒的。
我认为这不能满足您的需求,我猜最好使用其他格式化程序(第 3 方插件)。
我找到了一个临时解决方案:
去
Window -> Preferences -> JavaScript -> Code Style -> Formatter
将活动配置文件设置为 JavaScript 约定。
点击Edit
在Indentation
选项卡中,设置Tab policy
为Spaces only。
将Indentation size
和都设置Tab size
为3。
由于您无法覆盖默认配置文件,请更改配置文件名称并保存。
按Ctrl+ Shift+F并享受。
注意:我不喜欢有 3 个空格,我更喜欢我的旧 4 个空格,但这是一个临时解决方案,直到有人找到更好的方法来解决这个问题。我只是想分享。
这是我发现的:在“换行>函数调用”中,将底部的“缩进策略”设置为“缩进一个”。这会创建没有过多空格(或制表符)的缩进。我没有用你的确切代码尝试过,但我也看到过类似的问题。