.. Copyright (C) 2005 - 2014 Eric Van Dewoestine This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . .. _\:Validate_java: Java Validation / Correction ============================ Validation ---------- When saving a java source file that resides in a project, eclim will update that source file in Eclipse and will report any validation errors found. Any errors will be placed in the current window's location list (:help location-list) and the corresponding lines in the source file will be marked via Vim's :sign functionality with '>>' markers in the left margin. Automatic validation of java source files can be disabled via the **g:EclimJavaValidate** variable (described below). If you choose to disable automatic validation, you can still use the **:Validate** command to manually validate the current file. Configuration ^^^^^^^^^^^^^ :doc:`Vim Settings ` .. _g\:EclimJavaValidate: - **g:EclimJavaValidate** (Default: 1) - If set to 0, disables source code validation. .. include:: /vim/validation.rst :start-after: begin-disable :end-before: end-disable - **g:EclimValidateSortResults** (Default: 'occurrence') - If set to 'severity', the validation results will be sorted by severity (errors > warnings > info > etc.) Eclim settings .. _org.eclipse.jdt.core.compiler.source: - **org.eclipse.jdt.core.compiler.source** - Determines the target java vm version (1.2, 1.3, 1.4, 1.5). .. _\:JavaCorrect: Code Correction --------------- Code correction in eclim is equivalent to the quick fix functionality of Eclipse. When you save a java source file, eclim :doc:`validates ` the file and notes which lines contain errors. To have eclim suggest possible corrections for an error, you simply place the cursor on the error line and issue **:JavaCorrect**. The result will be a small window opened at the bottom of Vim where any correction proposals will be noted. To apply a suggested change, simply move the cursor to the line describing the modification and hit . Upon doing so, the change will be applied to the source file. Example output of **:JavaCorrect**. :: The serializable class Foo does not declare a static final serialVersionUID field of type long 0.1227: Add @SuppressWarnings 'serial' to 'Foo' ... @SuppressWarnings("serial") public class Foo implements Serializable ... To apply the above change you would hit on the line\: :: 0.1227: Add @SuppressWarnings 'serial' to 'Foo' .. note:: Java code corrections are handled just like a :doc:`refactoring ` so the :ref:`RefactorUndo <:RefactorUndo>` and :ref:`RefactorRedo <:RefactorRedo>` commands can be used to undo/redo corrections that can't be handled by vim's undo (like file moves). .. _\:Checkstyle: Checkstyle ---------- When editing a java source file, eclim provides the command **:Checkstyle** which will invoke `checkstyle`_ on the current file. Additionally, you can configure eclim to execute checkstyle automatically when you save a java source file by setting the eclim project settings **org.eclim.java.checkstyle.onvalidate** to true. Please note that both methods of invoking checkstyle require that you first configure the location of your checkstyle config file using the eclim setting **org.eclim.java.checkstyle.config**, described in the configuration section below. Configuration ^^^^^^^^^^^^^ :doc:`Eclim Settings ` .. _org.eclim.java.checkstyle.config: - **org.eclim.java.checkstyle.config** - Defines the location (project relative or absolute) or your checkstyle config file. .. _org.eclim.java.checkstyle.properties: - **org.eclim.java.checkstyle.properties** - Defines the location (project relative or absolute) or your checkstyle properties file. .. _org.eclim.java.checkstyle.onvalidate: - **org.eclim.java.checkstyle.onvalidate** - When set to true, checkstyle will be run on the file along with the regular java validation upon writing the file. .. _checkstyle: http://checkstyle.sourceforge.net/