update author list in license for (JAL-826)
[jalview.git] / utils / jalopy / docs / indentation.html
1
2 <!--
3  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
4  * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
5  * 
6  * This file is part of Jalview.
7  * 
8  * Jalview is free software: you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License 
10  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
11  * 
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
18 -->
19     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
20   <html><head>
21       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
22    <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">
23       <meta name="description" content="Jalopy Java Source Code Formatter Beautifier Pretty Printer"> 
24       <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))'> 
25     </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;
26                     <a href="./download.html" class="navlink">Download</a> &#149;
27                     <a href="./docs.html" class="navlink">Documentation</a> &#149;
28                     <a href="./plugins.html" class="navlink">Plug-ins</a> &#149;
29                     <a href="./links.html" class="navlink">Links</a> &#149;
30                     <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> |
31                     <a href="./history.html" class="navlink2">History</a> |
32                     <a href="./manual.html" class="navlink2">Manual</a> |
33                     <a href="./faq.html" class="navlink2">FAQ</a> |
34                     <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">
35                     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>
36 Controls the indentation settings.
37 <a class="indexterm" name="d0e2107"></a>
38 </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>
39 Lets you choose the way lines should be indented.
40 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="indentation-policy-standard"></a>
41 Standard indent
42 </p><p>
43 With standard indentation, lines will be indented according to the
44 current indentation level (Note that the indentation level changes as the block
45 or parentheses level changes).
46 </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">
47 public void severalParameters(String one, int two, String three,
48     StringObject four, AnotherObject five) {
49 ...
50 }
51 </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">
52 vector.add(new AppServerReference(
53         "RemoteApplicationManager",
54         poa.create_reference_with_id("RemoteApplicationManager".getBytes(),
55             RemoteApplicationManagerHelper.id())));
56 </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">
57 doublette[InteressentenPflegeController.GEBURTSDATUM] = versichertenResultSetRow[i].field[0]
58     .substring(0, 2) + "."
59     + versichertenResultSetRow[i].field[0].substring(2, 4) + "."
60     + versichertenResultSetRow[i].field[0].substring(4, 6);
61 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-policy-deep"></a>
62 Deep indent
63 </p><p>
64 Deep indentation means that lines will be indented relative to the current
65 parentheses or assignment offset. This way consecutive code sections are somewhat easier
66 to recognize at the downside of consuming more horizontal space.
67 </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">
68 public void severalParameters(String one, int two, String three,
69                               StringObject four, AnotherObject five) {
70     ...
71 }
72 </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">
73 this.add(lbPunktzahl,
74          new GridBagLayout(0, 1, 2, 1, 0.0, 0.0,
75                            GribBagConstraints.WEST,
76                            GribBagConstraints.NONE,
77                            new Insets(0, GribBagConstraints.WEST,
78                                       GribBagConstraints.WEST,
79                                       GribBagConstraints.WEST), 0, 0));
80 </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">
81 doublette[Controller.GEBURTSDATUM] = versichertenResultSetRow[i].field[0]
82                                      .substring(0, 2) + "."
83                                      + versichertenResultSetRow[i].field[0]
84                                        .substring(2, 4)
85                                      + "."
86                                      + versichertenResultSetRow[i].field[0]
87                                        .substring(4, 6);
88 </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>
89 Lets you set different indentation sizes.
90 </p><div class="itemizedlist"><p></p><ul type="disc"><li><p><a name="indentation-sizes-general"></a>
91 General indent
92 <a class="indexterm" name="d0e2182"></a>
93 </p><p>
94 Specifies the number of spaces to use for general indentation (Studies have
95 found that 2 to 4 spaces for indentation is optimal)
96 </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">
97 public class Preferences
98 {
99 -&gt;private Preferences()
100 -&gt;{
101 -&gt;}
102
103 -&gt;public static void main(String[] argv)
104 -&gt;{
105 -&gt;-&gt;de.hunsicker.jalopy.swing.PreferencesDialog.main(argv);
106 -&gt;}
107 }
108 </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">
109 public class Preferences
110 {
111 ---&gt;private Preferences()
112 ---&gt;{
113 ---&gt;}
114
115 ---&gt;public static void main(String[] argv)
116 ---&gt;{
117 ---&gt;---&gt;de.hunsicker.jalopy.swing.PreferencesDialog.main(argv);
118 ---&gt;}
119 }
120 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-leading"></a>
121 Leading indent
122 <a class="indexterm" name="d0e2207"></a>
123 </p><p>
124 Specifies the number of spaces to prepend before every line printed.
125 </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">
126 -----&gt;public class Preferences
127 -----&gt;{
128 -----&gt;    private Preferences()
129 -----&gt;    {
130 -----&gt;    }
131
132 -----&gt;    public static void main(String[] argv)
133 -----&gt;    {
134 -----&gt;        de.hunsicker.jalopy.swing.PreferencesDialog.main(argv);
135 -----&gt;    }
136 -----&gt;}
137 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-continuation"></a>
138 Continuation indent
139 <a class="indexterm" name="d0e2226"></a>
140 </p><p>
141 Specifies the number of spaces that should be inserted in front of
142 continuation lines, i.e. the consecutive lines in case of a line wrap.
143 </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">
144 if ((condition1 &amp;&amp; condition2)
145     -&gt;|| (condition3 &amp;&amp; condition4)
146     -&gt;|| !(condition5 &amp;&amp; condition6)) {
147     doSomethingAboutIt();
148 }
149 </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">
150 if ((condition1 &amp;&amp; condition2)
151     ---&gt;|| (condition3 &amp;&amp; condition4)
152     ---&gt;|| !(condition5 &amp;&amp; condition6)) {
153     doSomethingAboutIt();
154 }
155 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-trailing"></a>
156 Trailing comment indent
157 <a class="indexterm" name="d0e2251"></a>
158 <a class="indexterm" name="d0e2259"></a>
159 <a class="indexterm" name="d0e2265"></a>
160 </p><p>
161 Specifies the number of spaces to insert between trailing comments and the
162 preceding statement.
163 </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">
164 new String[] {
165     "Sunday",--&gt;// Sunday
166     "Monday",--&gt;// Monday
167     "Tuesday",--&gt;// Tuesday
168     "Wednesday",--&gt;// Wednesday
169     "Thursday",--&gt;// Thursday
170     "Friday",--&gt;// Friday
171     "Saturday"--&gt;// Saturday
172 }
173 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-tab"></a>
174 Original Tab indent
175 </p><p>
176 Specifies the original tabular size of the source code. Some indentations
177 or alignments may fail, if you miss the correct size here.
178 <a class="indexterm" name="d0e2282"></a>
179 <a class="indexterm" name="d0e2288"></a>
180 </p></li><li><p><a name="indentation-sizes-extends"></a>
181 Extends indent
182 </p><p>
183 If enabled, specifies the whitespace to print before the <tt class="classname">extends</tt>
184 keyword in case it was printed on a new line.
185 </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">
186 public interface Channel
187 ------&gt;extends Puttable, Takable
188 {
189     ...
190 }
191 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-implements"></a>
192 Implements indent
193 </p><p>
194 Specifies the whitespace to print before the <tt class="classname">implements</tt>
195 keyword in case it was printed on a new line.
196 </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">
197 public class SynchronizedBoolean
198 -------&gt;implements Comparable, Cloneable
199 {
200     ...
201 }
202 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-sizes-throws"></a>
203 Throws indent
204 </p><p>
205 Specifies the whitespace to print before the <tt class="classname">throws</tt>
206 keyword in case it was printed on a new line.
207 <a class="indexterm" name="d0e2346"></a>
208 </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">
209 private static final File getDestinationFile(File dest, String packageName,
210                                              String filename)
211 --&gt;throws IOException, FooException
212 {
213     ...
214 }
215 </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>
216 Use tabs to indent
217 <a class="indexterm" name="d0e2369"></a>
218 </p><p>
219 Normally, Jalopy uses spaces to indent lines. If you prefer tabs, check this box.
220 </p></li><li><p>
221 Indent "case" from "switch"
222 </p><p>
223 The Sun Java code convention recommends a switch style where case statements
224 are not indented relative to the switch statement as a whole. However, this
225 option allows you to indent the case statements to make the entire switch
226 statement stand out.
227 </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">
228 switch (prio)
229 {
230 case Priority.ERROR_INT :
231 case Priority.FATAL_INT :
232     color = Color.red;
233     break;
234
235 case Priority.WARN_INT :
236     color = Color.blue;
237     break;
238
239 default:
240     color = Color.black;
241     break;
242 }
243 </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">
244 switch (prio)
245 {
246 ---&gt;case Priority.ERROR_INT :
247 ---&gt;case Priority.FATAL_INT :
248 ---&gt;    color = Color.red;
249 ---&gt;    break;
250
251 ---&gt;case Priority.WARN_INT :
252 ---&gt;    color = Color.blue;
253 ---&gt;    break;
254
255 ---&gt;default:
256 ---&gt;    color = Color.black;
257 ---&gt;    break;
258 }
259 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-misc-label"></a>
260 Indent labels
261 <a class="indexterm" name="d0e2397"></a>
262 </p><p>
263 Specifies whether lables should be indented with the current indentation level.
264 </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">
265 // advance to the first CLASS_DEF or INTERFACE_DEF
266 <span class="bold"><b>LOOP</b></span>:
267         for (AST child = tree.getFirstChild();
268              child != null;
269              child = child.getNextSibling())
270         {
271             switch (child.getType())
272             {
273                 case JavaTokenTypes.CLASS_DEF :
274                 case JavaTokenTypes.INTERFACE_DEF :
275                     next = child;
276                     break LOOP;
277                 default :
278                     break;
279             }
280         }
281 </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">
282         // advance to the first CLASS_DEF or INTERFACE_DEF
283         <span class="bold"><b>LOOP</b></span>:
284         for (AST child = tree.getFirstChild();
285              child != null;
286              child = child.getNextSibling())
287         {
288             switch (child.getType()) {
289                 case JavaTokenTypes.CLASS_DEF :
290                 case JavaTokenTypes.INTERFACE_DEF :
291                     next = child;
292                     break LOOP;
293
294                 default :
295                     break;
296             }
297         }
298 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-misc-first-column"></a>
299 Indent first column comments
300 </p><p>
301 Normally, all comments will be indented relative to their position in the code
302 to avoid that comments break the logical structure of the program. Some
303 developers may like to disable the indentation for first column comments
304 during the developing phase.
305 </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">
306     public static Printer create(AST node)
307     {
308
309         <span class="bold"><b>/*
310         if (node == null)
311         {
312             return new NullPrinter();
313         }
314         */</b></span>
315         return create(node.getType());
316     }
317 </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">
318     public static Printer create(AST node)
319     {
320
321 <span class="bold"><b>/*
322         if (node == null)
323         {
324             return new NullPrinter();
325         }
326 */</b></span>
327         return create(node.getType());
328     }
329 </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>
330 Variable identifiers
331 </p><p>
332 If enabled, aligns the identifiers of variable declarations.
333 </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">
334 String text = "text";
335 int a = -1;
336 History.Entry entry = new History.Entry(text);
337 </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">
338 String        text = "text";
339 int           a = -1;
340 History.Entry entry = new History.Entry(text);
341 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-align-assign"></a>
342 Variable assignments
343 </p><p>
344 If enabled, aligns the assignment parts of variable declarations or, surprise, assignments.
345 </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">
346 String text         = "text";
347 int a               = -1;
348 History.Entry entry = new History.Entry(text);
349 </pre></td></tr></table></div><p>
350 If both variable alignment options are enabled, you can achieve a style like
351 the following:
352 </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">
353 String        text  = "text";
354 int           a     = -1;
355 History.Entry entry = new History.Entry(text);
356 </pre></td></tr></table></div><p>
357
358 </p></li><li><p><a name="indentation-align-params"></a>
359 Method Def parameters
360 </p><p>
361 If enabled, aligns the parameters of method declarations. This only applies if
362 all parameters will be wrapped; either because wrapping is forced or the
363 max. line length is reached. To force aligning, you have to enable the
364 wrapping for method parameters (See <a href="wrapping.html#wrap-method-params">Method Def parameters</a>).
365 </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">
366 public static File create(final File file,
367                           File directory,
368                           int backupLevel)
369 {
370     ...
371 }
372 </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">
373 public static File create(final File file,
374                           File       directory,
375                           int        backupLevel)
376 {
377     ...
378 }
379 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-align-method-chains"></a>
380 Method Call chains
381 </p><p>
382 If disabled, indentation happens according to the current indentation level.
383 </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">
384 Fachschluesselerzeugung.createService()
385 .getNeuerFachschluesselServiceService(
386     FachschluesselerzeugungService.FACHSCHLUESSEL_KZ_INTERESSENT);
387 </pre></td></tr></table></div><p>
388 Otherwise indentation is performed relative to the column offset of the first chain link.
389 </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">
390 Fachschluesselerzeugung.createService()
391                        .getNeuerFachschluesselServiceService(
392                             FachschluesselerzeugungService.FACHSCHLUESSEL_KZ_INTERESSENT);
393 </pre></td></tr></table></div><p></p></li><li><p><a name="indentation-align-ternary"></a>
394 Ternary expressions
395 </p><p>
396 If disabled, ternary expressions are printed according to the current
397 <a href="indentation.html#indentation-policy" title="4.3.3.1.1.&nbsp;Policy">indentation policy</a>.
398 </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">
399         alpha = (aLongBooleanExpression) ? beta    |
400         : gamma;                                   |
401 </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">
402         alpha = (aLongBooleanExpression) ? beta    |
403                 : gamma;                           |
404 </pre></td></tr></table></div><p>
405 If enabled, the second operator will always be aligned relative to the first one.
406 </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">
407         alpha = (aLongBooleanExpression) ? beta    |
408                                          : gamma;  |
409 </pre></td></tr></table></div><p>
410 Note that this switch only takes affect, if indeed a line break was inserted
411 before the second expression. You can force such line breaks with the
412 <a href="wrapping.html#wrap-ternary-colon">Wrap always before ternary expression colon</a> setting.
413 </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>
414 Lets you specify extra indentation for consectutive lines of certain expressions.
415 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="indentation-misc-continuation-if"></a>
416 Blocks
417 </p><p>
418 The Sun brace style could make seeing the statement body difficult. To
419 workaround this problem, you may want to use continuation indentation in case you like this
420 brace style. This setting applies for <tt class="literal">if</tt>, <tt class="literal">for</tt>, <tt class="literal">while</tt>
421 and <tt class="literal">do-while</tt> blocks.
422 </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">
423 if ((condition1 &amp;&amp; condition2)
424     || (condition3 &amp;&amp; condition4)
425     || !(condition5 &amp;&amp; condition6)) { // BAD WRAPS
426     doSomethingAboutIt();             // MAKE THIS LINE EASY TO MISS
427 }
428 </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">
429 if ((condition1 &amp;&amp; condition2)
430         || (condition3 &amp;&amp; condition4)
431         || !(condition5 &amp;&amp; condition6)) {
432     doSomethingAboutIt();
433 }
434 </pre></td></tr></table></div><p>
435 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.
436 </p></li><li><p><a name="indentation-misc-ternary-if-else"></a>
437 Operators
438 </p><p>
439 If enabled, indentation will be increased before an operand will be printed.
440 </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">
441 String comma = spaceAfterComma
442                ---&gt;? COMMA_SPACE
443                ---&gt;: COMMA;
444 </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">
445             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>