自定义 Eclipse 格式化

4
我知道在哪里更改格式化器的偏好设置并更改选项。但我无法弄清如何按照我的要求进行格式化,如果可能的话,希望得到一些帮助来按照“我的”方式进行格式化。目前它设置为“必要时换行”,这似乎是我想要的最接近的方式。然而,它产生的结果并不完全符合我的要求。当前格式的示例类似于:
LOG.error(
    String.format(
        "Creating JSON Object from event array @ line number %d failed",
        key.get()), e);

这比原来的好多了。我重新格式化了这段代码。以前它看起来像是

        LOG
                .error(
                        String
                                .format(
                                        "Creating JSON Object from event array @ line number %d failed",
                                        key.get()), e);

这种格式化在代码中随处可见。是的,缩进准确地反映了代码中的情况。之前的开发人员可能有不同的设置...看起来就是这促使我编写代码的原因。我的调查和检查显示我的设置(默认)可以生成第一个片段。如果所有代码都是这样的话,我可能会没问题。但自从我开始写以来,我只是继续下去。

所以,接下来我想要的是什么。我希望最终结果如下:

LOG.error(String.format(
        "Creating JSON Object from event array @ line number %d failed",
        key.get()), e);

由于字符串超过了行长度,因此string被分开,而由于key.get...超出了行长度,所以它也被分开了。 字符串本身(如定位)超过了行长度,这就是为什么key.get...要换行的原因。

我对处理这个问题的eclipse设置不够熟悉(今天通过谷歌发现了它们),随意更改希望找到我要找的内容并不是一个吸引人的选择。

显然,组件的长度会影响结果,起始空格也会影响结果。
在两个格式化操作示例中,LOG.error(String.Format(没有超过行长度。 我不想将其拆分成两行。 我应该如何更正呢?(嘿嘿,那是一个简单问题的很长的帖子...)

更新: 我尝试按照下面建议的使用//,结果如下:

LOG.error(
        String.format(
                //
                "Creating JSON Object from event array @ line number %d failed",
                key.get()), e);

这与100%相关度不高,但你是否碰巧在使用SLF4J? - Augusto
3个回答

1

虽然不是完整的答案,但是有一个简单的方法可以强制Eclipse格式化程序换行,那就是假装插入一个注释。我会在需要时在换行前添加//,这样Eclipse就不会撤销它,同时按预期缩进下一行。

所以我建议尝试这个方法:

LOG.error(String.format( //
        "Creating JSON Object from event array @ line number %d failed",
        key.get()), e);

根据您喜欢的行宽,第二行可能也需要另一个//


1

感谢您的输入。看起来我可能无法完全按照自己的意愿进行设置,灵活性好像不太够。

我有几个其他的设置行,它们帮助指导了我最终选择的设置。

对于参数,我选择了必要时换行缩进到列
对于限定调用,我将其设置为不换行

其余的情况较少发生。我将它们设置为必要时换行缩进一格。我查看了这些情况中的少数实例,它们看起来是按照我喜欢的方式设置的。

对于指定的行,我得到的结果与Digitalxero显示的相同。如果我使用Jean-Philippe Pellet提到的//,它现在会按照他所示的方式执行。
虽然我喜欢这个建议,但我不会使用//,因为我不太关心格式,不想在代码中散布//

总的来说,这些设置使得所有东西都趋近于我想要的状态。


0

你需要编辑缩进以使制表符大小为4

在换行选项卡中

  • 将换行后的默认缩进设置为1
  • 在函数调用下,应该是
    • 必要时换行(5/5)
    • 在列上缩进(5/5)

我从Java约定[内置]开始,并只进行了这些更改,结果如此。

 LOG.error(String.format("Creating JSON Object from event array @ line number %d failed",key.get()), e);

进入

LOG.error(String.format("Creating JSON Object from event array @ line number %d failed",
                        key.get()), e);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接