How to make Eclipse align the ?: ternary operator?
Asked Answered
B

1

10

I need the exact same effect as in this question but in Eclipse.

It should only do the alignment if I explcitly insert a new line before the ":" or if the second operand (the "true" expression) is too long.

Example:

a = cond ? "a veeeeeeeeeeeeeeeery loooooooooooooooooooooooooooong string"
         : "";
      // ^ put the colon here
Bunde answered 8/11, 2011 at 1:30 Comment(2)
Did you browse through all formatting options? Eclipse > Settings and search for formatter.Terrence
I went through all the sections that I think were related and there's no such option.Bunde
O
10

This original answer was for Galileo which is well over a decade ago, so I'm updating it to be a little more current. Original answer remains below.

For Eclipse 2021-12 (under Window though I hope it would be the same across platforms):

  1. Go into Project, Properties on the menu.
  2. Under Java Code Style, choose Formatter.
  3. For the current project only, enable project-specific settings. For workspace settings, simply click on the Configure workspace settings. Then click the edit button.
  4. In the selection pane, under Line Wrapping, Wrapping settings, Other expressions, there is a Conditionals item that you can edit.

The options you want are:

  • wrap before operators;
  • wrap where necessary;
  • no force split; and
  • indent on column.

They give this as an example:

enter image description here



This is the dated answer for Galileo:

  1. Go into Project, Properties.
  2. Under Java Code Style, choose Formatter.
  3. For the current project only, enable project-specific settings. For workspace settings, simply click on the Configure workspace settings. Then click the edit button.
  4. On the line-wrapping tab, choose Expressions, Conditionals.
  5. Choose the relevant line wrapping policy and indentation policy.

I have "wrap only when necessary" and "indent on column" which appears to be close to what you want.

If you're not running Galileo, other versions of Eclipse should at least be close to that process. If my settings aren't quite what you want, you may need to fiddle with them a bit, but that Formatter section is pretty well the entire exposed interface so, if it can't be done with that, it can't be done (short of writing your own plug-in or finding a more configurable third-party one).

Osage answered 8/11, 2011 at 1:54 Comment(3)
So this setting is really hard to find... I thought it should be under other sections...Bunde
@billc.cn: yes, the trouble with an infinitely configurable product is that it takes an eternity to learn it :-)Osage
The trick is that Eclipse calls the ternary operator the conditional operator. Thanks for the tip!Bonds

© 2022 - 2024 — McMap. All rights reserved.