Stop eclipse from line wrapping?

2019-01-21 23:01发布

问题:

Is there a way to get eclipse to stop erasing existing line breaks? If I have a method signature like this, I can't figure out how to get eclipse to leave it alone:

void foo(
    int arg1,
    int arg2,
    int arg3,
    int arg4)
{
    // ...
}

With various settings it will either collapse the arguments down to one line, or wrap them at some margin like this:

void foo(
    int arg1, int arg2,
    int arg3, int arg4)
{
    // ...
}

With "Wrap all elements, every element on a new line" it does preserve this whitespace, but it will ALWAYS wrap, which isn't what I want. I'd like eclipse to apply formatting for indentation and braces and such, just without ever deleting (or inserting) any line breaks.

回答1:

The formatting of arguments is an old subject, but the one new formatting feature introduced in 3.5 is:

  • eclipse3.5M4 "Formatter option to preserve user line breaks"

The Java code formatter can now optionally preserve user line breaks by not joining lines in code or comments.

For example, the wrapped lines of the return statement in following test case:


Example of Code to Format

will be preserved by the formatter when the "Never Join Lines" preference is used, and now produces the following result:


Coded Formatted with Never Join Lines

This preference can be configured on the Java > Code Style > Formatter preference page. See the Never join lines option on the Line Wrapping and Comments tab.

That may help, but otherwise there is not much new features on that front in 3.5.



回答2:

When I used the 'format' feature in Eclipse on my Java code, it tended split or break my lines of code in various places to make sure the content would always fit to a certain width. I found this to be less than optimal if you have a wide monitor. I worked around this issue by doing the following:

In eclipse 3.5, you can open preferences and search for "Format" or select Java->Code Style->Formatter from the left menu. The default profile is called "Eclipse [built-in]" and if you want to make changes to the Java Formatter you will need to copy it and create your own profile. This can be done with the "New" button right below the profile name.

Once you have created your own Java Formatter in eclipse, make sure it's selected and hit the edit button. There a lot of features in here you can customize, but to fix the wrapping issue I selected the "Line Wrapping" tab. Under general settings you will see "Maximum line width:". This numerical value is the max line length the formatter will work with. I bumped my up to a more reasonable size for larger monitors such as 180 characters. Save and apply that and return to your code.

When you next try to format a java file, the line wrapping should only happen if you are above the new max size.

Happy Coding!



回答3:

You can use comments to trick the formatter.

void foo( //
  int arg1, //
  int arg2, //
  int arg3, //
  int arg4)

will preserve the line breaks at the comments.



回答4:

Eclipse 3.5 supports this. (It hit release candidate a a few days ago, so could be worth checking out)