2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5 <title>4.3.5. Blank Lines</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. Printer"><link rel="previous" href="wrapping.html" title="4.3.4. Wrapping"><link rel="next" href="comments.html" title="4.3.6. Comments"><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 I. Jalopy core"><link rel="chapter" href="installation.html" title="Chapter 1. Installation"><link rel="chapter" href="build.html" title="Chapter 2. Building"><link rel="chapter" href="usage.html" title="Chapter 3. Usage"><link rel="chapter" href="settings.html" title="Chapter 4. Settings"><link rel="part" href="part-plugins.html" title="Part II. Plug-ins"><link rel="chapter" href="plugin-ant.html" title="Chapter 5. Ant Plug-in task"><link rel="chapter" href="plugin-console.html" title="Chapter 6. Console Application"><link rel="chapter" href="plugin-eclipse.html" title="Chapter 7. Eclipse Plug-in"><link rel="chapter" href="plugin-jbuilder.html" title="Chapter 8. JBuilder OpenTool"><link rel="chapter" href="plugin-jdev.html" title="Chapter 9. JDeveloper Extension"><link rel="chapter" href="plugin-jedit.html" title="Chapter 10. jEdit Plug-in"><link rel="chapter" href="plugin-netbeans.html" title="Chapter 11. NetBeans/Sun ONE Studio module"><link rel="appendix" href="dependencies.html" title="Appendix A. Library Dependencies"><link rel="appendix" href="license-bsd.html" title="Appendix B. The Jalopy BSD License"><link rel="appendix" href="license-antlr.html" title="Appendix C. ANTLR SOFTWARE RIGHTS"><link rel="appendix" href="license-apache.html" title="Appendix D. The Apache Software License, Version 1.1"><link rel="appendix" href="license-gnu.html" title="Appendix E. GNU GENERAL PUBLIC LICENSE Version 2, June 1991"><link rel="appendix" href="license-gnu-doc.html" title="Appendix F. GNU Free Documentation License Version 1.1, March 2000"><link rel="appendix" href="license-common-public.html" title="Appendix G. Common Public License Version 1.0"><link rel="appendix" href="license-sun-public.html" title="Appendix H. SUN PUBLIC LICENSE Version 1.0"><link rel="index" href="ix01.html" title="Index"><link rel="subsection" href="separation.html#separation-blank-lines" title="4.3.5.1. General"><link rel="subsection" href="separation.html#separation-misc" title="4.3.5.2. Misc"><link rel="subsection" href="separation.html#separation-comment" title="4.3.5.3. Comments">
6 <meta name="description" content="Jalopy Java Source Code Formatter Beautifier Pretty Printer">
7 <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))'>
8 </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> •
9 <a href="./download.html" class="navlink">Download</a> •
10 <a href="./docs.html" class="navlink">Documentation</a> •
11 <a href="./plugins.html" class="navlink">Plug-ins</a> •
12 <a href="./links.html" class="navlink">Links</a> •
13 <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> |
14 <a href="./history.html" class="navlink2">History</a> |
15 <a href="./manual.html" class="navlink2">Manual</a> |
16 <a href="./faq.html" class="navlink2">FAQ</a> |
17 <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">
18 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.5. Blank Lines</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="wrapping.html">Prev</a> </td><th width="60%" align="center">4.3. Printer</th><td width="20%" align="right"> <a accesskey="n" href="comments.html">Next</a></td></tr></table><hr></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="separation"></a>4.3.5. Blank Lines</h3></div></div><div></div></div><p>
19 Controls the Jalopy Blank Lines settings: the insertion of blank lines to
20 separate statements or declarations with different functions or meanings.
21 </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="separation-blank-lines"></a>4.3.5.1. General</h4></div></div><div></div></div><p>
22 Lets you specify the general blank lines sizes for different Java source file elements.
23 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="blank-lines-package"></a>
25 </p><a class="indexterm" name="d0e3379"></a><a class="indexterm" name="d0e3382"></a><p>
26 Lets you control how many blank lines should be printed after the package statement.
27 </p><div class="example"><a name="ex-blank-lines-package"></a><p class="title"><b>Example 4.115. 3 Blank lines after package statement</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">package de.hunsicker.jalopy.printer;
31 import antlr.collections.AST;
33 import de.hunsicker.jalopy.parser.JavaAST;
34 import de.hunsicker.jalopy.parser.JavaTokenTypes;
37 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-import"></a>
39 </p><a class="indexterm" name="d0e3398"></a><a class="indexterm" name="d0e3401"></a><p>
40 Lets you control how many blank lines should be printed after the last import statement.
41 </p><div class="example"><a name="ex-blank-lines-import"></a><p class="title"><b>Example 4.116. 4 Blank lines after last import statement</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">package de.hunsicker.jalopy.printer;
43 import antlr.collections.AST;
45 import de.hunsicker.jalopy.parser.JavaAST;
46 import de.hunsicker.jalopy.parser.JavaTokenTypes;
55 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-classes"></a>
57 </p><a class="indexterm" name="d0e3417"></a><a class="indexterm" name="d0e3420"></a><p>
58 Lets you control how many blank lines should be printed between two
60 </p><div class="example"><a name="blank-lines-class"></a><p class="title"><b>Example 4.117. 2 Blank lines between two class declarations</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">class One
70 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-interfaces"></a>
72 </p><a class="indexterm" name="d0e3436"></a><a class="indexterm" name="d0e3439"></a><p>
73 Lets you control how many blank lines should be printed between two
74 interface declarations.
75 </p><div class="example"><a name="blank-lines-ifc"></a><p class="title"><b>Example 4.118. 3 Blank lines between two interface declarations</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">interface One
86 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-methods"></a>
88 </p><a class="indexterm" name="d0e3455"></a><a class="indexterm" name="d0e3458"></a><p>
89 Lets you control how many blank lines should be printed between two
90 method/constructor declarations.
91 </p><div class="example"><a name="blank-lines-method"></a><p class="title"><b>Example 4.119. 3 Blank lines between two method declarations</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">public static Printer getInstance()
98 public void print(AST node, ASTWriter out)
103 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-blocks"></a>
105 </p><a class="indexterm" name="d0e3474"></a><a class="indexterm" name="d0e3477"></a><p>
106 Lets you control how many blank lines should be printed before and after
107 statement blocks (if-else , for, while, do-while, switch, try-catch-finally, synchronized).
108 Note that the 'Blank lines after' setting also applies for anonymous inner classes.
109 </p><div class="example"><a name="ex-blank-lines-blocks"></a><p class="title"><b>Example 4.120. 2 Blank lines between before and after blocks</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">AST type = null;
112 switch (next.getType())
114 case JavaTokenTypes.LPAREN :
115 type = PrinterUtils.advanceToFirstNonParen(next);
123 AST ident = type.getFirstChild();
124 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-declarations"></a>
126 </p><a class="indexterm" name="d0e3493"></a><a class="indexterm" name="d0e3496"></a><p>
127 Lets you control how many blank lines should be printed before and after
128 variable declarations.
129 </p></li><li><p><a name="blank-lines-case"></a>
131 </p><a class="indexterm" name="d0e3506"></a><a class="indexterm" name="d0e3509"></a><p>
132 Lets you control how many blank lines should be printed before each case
133 block of a switch expression.
134 </p><div class="example"><a name="ex-blank-lines-case"></a><p class="title"><b>Example 4.121. 3 Blank lines before case blocks</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">switch (next.getType())
139 case JavaTokenTypes.LPAREN :
140 type = PrinterUtils.advanceToFirstNonParen(next);
149 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-control"></a>
151 </p><a class="indexterm" name="d0e3525"></a><a class="indexterm" name="d0e3528"></a><p>
152 Lets you control how many blank lines should be printed before the statements
153 <span><b class="command">return</b></span>, <span><b class="command">break</b></span> and <span><b class="command">continue</b></span>.
154 </p><div class="example"><a name="ex-blank-lines-control"></a><p class="title"><b>Example 4.122. 2 Blank lines before case control statements</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">switch (next.getType())
156 case JavaTokenTypes.LPAREN :
157 type = PrinterUtils.advanceToFirstNonParen(next);
168 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-sl-comments"></a>
170 </p><a class="indexterm" name="d0e3553"></a><a class="indexterm" name="d0e3556"></a><p>
171 Lets you control how many blank lines should be printed before single-line
173 </p></li><li><p><a name="blank-lines-ml-comments"></a>
175 </p><a class="indexterm" name="d0e3566"></a><a class="indexterm" name="d0e3569"></a><p>
176 Lets you control how many blank lines should be printed before multi-line
178 </p></li><li><p><a name="blank-lines-javadoc"></a>
180 </p><a class="indexterm" name="d0e3579"></a><a class="indexterm" name="d0e3582"></a><p>
181 Lets you control how many blank lines should be printed before Javadoc
183 </p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="separation-misc"></a>4.3.5.2. Misc</h4></div></div><div></div></div><p>Lets you control miscellaneous separation settings.</p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="d0e3594"></a>4.3.5.2.1. Misc</h5></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a name="separation-misc-left-curly"></a>
184 Blank lines after left curly brace
185 </p><a class="indexterm" name="d0e3601"></a><a class="indexterm" name="d0e3604"></a><p>
186 Forces the given number of blank lines after left curly braces no matter
187 what your other blank lines settings say.
188 </p><div class="example"><a name="ex-separation-before-blocks"></a><p class="title"><b>Example 4.123. Blank lines before blocks=1</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">public void foo()
194 if (anotherCondition())
200 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-separation-misc-left-curly-yes"></a><p class="title"><b>Example 4.124. Blank lines before blocks=1, Blank lines after left curly braces=0</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">public void foo()
204 if (anotherCondition())
210 </pre></td></tr></table></div><p></p></li><li><p><a name="separation-misc-right-curly"></a>
211 Blank lines before right curly brace
212 </p><a class="indexterm" name="d0e3626"></a><a class="indexterm" name="d0e3629"></a><p>
213 Forces the given number of blank lines before closing curly braces no matter
214 what your other blank lines settings say.
215 </p><div class="example"><a name="ex-separation-misc-left-curly-no"></a><p class="title"><b>Example 4.125. Blank lines before blocks=1</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">public void foo()
219 if (anotherCondition())
228 </pre></td></tr></table></div><p></p></li><li><p><a name="separation-misc-keep"></a>
229 Keep Blank lines up to
231 If enabled, retains up to the given number of blank lines found in the
232 original source. This only works for method or constructor bodies. Note that Jalopy
233 still takes your other blank lines settings into account.
234 </p><div class="example"><a name="ex-separation-misc-keep-no"></a><p class="title"><b>Example 4.126. Source code with blank lines to separate code sections</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">aMVString = new MultiValueString("abc");
236 System.out.println("MV = "+aMVString);
238 System.out.println("MV0 = "+aMVString.extract(0));
239 System.out.println("MV1 = "+aMVString.extract(1));
240 System.out.println("MV2 = "+aMVString.extract(2));
241 System.out.println("");
242 </pre></td></tr></table></div><p>
243 If this feature is left disabled, Jalopy will print the individual lines according
244 to the current blank lines settings but won't try to retain any blank lines.
245 </p></li></ul></div></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="chunks"></a>4.3.5.2.2. Chunks</h5></div></div><div></div></div><a class="indexterm" name="d0e3657"></a><p>
246 Lets you define what makes a chunk: a section of associated statements.
247 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="chunks-comments"></a>
249 </p><a class="indexterm" name="d0e3666"></a><a class="indexterm" name="d0e3669"></a><p>
250 If enabled, a statement with a comment before is recognized as the start of a new
252 </p><div class="example"><a name="ex-chunks-comments"></a><p class="title"><b>Example 4.127. Aligning variable declarations</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
253 String text = "text";
256 // create a new entry
257 History.Entry entry = new History.Entry(text);
258 </pre></td></tr></table></div><p></p><div class="example"><a name="ex-chunks-comments-enabled"></a><p class="title"><b>Example 4.128. Aligning variable declarations with chunking by comments</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
259 String text = "text";
262 // create a new entry
263 History.Entry entry = new History.Entry(text);
264 </pre></td></tr></table></div><p></p></li><li><p><a name="chunks-blank-lines"></a>
266 </p><a class="indexterm" name="d0e3691"></a><a class="indexterm" name="d0e3694"></a><p>
267 If enabled, a statement which has one or more blank lines before is recognized
268 as the start of a new chunk.
269 </p></li></ul></div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="separation-comment"></a>4.3.5.3. Comments</h4></div></div><div></div></div><p>
270 Lets you control the behaviour of the separator comments. If the
271 <a href="sorting.html" title="4.3.12. Sorting">sorting of class elements</a> is enabled, Separator comments
272 can be inserted before every element section, to make it easier to identify the
273 different parts of a source file.
274 </p><a class="indexterm" name="d0e3709"></a><div class="example"><a name="ex-separation-comment"></a><p class="title"><b>Example 4.129. Separator comment</b></p><table border="0" bgcolor="#E0E0E0" class="shade"><tr><td><pre class="programlisting">
275 //~ Methods ------------------------------------------------------------------
276 </pre></td></tr></table></div><p></p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="d0e3718"></a>4.3.5.3.1. General</h5></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>
277 Add separator comments
279 Enables the insertions of separator comments.
281 Add separator comments for inner classes
283 The insertion of separator comments for inner classes/interfaces may lead to
284 confusion, therefore you can control it here separately.
285 </p></li></ul></div></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="d0e3732"></a>4.3.5.3.2. Descriptions</h5></div></div><div></div></div><p>Lets you define the description text for each of the different class elements.</p></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="d0e3737"></a>4.3.5.3.3. Fill character</h5></div></div><div></div></div><p>Lets you define the fill character for the comments.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="wrapping.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="printer.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="comments.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">4.3.4. Wrapping </td><td width="20%" align="center"><a accesskey="h" href="manual.html">Home</a></td><td width="40%" align="right" valign="top"> 4.3.6. Comments</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">
286 Copyright © 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&type=1" width="1" height="1" border="0" hspace="0" vspace="0" alt=""></body></html>