3 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
4 * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
6 * This file is part of Jalview.
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.
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.
17 * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
21 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
22 <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">
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> •
26 <a href="./download.html" class="navlink">Download</a> •
27 <a href="./docs.html" class="navlink">Documentation</a> •
28 <a href="./plugins.html" class="navlink">Plug-ins</a> •
29 <a href="./links.html" class="navlink">Links</a> •
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.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>
36 Controls the Jalopy Blank Lines settings: the insertion of blank lines to
37 separate statements or declarations with different functions or meanings.
38 </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>
39 Lets you specify the general blank lines sizes for different Java source file elements.
40 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="blank-lines-package"></a>
42 </p><a class="indexterm" name="d0e3379"></a><a class="indexterm" name="d0e3382"></a><p>
43 Lets you control how many blank lines should be printed after the package statement.
44 </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;
48 import antlr.collections.AST;
50 import de.hunsicker.jalopy.parser.JavaAST;
51 import de.hunsicker.jalopy.parser.JavaTokenTypes;
54 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-import"></a>
56 </p><a class="indexterm" name="d0e3398"></a><a class="indexterm" name="d0e3401"></a><p>
57 Lets you control how many blank lines should be printed after the last import statement.
58 </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;
60 import antlr.collections.AST;
62 import de.hunsicker.jalopy.parser.JavaAST;
63 import de.hunsicker.jalopy.parser.JavaTokenTypes;
72 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-classes"></a>
74 </p><a class="indexterm" name="d0e3417"></a><a class="indexterm" name="d0e3420"></a><p>
75 Lets you control how many blank lines should be printed between two
77 </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
87 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-interfaces"></a>
89 </p><a class="indexterm" name="d0e3436"></a><a class="indexterm" name="d0e3439"></a><p>
90 Lets you control how many blank lines should be printed between two
91 interface declarations.
92 </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
103 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-methods"></a>
105 </p><a class="indexterm" name="d0e3455"></a><a class="indexterm" name="d0e3458"></a><p>
106 Lets you control how many blank lines should be printed between two
107 method/constructor declarations.
108 </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()
115 public void print(AST node, ASTWriter out)
120 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-blocks"></a>
122 </p><a class="indexterm" name="d0e3474"></a><a class="indexterm" name="d0e3477"></a><p>
123 Lets you control how many blank lines should be printed before and after
124 statement blocks (if-else , for, while, do-while, switch, try-catch-finally, synchronized).
125 Note that the 'Blank lines after' setting also applies for anonymous inner classes.
126 </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;
129 switch (next.getType())
131 case JavaTokenTypes.LPAREN :
132 type = PrinterUtils.advanceToFirstNonParen(next);
140 AST ident = type.getFirstChild();
141 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-declarations"></a>
143 </p><a class="indexterm" name="d0e3493"></a><a class="indexterm" name="d0e3496"></a><p>
144 Lets you control how many blank lines should be printed before and after
145 variable declarations.
146 </p></li><li><p><a name="blank-lines-case"></a>
148 </p><a class="indexterm" name="d0e3506"></a><a class="indexterm" name="d0e3509"></a><p>
149 Lets you control how many blank lines should be printed before each case
150 block of a switch expression.
151 </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())
156 case JavaTokenTypes.LPAREN :
157 type = PrinterUtils.advanceToFirstNonParen(next);
166 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-control"></a>
168 </p><a class="indexterm" name="d0e3525"></a><a class="indexterm" name="d0e3528"></a><p>
169 Lets you control how many blank lines should be printed before the statements
170 <span><b class="command">return</b></span>, <span><b class="command">break</b></span> and <span><b class="command">continue</b></span>.
171 </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())
173 case JavaTokenTypes.LPAREN :
174 type = PrinterUtils.advanceToFirstNonParen(next);
185 </pre></td></tr></table></div><p></p></li><li><p><a name="blank-lines-sl-comments"></a>
187 </p><a class="indexterm" name="d0e3553"></a><a class="indexterm" name="d0e3556"></a><p>
188 Lets you control how many blank lines should be printed before single-line
190 </p></li><li><p><a name="blank-lines-ml-comments"></a>
192 </p><a class="indexterm" name="d0e3566"></a><a class="indexterm" name="d0e3569"></a><p>
193 Lets you control how many blank lines should be printed before multi-line
195 </p></li><li><p><a name="blank-lines-javadoc"></a>
197 </p><a class="indexterm" name="d0e3579"></a><a class="indexterm" name="d0e3582"></a><p>
198 Lets you control how many blank lines should be printed before Javadoc
200 </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>
201 Blank lines after left curly brace
202 </p><a class="indexterm" name="d0e3601"></a><a class="indexterm" name="d0e3604"></a><p>
203 Forces the given number of blank lines after left curly braces no matter
204 what your other blank lines settings say.
205 </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()
211 if (anotherCondition())
217 </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()
221 if (anotherCondition())
227 </pre></td></tr></table></div><p></p></li><li><p><a name="separation-misc-right-curly"></a>
228 Blank lines before right curly brace
229 </p><a class="indexterm" name="d0e3626"></a><a class="indexterm" name="d0e3629"></a><p>
230 Forces the given number of blank lines before closing curly braces no matter
231 what your other blank lines settings say.
232 </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()
236 if (anotherCondition())
245 </pre></td></tr></table></div><p></p></li><li><p><a name="separation-misc-keep"></a>
246 Keep Blank lines up to
248 If enabled, retains up to the given number of blank lines found in the
249 original source. This only works for method or constructor bodies. Note that Jalopy
250 still takes your other blank lines settings into account.
251 </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");
253 System.out.println("MV = "+aMVString);
255 System.out.println("MV0 = "+aMVString.extract(0));
256 System.out.println("MV1 = "+aMVString.extract(1));
257 System.out.println("MV2 = "+aMVString.extract(2));
258 System.out.println("");
259 </pre></td></tr></table></div><p>
260 If this feature is left disabled, Jalopy will print the individual lines according
261 to the current blank lines settings but won't try to retain any blank lines.
262 </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>
263 Lets you define what makes a chunk: a section of associated statements.
264 </p><div class="itemizedlist"><ul type="disc"><li><p><a name="chunks-comments"></a>
266 </p><a class="indexterm" name="d0e3666"></a><a class="indexterm" name="d0e3669"></a><p>
267 If enabled, a statement with a comment before is recognized as the start of a new
269 </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">
270 String text = "text";
273 // create a new entry
274 History.Entry entry = new History.Entry(text);
275 </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">
276 String text = "text";
279 // create a new entry
280 History.Entry entry = new History.Entry(text);
281 </pre></td></tr></table></div><p></p></li><li><p><a name="chunks-blank-lines"></a>
283 </p><a class="indexterm" name="d0e3691"></a><a class="indexterm" name="d0e3694"></a><p>
284 If enabled, a statement which has one or more blank lines before is recognized
285 as the start of a new chunk.
286 </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>
287 Lets you control the behaviour of the separator comments. If the
288 <a href="sorting.html" title="4.3.12. Sorting">sorting of class elements</a> is enabled, Separator comments
289 can be inserted before every element section, to make it easier to identify the
290 different parts of a source file.
291 </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">
292 //~ Methods ------------------------------------------------------------------
293 </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>
294 Add separator comments
296 Enables the insertions of separator comments.
298 Add separator comments for inner classes
300 The insertion of separator comments for inner classes/interfaces may lead to
301 confusion, therefore you can control it here separately.
302 </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">
303 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>