【问题标题】:Why does Eclipse not un-indent braces in JavaScript?为什么 Eclipse 不取消 JavaScript 中的大括号缩进?
【发布时间】:2015-12-23 09:31:49
【问题描述】:

我在 Eclipse 上研究了几个小时的格式设置,但没有找到解决这个问题的方法:

Video of issue

当我在 if、else 或 function 行之后的行上键入左大括号时,会自动添加结尾大括号,但都不符合我的格式规则(即大括号应与 if、else 或函数对齐文本)。

外观:

if (a)
  {
  }

它应该看起来的样子(以及运行格式化程序后的样子):

if (a)
{
}

我会把它归结为 Eclipse 中的一个缺陷,除了一件事:编辑 PHP、Java 或 C++ 代码时,它可以按我的意愿工作;大括号没有适当缩进。

【问题讨论】:

  • 我想这会对你有所帮助stackoverflow.com/a/15170355/4025845
  • 为什么不把{ 放在if(a) 的同一行?
  • 我从小就用c++编码,我使用的编码标准如上图所示。对我来说看起来更好,主要是因为这是我几十年来一直在关注的。

标签: javascript eclipse curly-braces auto-indent autoformatting


【解决方案1】:

这是因为 Javascript 格式完全一样。

if 声明标准:

if (a) {
  // your code
}

如果你使用一个对象数组,例如:

var arr = [
  { prop: 'value', prop2: 5 },
  { prop: 'value', prop2: 5 }
];

它的工作方式与预期完全一致。看看这个Javascript's style guide

【讨论】:

  • Eclipse 允许我以我喜欢的方式设置格式,包括 JavaScript 和所有其他语言。为什么在我明确要求它应用格式之前,它会忽略我的格式偏好以支持某些标准?
【解决方案2】:

这只是因为您编写代码后没有应用格式化程序。方法如下。

  1. 在 Eclipse 上,转到 Window>Preferences
  2. JavaScript>Code Style>Formatter 下,创建一个New Profile
  3. 在创建新配置文件或编辑时,您会看到一个窗口来更改格式样式。转至Braces
  4. 对于Blocks,选择Next Line
  5. 点击OK。确认个人资料并点击OK

现在,在你写下以下内容之后:

if (true)
        {

        }

使用格式化程序为您进行更改,通常通过 Ctrl+Shift+F 或从菜单通过Source>Format .您也可以对选定的代码段应用格式。

更新

完成上述设置后,转到Window>Preferences>JavaScript>Editor>Save Actions,启用Perform the selected actions on saveFormat source code,这将使此操作更好。

【讨论】:

  • 是的,我知道我可以明确告诉 Eclipse 根据我的喜好进行格式化。然而,在所有其他语言中,当我键入大括号时,它们会自动转到正确的位置,而在 JavaScript 中则不会。这是我提出问题的基础。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多