Jindent 3.5, Jindent 3.5 Gold 1.1.0 released

on .

Changes/New Features in Jindent 3.5

  • A completely new license scheme.
  • Jindent works much faster now (up to 200%).
  • JAVA 1.4 grammar support added (assert keyword support).
  • New assert property switches:
    spaceBeforeAssertColon = boolean
    spaceAfterAssertColon  = boolean
  • New filter support provides that Jindent can be used with extended Java dialects like Java with SQLJ. Providing an Open Filter API Jindent empowers you to write your own pre-/postprocessing filters. Support for SQLJ is included as an example filter.
  • New filter switches:
    blankLinesBeforeFilteredCode = n
    blankLinesAfterFilteredCode  = n
  • Improved line wrapping in long for-statements.
  • Wrapping long method names has a lower priority now.
  • The style of multiple semicolons ;;;;; will be preserved now.
  • New keys for bang ! and tilde ~:
    spaceBeforeBang = boolean
    spaceAfterBang  = boolean
    
    spaceBeforeBangAfterAndOr = boolean
    spaceAfterBangAfterAndOr  = boolean
    
    spaceBeforeTilde = boolean
    spaceAfterTilde  = boolean
  • This key is deprecated now:
    spaceBeforeConditionBang = boolean
    
  • Default setting of Jindent's output format is -auto now.
  • It is possible now to overwrite environment variable content "*not available*" for variables fileName and fullFileName if the Jindent interface is invoked through streams.
  • Early detection and skipping of write protected java files.
  • Creation of used defined backup extension:
    -bakext extension
  • Header and footer identification works for end-of-line comments too now.
  • conventionString is deprecated now, therefore it got separated into two keys:
    date = timePattern
    conventionNote = String

    'date' is an environment variable which can be used in all templates.

  • import statements are not separated by classes anymore.
  • New switches for brace styles are added:
    noBlankLinesAfterLeftBraceGeneral        = boolean
    noBlankLinesAfterLeftBraceMethod         = boolean
    noBlankLinesAfterLeftBraceClassInterface = boolean
    noBlankLinesAfterLeftBraceTryCatch       = boolean

    This switch can be usefull if generally blank lines before comments are desired, but at the beginning
    of a block it could create a unnecessary gap, for instance:

    void myMethod(int i)
    {
    
        // first comment
        int x = a(i) + b(i);
        System.out.println(x);
    
        // second comment
        int y = c(x) + d(x);
        System.out.println(y);
    }

    The new switches (here noBlankLinesAfterLeftBraceMethod = true) can change this output to:

    void myMethod(int i)
    {
        // first comment
        int x = a(i) + b(i);
        System.out.println(x);
    
        // second comment
        int y = c(x) + d(x);
        System.out.println(y);
    } 
  • paddingParenthesis is deprecated now and got divided into new switches:
    paddingMethodDeclarationParenthesis = boolean
    paddingMethodCallParenthesis        = boolean
    paddingStatementParenthesis         = boolean
  • New switches to wrap lines before and after operators:
    wrapAfterConditionalOperators = boolean
    wrapAfterComparisonOperators  = boolean
    wrapAfterNumericalOperators   = boolean
  • New switch to improve alignment of too long comments, declarations and assignments:
    alignTooLongDeclarations     = boolean
    alignTooLongAssignments      = boolean
    separateChunksByTooLongLines = boolean 
  • alignTooLongComments got improved.
  • Improved error catching, Jindent will not terminate abruptly anymore.
  • indentWrappedThrows, indentWrappedExtends, indentWrappedImplements properties have effect on normal wrapping too now.
  • A new key to control wrapped tokens in variable declarations:
    wrapDeclarationAssignmentsToRightSide = boolean
  • setCodeWarnings(boolean) added to JindentParser interface.
  • Empty constructor of JindentProperties() creates an empty property object with invalid entries now. To create a property object with Jindent's default setting we introduced a new class DefaultJindentProperties.
    To keep all the 3rd party integrations on working Jindent is able to recognize an empty property object and automatically substitute it by a DefaultJindentProperties object.
  • Unicode support and conversion implemented.
  • New encoding command line switches:
    -inputEncoding enc
    -outputEncoding enc
    -resourceEncoding enc
  • Improved indentation for switch-case statements.
    Deprecated is now:
    indentCaseFromSwitch = boolean

    new property setting is:

    indentCaseFromSwitch = n
  • Introducing a new comment switch:
    //JDOC-

This switch can be used to skip automatical javadoc insertion for methods/classes/interfaces/fields.
It can be used to preserve javadoc inheritance which is supported by Sun's javadoc tool.


Changes/New Features in JindentCommander:

  • JavaHelp support.
  • New batch mode switch -e added to run a JindentCommander project file without showing the GUI.
  • Support for encoding arguments.
  • Serialization of jcs objects is version independent from now on.
  • Some GUI improvements.


Changes/New Features in JindentCustomizer:

  • JavaHelp support.
  • New tree-based property editor.
  • Environment variables $fullFileName$ and $fileName$ work in JindentCustomizer now.
  • Support for new Jindent properties.
  • Output is syntaxhighlighted on all VMs >= 1.3.
  • Some GUI improvements.


Bugfixes in Jindent:

  • Jindent trashes line wrapping for unix files combined with neverIndentFirstColumnComments = true.
    This bug occured in files which use blank lines between certain code segments. This is fixed now.
  • Line wrapping bug in greater than 2 dimensional arrays is fixed.
  • Missing space before brackets [] in several source code parts is fixed.
  • Label indentation and accordingly tabulator handling bug is fixed.
  • Java grammar works correctly now for abstract, strictfp and final classes in
    methods/constructors or blocks.
  • spaceBeforeStatementParenthesis = false setting is fixed. Now works proper for: return(...), throw(...)
  • Wrong indentation of indentLeftBrace... caused by nasty placed comments.
  • Public JindentBean interface is not obfuscated anymore.
  • alignTooLongComments works correct now.
  • Some few tabulator alignment problems occured. This is fixed now.
  • Headers/footers starting with "/*---" and ending with "---*/" will not automatically deleted anymore.
  • CloneNotSupportedException of method clone() in the classes JindentProperties and JindentEnvironment is never thrown. To avoid confusion they are removed.
  • InsertMissingJavadocTags = true combined with formatJavadocComments = true works proper now.
  • Problem with numerous trailing comments in one line is fixed.
  • Certain placement of tabulators in comments do not cause parse errors anymore.
  • Empty Strings "" in templates are accepted now.
  • Assert support in labeled statements did not work.
  • JindentReader and JindentWriter were not included in the JindentGold zipfile.
  • Jindent had problems to understand some keys of the new license scheme. This is fixed now.
  • Deleting headers/footers which have javadoc style did not work.
  • Saving of environment in JindentCustomizer did not work.
  • Some GUI bug fixes.
  • And some other minor bugs are fixed...