update author list in license for (JAL-826)
[jalview.git] / utils / jalopy / docs / indentation.html
index 62e881d..b32a071 100755 (executable)
@@ -1,7 +1,7 @@
 
 <!--
  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
  * 
  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
 -->
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+  <html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>4.3.3.&nbsp;Indentation</title><link rel="stylesheet" href="site.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="manual.html" title="Jalopy User Manual"><link rel="up" href="printer.html" title="4.3.&nbsp;Printer"><link rel="previous" href="whitespace.html" title="4.3.2.&nbsp;White Space"><link rel="next" href="wrapping.html" title="4.3.4.&nbsp;Wrapping"><link rel="preface" href="dedication.html" title="Dedication"><link rel="preface" href="acknowledge.html" title="Acknowledgements"><link rel="preface" href="introduction.html" title="Introduction"><link rel="part" href="part-core.html" title="Part&nbsp;I.&nbsp;Jalopy core"><link rel="chapter" href="installation.html" title="Chapter&nbsp;1.&nbsp;Installation"><link rel="chapter" href="build.html" title="Chapter&nbsp;2.&nbsp;Building"><link rel="chapter" href="usage.html" title="Chapter&nbsp;3.&nbsp;Usage"><link rel="chapter" href="settings.html" title="Chapter&nbsp;4.&nbsp;Settings"><link rel="part" href="part-plugins.html" title="Part&nbsp;II.&nbsp;Plug-ins"><link rel="chapter" href="plugin-ant.html" title="Chapter&nbsp;5.&nbsp;Ant Plug-in task"><link rel="chapter" href="plugin-console.html" title="Chapter&nbsp;6.&nbsp;Console Application"><link rel="chapter" href="plugin-eclipse.html" title="Chapter&nbsp;7.&nbsp;Eclipse Plug-in"><link rel="chapter" href="plugin-jbuilder.html" title="Chapter&nbsp;8.&nbsp;JBuilder OpenTool"><link rel="chapter" href="plugin-jdev.html" title="Chapter&nbsp;9.&nbsp;JDeveloper Extension"><link rel="chapter" href="plugin-jedit.html" title="Chapter&nbsp;10.&nbsp;jEdit Plug-in"><link rel="chapter" href="plugin-netbeans.html" title="Chapter&nbsp;11.&nbsp;NetBeans/Sun ONE Studio module"><link rel="appendix" href="dependencies.html" title="Appendix&nbsp;A.&nbsp;Library Dependencies"><link rel="appendix" href="license-bsd.html" title="Appendix&nbsp;B.&nbsp;The Jalopy BSD License"><link rel="appendix" href="license-antlr.html" title="Appendix&nbsp;C.&nbsp;ANTLR SOFTWARE RIGHTS"><link rel="appendix" href="license-apache.html" title="Appendix&nbsp;D.&nbsp;The Apache Software License, Version 1.1"><link rel="appendix" href="license-gnu.html" title="Appendix&nbsp;E.&nbsp;GNU GENERAL PUBLIC LICENSE Version 2, June 1991"><link rel="appendix" href="license-gnu-doc.html" title="Appendix&nbsp;F.&nbsp;GNU Free Documentation License Version 1.1, March 2000"><link rel="appendix" href="license-common-public.html" title="Appendix&nbsp;G.&nbsp;Common Public License Version 1.0"><link rel="appendix" href="license-sun-public.html" title="Appendix&nbsp;H.&nbsp;SUN PUBLIC LICENSE Version 1.0"><link rel="index" href="ix01.html" title="Index"><link rel="subsection" href="indentation.html#indentation-general" title="4.3.3.1.&nbsp;General"><link rel="subsection" href="indentation.html#indentation-misc" title="4.3.3.2.&nbsp;Misc"><link rel="subsection" href="indentation.html#indentation-align" title="4.3.3.3.&nbsp;Align"><link rel="subsection" href="indentation.html#indentation-continuation" title="4.3.3.4.&nbsp;Continuation">
+      <meta name="description" content="Jalopy Java Source Code Formatter Beautifier Pretty Printer"> 
+      <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" l gen true for "http://jalopy.sf.net" r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://jalopy.sf.net" r (n 0 s 0 v 0 l 0))'> 
+    </head><body id="toppage" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table width="700" border="0" cellpadding="0" cellspacing="0" align="left"><tbody><tr><td><table cellpadding="0" cellspacing="0" width="100%" style="border:1px solid #336699"><tbody><tr><td height="16"></td></tr><tr><td bgcolor="#3399cc" height="1"></td></tr><tr style="border:none"><td style="border:none"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="logo">JALOPY</td><td class="sublogo" valign="bottom">Java Source Code Formatter Beautifier Pretty Printer</td></tr></tbody></table></td></tr><tr><td bgcolor="#3399cc" height="1"></td></tr><tr><td height="10"></td></tr><tr><td bgcolor="#ff8000" height="4"></td></tr><tr><td height="20" bgcolor="#336699" style="color:#ffffff;padding-left:10px"><a href="./index.html" class="navlink">Overview</a> &#149;
+                    <a href="./download.html" class="navlink">Download</a> &#149;
+                    <a href="./docs.html" class="navlink">Documentation</a> &#149;
+                    <a href="./plugins.html" class="navlink">Plug-ins</a> &#149;
+                    <a href="./links.html" class="navlink">Links</a> &#149;
+                    <a href="./contact.html" class="navlink">Contact</a></td></tr><tr><td height="1" bgcolor="#ffffff"></td></tr></tbody></table></td></tr><tr valign="top"><td valign="top" bgcolor="#ffffff"><table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td height="20" bgcolor="#faebd7" style="padding-left:15px"><a href="./features.html" class="navlink2">Features</a> |
+                    <a href="./history.html" class="navlink2">History</a> |
+                    <a href="./manual.html" class="navlink2">Manual</a> |
+                    <a href="./faq.html" class="navlink2">FAQ</a> |
+                    <a href="./api/index.html" class="navlink2">Javadoc</a></td></tr><tr><td height="20" bgcolor="#ffffff"></td></tr><tr><td bgcolor="#eeeecc" height="17" align="right" style="font-size:10px;padding-right:3px">
+                    This page generated: <strong>June 8 2004</strong></td></tr></tbody></table><table border="0" width="100%" cellspacing="0" cellpadding="5"><tr><td><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.3.3.&nbsp;Indentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="whitespace.html">Prev</a>&nbsp;</td><th width="60%" align="center">4.3.&nbsp;Printer</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="wrapping.html">Next</a></td></tr></table><hr></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="indentation"></a>4.3.3.&nbsp;Indentation</h3></div></div><div></div></div><p>
+Controls the indentation settings.
+<a class="indexterm" name="d0e2107"></a>
+</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="indentation-general"></a>4.3.3.1.&nbsp;General</h4></div></div><div></div></div><p>Lets you change the general indentation settings.</p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="indentation-policy"></a>4.3.3.1.1.&nbsp;Policy</h5></div></div><div></div></div><p>
+Lets you choose the way lines should be indented.
+</p><div class="itemizedlist"><ul type="disc"><li><p><a name="indentation-policy-standard"></a>
+Standard indent
+</p><p>
+With standard indentation, lines will be indented according to the
+current indentation level (Note that the indentation level changes as the block
+or parentheses level changes).
+</p><div class="example"><a name="indentation-method-decl-standard"></a><p class="title"><b>Example&nbsp;4.30.&nbsp;Method declaration (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+public void severalParameters(String one, int two, String three,
+    StringObject four, AnotherObject five) {
+...
+}
+</pre></td></tr></table></div><p></p><div class="example"><a name="indentation-method-call-standard"></a><p class="title"><b>Example&nbsp;4.31.&nbsp;Method Call (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+vector.add(new AppServerReference(
+        "RemoteApplicationManager",
+        poa.create_reference_with_id("RemoteApplicationManager".getBytes(),
+            RemoteApplicationManagerHelper.id())));
+</pre></td></tr></table></div><p></p><div class="example"><a name="indentation-assign-standard"></a><p class="title"><b>Example&nbsp;4.32.&nbsp;Assignment (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+doublette[InteressentenPflegeController.GEBURTSDATUM] = versichertenResultSetRow[i].field[0]
+    .substring(0, 2) + "."
+    + versichertenResultSetRow[i].field[0].substring(2, 4) + "."
+    + versichertenResultSetRow[i].field[0].substring(4, 6);
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-policy-deep"></a>
+Deep indent
+</p><p>
+Deep indentation means that lines will be indented relative to the current
+parentheses or assignment offset. This way consecutive code sections are somewhat easier
+to recognize at the downside of consuming more horizontal space.
+</p><div class="example"><a name="indentation-method-decl-deep"></a><p class="title"><b>Example&nbsp;4.33.&nbsp;Method declaration (deep indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+public void severalParameters(String one, int two, String three,
+                              StringObject four, AnotherObject five) {
+    ...
+}
+</pre></td></tr></table></div><p></p><div class="example"><a name="indentation-method-call-deep"></a><p class="title"><b>Example&nbsp;4.34.&nbsp;Method Call (deep indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+this.add(lbPunktzahl,
+         new GridBagLayout(0, 1, 2, 1, 0.0, 0.0,
+                           GribBagConstraints.WEST,
+                           GribBagConstraints.NONE,
+                           new Insets(0, GribBagConstraints.WEST,
+                                      GribBagConstraints.WEST,
+                                      GribBagConstraints.WEST), 0, 0));
+</pre></td></tr></table></div><p></p><div class="example"><a name="indentation-assign-deep"></a><p class="title"><b>Example&nbsp;4.35.&nbsp;Assignment (deep indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+doublette[Controller.GEBURTSDATUM] = versichertenResultSetRow[i].field[0]
+                                     .substring(0, 2) + "."
+                                     + versichertenResultSetRow[i].field[0]
+                                       .substring(2, 4)
+                                     + "."
+                                     + versichertenResultSetRow[i].field[0]
+                                       .substring(4, 6);
+</pre></td></tr></table></div><p></p></li></ul></div></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="indentation-sizes"></a>4.3.3.1.2.&nbsp;Sizes</h5></div></div><div></div></div><a class="indexterm" name="d0e2171"></a><p>
+Lets you set different indentation sizes.
+</p><div class="itemizedlist"><p></p><ul type="disc"><li><p><a name="indentation-sizes-general"></a>
+General indent
+<a class="indexterm" name="d0e2182"></a>
+</p><p>
+Specifies the number of spaces to use for general indentation (Studies have
+found that 2 to 4 spaces for indentation is optimal)
+</p><div class="example"><a name="ex-indentation-two-space"></a><p class="title"><b>Example&nbsp;4.36.&nbsp;2 space general indent</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+public class Preferences
+{
+-&gt;private Preferences()
+-&gt;{
+-&gt;}
+
+-&gt;public static void main(String[] argv)
+-&gt;{
+-&gt;-&gt;de.hunsicker.jalopy.swing.PreferencesDialog.main(argv);
+-&gt;}
+}
+</pre></td></tr></table></div><p></p><div class="example"><a name="ex-indentation-four-space"></a><p class="title"><b>Example&nbsp;4.37.&nbsp;4 space general indent</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+public class Preferences
+{
+---&gt;private Preferences()
+---&gt;{
+---&gt;}
+
+---&gt;public static void main(String[] argv)
+---&gt;{
+---&gt;---&gt;de.hunsicker.jalopy.swing.PreferencesDialog.main(argv);
+---&gt;}
+}
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-leading"></a>
+Leading indent
+<a class="indexterm" name="d0e2207"></a>
+</p><p>
+Specifies the number of spaces to prepend before every line printed.
+</p><div class="example"><a name="ex-indentation-six-leading"></a><p class="title"><b>Example&nbsp;4.38.&nbsp;6 space leading indent</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+-----&gt;public class Preferences
+-----&gt;{
+-----&gt;    private Preferences()
+-----&gt;    {
+-----&gt;    }
+
+-----&gt;    public static void main(String[] argv)
+-----&gt;    {
+-----&gt;        de.hunsicker.jalopy.swing.PreferencesDialog.main(argv);
+-----&gt;    }
+-----&gt;}
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-continuation"></a>
+Continuation indent
+<a class="indexterm" name="d0e2226"></a>
+</p><p>
+Specifies the number of spaces that should be inserted in front of
+continuation lines, i.e. the consecutive lines in case of a line wrap.
+</p><div class="example"><a name="ex-indentation-two-continuation"></a><p class="title"><b>Example&nbsp;4.39.&nbsp;2 space continuation indent</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+if ((condition1 &amp;&amp; condition2)
+    -&gt;|| (condition3 &amp;&amp; condition4)
+    -&gt;|| !(condition5 &amp;&amp; condition6)) {
+    doSomethingAboutIt();
+}
+</pre></td></tr></table></div><p></p><div class="example"><a name="ex-indentation-four-continuation"></a><p class="title"><b>Example&nbsp;4.40.&nbsp;4 space continuation indent</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+if ((condition1 &amp;&amp; condition2)
+    ---&gt;|| (condition3 &amp;&amp; condition4)
+    ---&gt;|| !(condition5 &amp;&amp; condition6)) {
+    doSomethingAboutIt();
+}
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-trailing"></a>
+Trailing comment indent
+<a class="indexterm" name="d0e2251"></a>
+<a class="indexterm" name="d0e2259"></a>
+<a class="indexterm" name="d0e2265"></a>
+</p><p>
+Specifies the number of spaces to insert between trailing comments and the
+preceding statement.
+</p><div class="example"><a name="ex-indentation-three-trailing"></a><p class="title"><b>Example&nbsp;4.41.&nbsp;3 space trailing comment indent</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+new String[] {
+    "Sunday",--&gt;// Sunday
+    "Monday",--&gt;// Monday
+    "Tuesday",--&gt;// Tuesday
+    "Wednesday",--&gt;// Wednesday
+    "Thursday",--&gt;// Thursday
+    "Friday",--&gt;// Friday
+    "Saturday"--&gt;// Saturday
+}
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-tab"></a>
+Original Tab indent
+</p><p>
+Specifies the original tabular size of the source code. Some indentations
+or alignments may fail, if you miss the correct size here.
+<a class="indexterm" name="d0e2282"></a>
+<a class="indexterm" name="d0e2288"></a>
+</p></li><li><p><a name="indentation-sizes-extends"></a>
+Extends indent
+</p><p>
+If enabled, specifies the whitespace to print before the <tt class="classname">extends</tt>
+keyword in case it was printed on a new line.
+</p><a class="indexterm" name="d0e2304"></a><div class="example"><a name="d0e2311"></a><p class="title"><b>Example&nbsp;4.42.&nbsp;extends indentation with 6 spaces</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+public interface Channel
+------&gt;extends Puttable, Takable
+{
+    ...
+}
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-implements"></a>
+Implements indent
+</p><p>
+Specifies the whitespace to print before the <tt class="classname">implements</tt>
+keyword in case it was printed on a new line.
+</p><a class="indexterm" name="d0e2325"></a><div class="example"><a name="d0e2332"></a><p class="title"><b>Example&nbsp;4.43.&nbsp;implements indentation with 8 spaces</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+public class SynchronizedBoolean
+-------&gt;implements Comparable, Cloneable
+{
+    ...
+}
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-throws"></a>
+Throws indent
+</p><p>
+Specifies the whitespace to print before the <tt class="classname">throws</tt>
+keyword in case it was printed on a new line.
+<a class="indexterm" name="d0e2346"></a>
+</p><div class="example"><a name="d0e2354"></a><p class="title"><b>Example&nbsp;4.44.&nbsp;throws indentation with 3 spaces</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+private static final File getDestinationFile(File dest, String packageName,
+                                             String filename)
+--&gt;throws IOException, FooException
+{
+    ...
+}
+</pre></td></tr></table></div><p></p></li></ul></div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="indentation-misc"></a>4.3.3.2.&nbsp;Misc</h4></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a name="indentation-misc-tab"></a>
+Use tabs to indent
+<a class="indexterm" name="d0e2369"></a>
+</p><p>
+Normally, Jalopy uses spaces to indent lines. If you prefer tabs, check this box.
+</p></li><li><p>
+Indent "case" from "switch"
+</p><p>
+The Sun Java code convention recommends a switch style where case statements
+are not indented relative to the switch statement as a whole. However, this
+option allows you to indent the case statements to make the entire switch
+statement stand out.
+</p><div class="example"><a name="ex-indentation-misch-switch-un"></a><p class="title"><b>Example&nbsp;4.45.&nbsp;Switch statement (unindented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+switch (prio)
+{
+case Priority.ERROR_INT :
+case Priority.FATAL_INT :
+    color = Color.red;
+    break;
+
+case Priority.WARN_INT :
+    color = Color.blue;
+    break;
+
+default:
+    color = Color.black;
+    break;
+}
+</pre></td></tr></table></div><p></p><div class="example"><a name="ex-indentation-misc-switch"></a><p class="title"><b>Example&nbsp;4.46.&nbsp;Switch statement (indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+switch (prio)
+{
+---&gt;case Priority.ERROR_INT :
+---&gt;case Priority.FATAL_INT :
+---&gt;    color = Color.red;
+---&gt;    break;
+
+---&gt;case Priority.WARN_INT :
+---&gt;    color = Color.blue;
+---&gt;    break;
+
+---&gt;default:
+---&gt;    color = Color.black;
+---&gt;    break;
+}
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-misc-label"></a>
+Indent labels
+<a class="indexterm" name="d0e2397"></a>
+</p><p>
+Specifies whether lables should be indented with the current indentation level.
+</p><div class="example"><a name="ex-indentation-misc-label-unindent"></a><p class="title"><b>Example&nbsp;4.47.&nbsp;Unindented label</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+// advance to the first CLASS_DEF or INTERFACE_DEF
+<span class="bold"><b>LOOP</b></span>:
+        for (AST child = tree.getFirstChild();
+             child != null;
+             child = child.getNextSibling())
+        {
+            switch (child.getType())
+            {
+                case JavaTokenTypes.CLASS_DEF :
+                case JavaTokenTypes.INTERFACE_DEF :
+                    next = child;
+                    break LOOP;
+                default :
+                    break;
+            }
+        }
+</pre></td></tr></table></div><p></p><div class="example"><a name="ex-indentation-misc-label"></a><p class="title"><b>Example&nbsp;4.48.&nbsp;Indented label</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+        // advance to the first CLASS_DEF or INTERFACE_DEF
+        <span class="bold"><b>LOOP</b></span>:
+        for (AST child = tree.getFirstChild();
+             child != null;
+             child = child.getNextSibling())
+        {
+            switch (child.getType()) {
+                case JavaTokenTypes.CLASS_DEF :
+                case JavaTokenTypes.INTERFACE_DEF :
+                    next = child;
+                    break LOOP;
+
+                default :
+                    break;
+            }
+        }
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-misc-first-column"></a>
+Indent first column comments
+</p><p>
+Normally, all comments will be indented relative to their position in the code
+to avoid that comments break the logical structure of the program. Some
+developers may like to disable the indentation for first column comments
+during the developing phase.
+</p><div class="example"><a name="ex-indentation-misc-first-column"></a><p class="title"><b>Example&nbsp;4.49.&nbsp;First column comment (indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+    public static Printer create(AST node)
+    {
+
+        <span class="bold"><b>/*
+        if (node == null)
+        {
+            return new NullPrinter();
+        }
+        */</b></span>
+        return create(node.getType());
+    }
+</pre></td></tr></table></div><p></p><div class="example"><a name="ex-indentation-misc-first-column-unindented"></a><p class="title"><b>Example&nbsp;4.50.&nbsp;First column comment (unindented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+    public static Printer create(AST node)
+    {
+
+<span class="bold"><b>/*
+        if (node == null)
+        {
+            return new NullPrinter();
+        }
+*/</b></span>
+        return create(node.getType());
+    }
+</pre></td></tr></table></div><p></p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="indentation-align"></a>4.3.3.3.&nbsp;Align</h4></div></div><div></div></div><a class="indexterm" name="d0e2450"></a><a class="indexterm" name="d0e2455"></a><div class="itemizedlist"><ul type="disc"><li><p><a name="indentation-align-ident"></a>
+Variable identifiers
+</p><p>
+If enabled, aligns the identifiers of variable declarations.
+</p><a class="indexterm" name="d0e2464"></a><div class="example"><a name="ex-indentation-misc-align-ident"></a><p class="title"><b>Example&nbsp;4.51.&nbsp;Variable identifiers</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+String text = "text";
+int a = -1;
+History.Entry entry = new History.Entry(text);
+</pre></td></tr></table></div><p></p><div class="example"><a name="ex-indentation-align-ident-aligned"></a><p class="title"><b>Example&nbsp;4.52.&nbsp;Variable identifiers (aligned)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+String        text = "text";
+int           a = -1;
+History.Entry entry = new History.Entry(text);
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-align-assign"></a>
+Variable assignments
+</p><p>
+If enabled, aligns the assignment parts of variable declarations or, surprise, assignments.
+</p><a class="indexterm" name="d0e2488"></a><a class="indexterm" name="d0e2495"></a><div class="example"><a name="ex-indentation-align-assign-aligned"></a><p class="title"><b>Example&nbsp;4.53.&nbsp;Variable assignments (aligned)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+String text         = "text";
+int a               = -1;
+History.Entry entry = new History.Entry(text);
+</pre></td></tr></table></div><p>
+If both variable alignment options are enabled, you can achieve a style like
+the following:
+</p><div class="example"><a name="ex-indentation-align-both"></a><p class="title"><b>Example&nbsp;4.54.&nbsp;Variable identifiers/assignments (both aligned)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+String        text  = "text";
+int           a     = -1;
+History.Entry entry = new History.Entry(text);
+</pre></td></tr></table></div><p>
+
+</p></li><li><p><a name="indentation-align-params"></a>
+Method Def parameters
+</p><p>
+If enabled, aligns the parameters of method declarations. This only applies if
+all parameters will be wrapped; either because wrapping is forced or the
+max. line length is reached. To force aligning, you have to enable the
+wrapping for method parameters (See <a href="wrapping.html#wrap-method-params">Method Def parameters</a>).
+</p><a class="indexterm" name="d0e2524"></a><a class="indexterm" name="d0e2527"></a><div class="example"><a name="ex-indentation-align-params"></a><p class="title"><b>Example&nbsp;4.55.&nbsp;Method declaration parameters</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+public static File create(final File file,
+                          File directory,
+                          int backupLevel)
+{
+    ...
+}
+</pre></td></tr></table></div><p></p><div class="example"><a name="ex-indentation-align-params-aligned"></a><p class="title"><b>Example&nbsp;4.56.&nbsp;Method declaration parameters (aligned)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+public static File create(final File file,
+                          File       directory,
+                          int        backupLevel)
+{
+    ...
+}
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-align-method-chains"></a>
+Method Call chains
+</p><p>
+If disabled, indentation happens according to the current indentation level.
+</p><div class="example"><a name="ex-indentation-align-call"></a><p class="title"><b>Example&nbsp;4.57.&nbsp;Method Call chain (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+Fachschluesselerzeugung.createService()
+.getNeuerFachschluesselServiceService(
+    FachschluesselerzeugungService.FACHSCHLUESSEL_KZ_INTERESSENT);
+</pre></td></tr></table></div><p>
+Otherwise indentation is performed relative to the column offset of the first chain link.
+</p><div class="example"><a name="ex-indentation-align-call-aligned"></a><p class="title"><b>Example&nbsp;4.58.&nbsp;Method Call chain  (aligned)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+Fachschluesselerzeugung.createService()
+                       .getNeuerFachschluesselServiceService(
+                            FachschluesselerzeugungService.FACHSCHLUESSEL_KZ_INTERESSENT);
+</pre></td></tr></table></div><p></p></li><li><p><a name="indentation-align-ternary"></a>
+Ternary expressions
+</p><p>
+If disabled, ternary expressions are printed according to the current
+<a href="indentation.html#indentation-policy" title="4.3.3.1.1.&nbsp;Policy">indentation policy</a>.
+</p><div class="example"><a name="ex-indentation-ternary-standard"></a><p class="title"><b>Example&nbsp;4.59.&nbsp;Ternary operators (standard indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+        alpha = (aLongBooleanExpression) ? beta    |
+        : gamma;                                   |
+</pre></td></tr></table></div><p></p><div class="example"><a name="ex-indentation-ternary-deep"></a><p class="title"><b>Example&nbsp;4.60.&nbsp;Ternary operators (deep indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+        alpha = (aLongBooleanExpression) ? beta    |
+                : gamma;                           |
+</pre></td></tr></table></div><p>
+If enabled, the second operator will always be aligned relative to the first one.
+</p><div class="example"><a name="ex-indentation-ternary-align"></a><p class="title"><b>Example&nbsp;4.61.&nbsp;Ternary expresssions (aligned)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+        alpha = (aLongBooleanExpression) ? beta    |
+                                         : gamma;  |
+</pre></td></tr></table></div><p>
+Note that this switch only takes affect, if indeed a line break was inserted
+before the second expression. You can force such line breaks with the
+<a href="wrapping.html#wrap-ternary-colon">Wrap always before ternary expression colon</a> setting.
+</p></li></ul></div><p></p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="indentation-continuation"></a>4.3.3.4.&nbsp;Continuation</h4></div></div><div></div></div><a class="indexterm" name="d0e2597"></a><a class="indexterm" name="d0e2602"></a><p>
+Lets you specify extra indentation for consectutive lines of certain expressions.
+</p><div class="itemizedlist"><ul type="disc"><li><p><a name="indentation-misc-continuation-if"></a>
+Blocks
+</p><p>
+The Sun brace style could make seeing the statement body difficult. To
+workaround this problem, you may want to use continuation indentation in case you like this
+brace style. This setting applies for <tt class="literal">if</tt>, <tt class="literal">for</tt>, <tt class="literal">while</tt>
+and <tt class="literal">do-while</tt> blocks.
+</p><div class="example"><a name="ex-indentation-misc-non-continuation"></a><p class="title"><b>Example&nbsp;4.62.&nbsp;Non-continuation indentation</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+if ((condition1 &amp;&amp; condition2)
+    || (condition3 &amp;&amp; condition4)
+    || !(condition5 &amp;&amp; condition6)) { // BAD WRAPS
+    doSomethingAboutIt();             // MAKE THIS LINE EASY TO MISS
+}
+</pre></td></tr></table></div><p></p><div class="example"><a name="ex-indentation-misc-contiunation"></a><p class="title"><b>Example&nbsp;4.63.&nbsp;Continuation indentation</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+if ((condition1 &amp;&amp; condition2)
+        || (condition3 &amp;&amp; condition4)
+        || !(condition5 &amp;&amp; condition6)) {
+    doSomethingAboutIt();
+}
+</pre></td></tr></table></div><p>
+Refer to <a href="printer.html#braces-style-styles" title="4.3.1.1.1.&nbsp;Styles">Section&nbsp;4.3.1.1.1, &#8220;Styles&#8221;</a> for the available brace style options.
+</p></li><li><p><a name="indentation-misc-ternary-if-else"></a>
+Operators
+</p><p>
+If enabled, indentation will be increased before an operand will be printed.
+</p><div class="example"><a name="ex-indentation-misc-ternary-if-else"></a><p class="title"><b>Example&nbsp;4.64.&nbsp;Ternary expression (deep indented)</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
+String comma = spaceAfterComma
+               ---&gt;? COMMA_SPACE
+               ---&gt;: COMMA;
+</pre></td></tr></table></div><p></p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="whitespace.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="printer.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="wrapping.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">4.3.2.&nbsp;White Space&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;4.3.4.&nbsp;Wrapping</td></tr></table></div></td></tr></table></td></tr><tr><td bgcolor="#eeeecc" height="17" style="font-size:9px;padding-left:5px"><a href="#toppage">to top</a></td></tr><tr><td height="30"><br></td></tr><tr><td height="3"></td></tr><tr><td bgcolor="#336699" height="1"></td></tr><tr><td height="1"></td></tr><tr><td bgcolor="#336699" height="16"></td></tr><tr><td bgcolor="#ff9966" height="4"></td></tr><tr><td class="footer" align="center" height="15" valign="middle">
+            Copyright &copy; 2001-2004, <a class="footer" href="./contact.html">Marco Hunsicker</a>. All rights reserved. Hosted by <a href="http://sourceforge.net">SourceForge.net</a></td></tr></tbody></table><img src="http://sourceforge.net/sflogo.php?group_id=45216&amp;type=1" width="1" height="1" border="0" hspace="0" vspace="0" alt=""></body></html>