Jindent 4.2.4 released

on .

Java Formatter:
New features:
  • Added support for alignment of parameter declarations which are always wrapped to a new line.
  • Added new optional line wrapping strategy to save more space while formatting.
  • Added new setting to indent blocks from case labels.
  • Added new setting to disable wrapping of import statements.
  • Split general brace style settings into new sub categories: do-while/while/for, switch-case, if-else and block/initializer.
Bugfixes:
  • Aligning variable declarations could exceed the maximal line length. This is fixed.
  • Jindent's JavaDoc completion did not skip insertions for JavaDocs containing {@inheritDoc} tags. This is fixed.
  • Fixed wrong blank line insertion in switch-case blocks.
  • Fixed insertion of extra white spaces into comments like: //////////////////////
  • Semicolons following inline comments were wrapped to a new line. This is fixed.


C Formatter:
New features:
  • Added alignment and white space support for (de)reference operators in types.
  • Added alignment and white space support for bit fields.
  • Added white space support for sizeof operators.
  • Added new optional line wrapping strategy to save more space while formatting.
  • Added new formatting setting to wrap specific qualifiers to a new line.
  • Added new setting to indent blocks from case labels.
  • Split general brace style settings into new sub categories: do-while/while/for, switch-case, if-else and block/initializer.
  • Added new formatting feature to support static code analyzers which expect a white space insertion for intentionally left empty statements in loops.
Bugfixes:
  • Parsing C files containing C++ tokens as identifiers (like: new, delete, ...) threw a parsing error. To handle this problem the C/C++ formatter engine has been split into a single C and C++ formatter to differ between C and C++ grammar more precisely.
  • Jindent was not able to recognize \e in character and string declarations. This is fixed.
  • Added support to handle statements as parameters for more complex macro calls.
  • Added support to align parameters of macro calls like method calls.
  • Fixed formatting of macro calls followed by semicolons.
  • Fixed an alignment bug for initialized variable declarations in methods. Declarations like: MY_NUMBER x = 10, y = 20, z = 30; were not alignment correctly. This is fixed.
  • Aligning variable declarations could exceed the maximal line length. This is fixed.
  • Fixed another alignment bug for variable declarations and variable assignments.
  • Bit field constants were not supported in the C grammar file. This is added.
  • Keyword static before variable assignments were not recognized correctly. This is fixed.
  • Added support for FORM FEED (ASCII 12) characters in source code files.
  • Built in types used as function call arguments like: call_me(pz, double); threw an error. This is fixed.
  • Fixed parsing bug with #include directives used in initializers. Jindent now supports:
    type name = 
    #include "myfile.h"
    ;
  • Fixed wrong blank line insertion in switch-case blocks.
  • Fixed insertion of extra white spaces into comments like: //////////////////////
  • Fixed parse errors for pointer qualifiers like: char * POINTER_32 data;.
  • Fixed parse error for functions in concatenated string expressions: message( TEXT() TEXT() "some text here...")>
  • Fixed alignment bug in header files for parameters declarations. The output looked like:
    HRESULT SHPathToPidlEx(LPCTSTR       ,
                           LPITEMIDLIST *,
                           LPSHELLFOLDER );
    			
    but now the alignment is correct:
    HRESULT SHPathToPidlEx(LPCTSTR,
                           LPITEMIDLIST *,
                           LPSHELLFOLDER);
    			
  • Semicolons following inline comments were wrapped to a new line. This is fixed.
  • Fixed wrong alignment of indented preprocessor directives inside blocks.
  • Fixed parse error for character constants containing more than one letter.
  • Fixed grammar bugs for qualifiers in functions.
  • Fixed grammar bug for variable declarations with parentheses. Declarations like: IppVCHuffmanSpec_32s *(H264Bitstream::m_tblCoeffToken[5]) threw errors. This is fixed now.
  • Fixed parsing error for comments declared inside pre-processor defines:
    #define MY_NUMBER 42 /* my 
                            multi-line
                            comment */
                 
  • Comment alignment groups were only built for complete switch statements. That could lead to odd looking alignments for very big case labels. To fix this issue comment alignments will be now grouped for single case blocks.


C++ Formatter:
New features:
  • Added alignment and white space support for (de)reference operators in types.
  • Added alignment and white space support for bit fields.
  • Added white space support for sizeof operators.
  • Added new optional line wrapping strategy to save more space while formatting.
  • Added new formatting setting to wrap specific qualifiers to a new line.
  • Added line wrapping support for long template definitions.
  • Added new setting to indent blocks from case labels.
  • Split general brace style settings into new sub categories: do-while/while/for, switch-case, if-else and block/initializer.
  • Added new formatting feature to support static code analyzers which expect a white space insertion for intentionally left empty statements in loops.
Bugfixes:
  • Jindent was not able to recognize \e in character and string declarations. This is fixed.
  • Added support to handle statements as parameters for more complex macro calls.
  • Added support to align parameters of macro calls like method calls.
  • Fixed formatting of macro calls followed by semicolons.
  • Fixed an alignment bug for initialized variable declarations in methods. Declarations like: MY_NUMBER x = 10, y = 20, z = 30; were not alignment correctly. This is fixed.
  • Aligning variable declarations could exceed the maximal line length. This is fixed.
  • Fixed another alignment bug for variable declarations and variable assignments.
  • Bit field constants were not supported in the C++ grammar file. This is added.
  • Keyword static before variable assignments were not recognized correctly. This is fixed.
  • Added support for FORM FEED (ASCII 12) characters in source code files.
  • Built in types used as function call arguments like: call_me(pz, double); threw an error. This is fixed.
  • Fixed parsing bug with #include directives used in initializers. Jindent now supports:
    type name = 
    #include "myfile.h"
    ;
  • Fixed wrong blank line insertion in switch-case blocks.
  • Fixed insertion of extra white spaces into comments like: //////////////////////
  • Fixed parse errors for pointer qualifiers like: char * POINTER_32 data;.
  • Fixed parse error for functions in concatenated string expressions: message( TEXT() TEXT() "some text here...")>
  • Fixed alignment bug in header files for parameters declarations. The output looked like:
    HRESULT SHPathToPidlEx(LPCTSTR       ,
                           LPITEMIDLIST *,
                           LPSHELLFOLDER );
    			
    but now the alignment is correct:
    HRESULT SHPathToPidlEx(LPCTSTR,
                           LPITEMIDLIST *,
                           LPSHELLFOLDER);
    			
  • Semicolons following inline comments were wrapped to a new line. This is fixed.
  • Fixed wrong alignment of indented preprocessor directives inside blocks.
  • Fixed parse error for character constants containing more than one letter.
  • Fixed grammar bugs for qualifiers in functions.
  • Fixed grammar bug for variable declarations with parentheses. Declarations like: IppVCHuffmanSpec_32s *(H264Bitstream::m_tblCoeffToken[5]) threw errors. This is fixed now.
  • Fixed wrong white space insertions after scopes ::.
  • Fixed parsing error for comments declared inside pre-processor defines:
    #define MY_NUMBER 42 /* my 
                            multi-line
                            comment */
                 
  • Comment alignment groups were only built for complete switch statements. That could lead to odd looking alignments for very big case labels. To fix this issue comment alignments will be now grouped for single case blocks.


Jindent Customizer:
New features:
  • Cleaned up line wrapping sections and settings.


Jindent JDeveloper Plugin:
Added support for JDeveloper 11.1.2.2.0


Jindent Netbeans Plugin:
Added support for Netbeans 7.1 and 7.2


Jindent IntelliJ IDEA Plugin:
Added support for IntelliJ IDEA 11


Jindent Eclipse Plugin:
New features:
  • Added support for Eclipse 3.7.x and 4.2.x
  • Jindent's progress dialog is now embedded more natively into the Eclipse IDE.
Bugfix:
  • The previous 'format on save' concept based on listeners contained several problems with refreshed file resources. We now switched to Eclipse's built in 'actions on save' concept to prevent malfunctions. Therefore Jindent now offers its own 'format on save' action which can be enabled inside the Eclipse IDE easily.


Jindent Installer:
New features:
  • Improved support for Windows 7 and Mac OS.

Jindent 4.2.3 released

on .

Java Formatter:
Bugfixes:
  • Jindent's Java formatter complained about a missing blank line setting: Cannot find setting: java.doNotInsertBlankLinesBeforeFirstLineComments. This is fixed.

Jindent 4.2.2 released

on .

C/C++ Formatter:
New features:
  • Added support for alignment of parameter declarations which are always wrapped to a new line.
  • Added exception rule to suppress insertion of blank lines for comments appearing in the first line of source code. That way 3rd party tools using these special first line comments won't be confused by extra blank line insertions anymore.
Bugfixes:
  • Added grammar support for struct and union inside function declarations.
  • Fixed grammar issue for function definitions within parameters: void myFunction( int (*f)(const char * pArg) ) { ... }
  • Fixed grammar issue for declaration specifiers in type definitions like: typedef unsigned __int64 myUint64_t;
  • Fixed grammar issue for macro definitions appearing in class specifiers.
  • Fixed grammar issue for hexadecimal escaping in characters, for instance: char ch = '\x0C'.
  • Fixed grammar issue for recognition of local variables.
  • Fixed extra blank line insertion bug for keyword LOCAL.


Jindent Customizer:
Bugfixes:
  • Fixed support for Java 7:
    • ClassCastException was thrown under Java 7 Runtime Environment. This is fixed.
    • Preview of line wrapping features were messed up. This is fixed too.

Jindent 4.2.1 released

on .

Java Formatter:
Bugfixes:
  • import declarations containing class names with underscores _ threw parse errors This is fixed.
  • Fixed JavaDoc completion bug for generic methods containing a void return type.


C/C++ Formatter:
Bugfixes:
  • Improved blank line handling before/after and inside #if, #else and #endif directives.
  • Fixed a grammar bug for short notation of String concatenations with constants like: value = MY_STRING_A MY_STRING_B;
  • Fixed parse error for 64-bit constants like: 1000000000000000ULL
  • Fixed indentation of braces { ... } for nested blocks of array initializers.
  • Fixed a grammar bug for the typename keyword in variable declarations.
  • Ternary conditions used as direct statements: condition ? callFunctionA() : callFunctionB(); threw parse error. This is fixed.
  • Improved comment handling inside array initializers.
  • Insertion of braces { ... } into single for, while, do-while and if-else statements combined with preprocessor directives could create an inconsistence output. This is fixed.
  • Insertion of parentheses ( ... ) into ternary expressions combined with preprocessor directives could create an inconsistence output. This is fixed.


Jindent Customizer:
Bugfixes:
  • Fixed preview files of the whites spaces section of the C/C++ formatter.

Jindent 4.2.0 released

on .

Java Formatter:
New features:
  • Added support for the new Java 7 language features:
    • Binary literals
    • Underscores in binary and numeric literals
    • Strings in switch statements
    • Type inference for generic instance creation (diamond)
    • The try-with-resources statement
    • Catching multiple exception types
  • Added support for reading UTF-8 encoded source files with bom.


C/C++ Formatter:
New features:
  • Completely new support for preprocessor directives, especially for #if #else directives. Jindent is now able to handle all kind of complex #if #else combinations.
  • Added some new blank line settings to control preprocessor directives.
  • Added support for reading UTF-8 encoded source files with bom.
Bugfixes:
  • Fixed a lot of grammar issues.


Jindent Customizer:
Bugfixes:
  • Modifying of input/output encoding did not work properly. Encoding was sometimes changed back to default system encoding. This is fixed.


Jindent Netbeans Plugin:
Added new support for Netbeans 7


Jindent Eclipse:
Added new support for Eclipse 3.7