2011-04-28 92 views
4

我知道在哪里更改格式化程序的首选项并更改其中的选项。我无法弄清楚如何让它按照我想要的方式进行格式化,并且如果可能的话,希望得到一些帮助来格式化这种“我的”方式。 :)自定义Eclipse格式化

它目前设置为“Wrap where necessary”,这看起来最接近我想要的。然而,它产生的结果并不是我想要的。 的当前格式的例子看起来像

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); 

并且该格式是全部代码。是的,Tab键被准确地反映为代码中的内容。以前的开发者必须具有不同的设置......看起来这是促使我编写代码的原因。做我的调查和检查显示我的设置(默认)产生第一个片段。如果这代表了所有的代码,我可能会没事的。但自从我开始写作之后,我就继续了。

所以,到我想要的。我想这最终成为

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(不长于行长度。我不希望它分成两行。我该如何改变以纠正这个问题? (人,这是一个很长的帖子的问题那么简单......嘿嘿)

UPDATE: 我试图做//的建议之下,我得到了以下结果

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

这不是100%相关,但是您有没有机会使用SLF4J? – Augusto 2011-04-28 23:03:25

+0

@Augusto:不,Log4j。 – Nija 2011-04-28 23:21:47

回答

1

感谢您的输入。我似乎没有能够完全按照我的想法得到它。似乎并不存在灵活性。

我还有其他几行帮助指导我设置的设置。

对于参数我有裹在必要缩进上列。
对于合格的调用我将它设置为请勿包装

其余的发生率较低。我将它们设置为必要时包装缩进一个。我为这些看到的几个例子,它看起来像我喜欢的方式设置它们。

对于指定的行,我得到的结果与Digitalxero显示的结果相同。如果我像Jean-Philippe Pellet所说的那样使用//,它现在就会如他所示。
我不打算使用//(虽然我喜欢这个建议),因为我不太在乎整个代码分散//的格式。总体而言,这些设置使它达到了一切,它们都倾向于足够接近我想要的地方。

1

不这个问题的完整答案,但是:强制Eclipse格式化程序打破这条线的一个简单方法是假装插入注释。我不时在换行前添加//,Eclipse将不会恢复它,同时按照预期缩进下一行。在第二行

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

也许另一个//需要太,根据您的首选线宽:

所以我想试试这个。

+0

尝试了你的建议,没有为我工作。结果在OP。 – Nija 2011-05-02 22:42:15

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);