News

Jindent 5.0.3 released

on .

Java/C/C++ Formatter:
Bugfixes:
  • Using JRE 9 the license registration UI and all language parsers threw UnsatisfiedLinkError. This is fixed now.


Jindent IntelliJ IDEA Plugin:
Bugfixes:
  • Enabling the optimize import features threw exception Write-unsafe context! Model changes are allowed from write-safe contexts only. This is fixed now.
  • Fixed UI bug for settings screen: The source preview pane gained too much space.


Jindent Netbeans Plugin:
Bugfixes:
  • Added support for Netbeans 9
  • Jindent plugin for Netbeans 8 threw NoClassDefFoundError: jindent/customizer/swing/javahelp/invoker/HelpIdInvoker . This is fixed now.


Jindent Eclipse Plugin:
Bugfixes:
  • Jindent Eclipse plugin did not work on pure CDT environments. This is fixed now.

Jindent 5.0.2 released

on .

C Formatter:
Bugfix:
  • Improved messages for C header parsing errors.


C++ Formatter:
Bugfix:
  • Improved messages for C++ header parsing errors.


Jindent Customizer:
Bugfix:
  • All sorting trees are disappeared, this bug is fixed now.


Jindent Eclipse Plugin:
Bugfix:
  • Added support for Eclipse Photon and previous.
  • Jindent's Eclipse plugin crashed on new versions of Eclipse's IDEs while embedding Jindent's Swing preferences. This was caused by a bug in the AWT-SWT bridge, to finally fix this problem for all operating systems and IDE versions we decided to completely reimplement Jindent's Eclipse plugin in SWT/JFace. The new UI of the Jindent plugin works much faster now and is highly integrated into Eclipse's widgets without any flickering.


Jindent Netbeans Plugin:
Bugfixes:
  • Added support for Netbeans 8.2 and previous.


Jindent IntelliJ IDEA Plugin:
Bugfixes:
  • Added support for IntelliJ IDEA 2018 and previous.
  • When invoking Jindent plugin from latest IntelliJ IDEA version, the IDE reports the error: Model changes are allowed from write-safe contexts only. This is fixed.
  • Enabling Automatic format source files before saving editor content occasionally deleted new edited lines while formatting at save time.

Jindent 5.0.1 released

on .

Java Formatter:
Bugfixes:
  • Fixed performance issue while parsing nested method calls.
  • Fixed bug for insertions of empty lines before right braces }.
  • Fixed parsing error for annotation type declarations within interfaces.


Jindent Customizer:
Bugfix:
  • Improved performance of initial creation of UI panels.


C Formatter:
Bugfixes:
  • Fixed bug which deletes JavaDoc-like Doxygen comments.
  • Fixed bug which does not align Doxygen end-of-line comments.
  • Fixed insertion of unexpected blank line after Doxygen comments.
  • Fixed incorrect validation exception Tokens of input and output source code do not match..
  • Fixed bug for insertions of empty lines before right braces }.


C++ Formatter:
Bugfixes:
  • Fixed bug which deletes JavaDoc-like Doxygen comments.
  • Fixed bug which does not align Doxygen end-of-line comments.
  • Fixed insertion of unexpected blank line after Doxygen comments.
  • Fixed incorrect validation exception Tokens of input and output source code do not match..
  • Fixed grammar bug for scopes in typedef declarations.
  • Fixed bug for insertions of empty lines before right braces }.


Jindent Netbeans Plugin:
Bugfixes:
  • Removed unnecessary dependencies to Netbeans' Java modules from Netbeans plugin. Now it works in pure C/C++ environment.
  • Recompiled module to support Java 1.6 and later.
  • Added backward compability for Netbeans 8.0.


Jindent IntelliJ IDEA Plugin:
Bugfixes:
  • Added support for IntelliJ IDEA 2016.
  • Recompiled module to support Java 1.6 and later.
  • Automatic invocation of 'optimize imports' from Jindent did not work anymore, this is fixed now.


Jindent 5.0.0 released

on .

Java Formatter:
New features:
  • Added support for the new Java 8 language features:
    • Lambda Expressions
    • Method references
    • Default methods
    • Repeating Annotations
    • Improved type inference
  • Added new sorting options to group import declarations.
  • Added new sorting options to group getter and setter methods for bean attributes.
  • Added a lot of new line wrapping settings to improve formatting of builder patterns and fluent interfaces:
    • Added new line wrapping settings always, if line exceeds and never to wrap and indent boolean conditions for && and ||.
    • New line wrapping and alignment of chained method calls.
    • New line wrapping and alignment of nested method calls.
  • Added setting to enable/disable creations of JavaDoc comments for methods marked by @Override annotations.
Bugfixes:
  • Fixed memory leak for very large files creating a lot of warning issues.
  • 'Maximal gap' settings were not ignored for 'wrapping initializers to the right side'. This is fixed now.
  • Fixed 'shifted' formatting output for code lines forced to be wrapped by comments.


C Formatter:
New features:
  • Added new formatting setting to indent preprocessor directives relatively to the corresponding source code.
  • Added new formatting settings to get more control about line wrapping of nested method calls.
  • Added settings to format and delete Doxygen comments.
Bugfixes:
  • Fixed grammar bug for types used as macro parameters.
  • Fixed memory leak for very large files creating a lot of warning issues.
  • Fixed 'shifted' formatting output for code lines forced to be wrapped by comments.


C++ Formatter:
New features:
  • Added new setting to indent preprocessor directives relatively to the corresponding source code.
  • Added new setting to enable/disable indentation of namespaces.
  • Added support for QT keywords signals and slots.
  • Added new formatting settings to get more control about line wrapping of nested method calls.
  • Added settings to format and delete Doxygen comments.
Bugfixes:
  • Fixed grammar bug for types used as macro parameters.
  • Fixed alignment of assigned enum constants
  • Fixed memory leak for very large files creating a lot of warning issues.
  • Fixed 'shifted' formatting output for code lines forced to be wrapped by comments.


Jindent Customizer:
New features:
  • Added tooltips with detailed descriptions to sorting trees.
  • Removed tab sections and added new sub nodes to the settings tree control.


Jindent Eclipse Plugin:
New features:
  • Added support for the latest Eclipse releases 4.3.x (Kepler), 4.4.x (Luna) and 4.5.x (Mars)
  • Moved storing of Jindent settings from user's home folder to Eclipse's workspace location.


Jindent Netbeans Plugin:
Bugfixes:
  • Added support for Netbeans 8.1
  • Fixed deadlock bug when triggering format-on-save events.
  • Fixed flickering of editor content update.
  • Formatting now preserves breakpoints.


Jindent JDeveloper Plugin:
Added support for JDeveloper up to 11.1.2.4.0


Jindent IntelliJ IDEA Plugin:
New features:
  • Added support for IntelliJ IDEA 14
  • Added 'format on save' support
Bugfixes:
  • Fixed colors of Jindent's reporting panel and syntax highlighting to work properly with 'Darcula' theme.


JavaHelp System:
Bugfix:
  • Fixed opening of JavaHelp dialog on right multi-user screen.

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.