340 lines
13 KiB
Plaintext
340 lines
13 KiB
Plaintext
===============================================================================
|
|
ALE Java Integration *ale-java-options*
|
|
|
|
|
|
===============================================================================
|
|
checkstyle *ale-java-checkstyle*
|
|
|
|
*ale-options.java_checkstyle_config*
|
|
*g:ale_java_checkstyle_config*
|
|
*b:ale_java_checkstyle_config*
|
|
java_checkstyle_config
|
|
g:ale_java_checkstyle_config
|
|
Type: |String|
|
|
Default: `'/google_checks.xml'`
|
|
|
|
A path to a checkstyle configuration file.
|
|
|
|
If a configuration file is specified with |g:ale_java_checkstyle_options|,
|
|
it will be preferred over this setting.
|
|
|
|
The path to the configuration file can be an absolute path or a relative
|
|
path. ALE will search for the relative path in parent directories.
|
|
|
|
*ale-options.java_checkstyle_executable*
|
|
*g:ale_java_checkstyle_executable*
|
|
*b:ale_java_checkstyle_executable*
|
|
java_checkstyle_executable
|
|
g:ale_java_checkstyle_executable
|
|
Type: |String|
|
|
Default: `'checkstyle'`
|
|
|
|
This variable can be changed to modify the executable used for checkstyle.
|
|
|
|
*ale-options.java_checkstyle_options*
|
|
*g:ale_java_checkstyle_options*
|
|
*b:ale_java_checkstyle_options*
|
|
java_checkstyle_options
|
|
g:ale_java_checkstyle_options
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable can be changed to modify flags given to checkstyle.
|
|
|
|
If a configuration file is specified with `-c`, it will be used instead of
|
|
configuration files set with |g:ale_java_checkstyle_config|.
|
|
|
|
|
|
===============================================================================
|
|
clang-format *ale-java-clangformat*
|
|
|
|
See |ale-c-clangformat| for information about the available options.
|
|
Note that the C options are also used for Java.
|
|
|
|
|
|
===============================================================================
|
|
cspell *ale-java-cspell*
|
|
|
|
See |ale-cspell-options|
|
|
|
|
|
|
===============================================================================
|
|
javac *ale-java-javac*
|
|
|
|
*ale-options.java_javac_classpath*
|
|
*g:ale_java_javac_classpath*
|
|
*b:ale_java_javac_classpath*
|
|
java_javac_classpath
|
|
g:ale_java_javac_classpath
|
|
Type: |String| or |List|
|
|
Default: `''`
|
|
|
|
This variable can be set to change the global classpath for Java.
|
|
|
|
*ale-options.java_javac_executable*
|
|
*g:ale_java_javac_executable*
|
|
*b:ale_java_javac_executable*
|
|
java_javac_executable
|
|
g:ale_java_javac_executable
|
|
Type: |String|
|
|
Default: `'javac'`
|
|
|
|
This variable can be set to change the executable path used for javac.
|
|
|
|
*ale-options.java_javac_options*
|
|
*g:ale_java_javac_options*
|
|
*b:ale_java_javac_options*
|
|
java_javac_options
|
|
g:ale_java_javac_options
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable can be set to pass additional options to javac.
|
|
|
|
*ale-options.java_javac_sourcepath*
|
|
*g:ale_java_javac_sourcepath*
|
|
*b:ale_java_javac_sourcepath*
|
|
java_javac_sourcepath
|
|
g:ale_java_javac_sourcepath
|
|
Type: |String| or |List|
|
|
Default: `''`
|
|
|
|
This variable can set multiple source code paths, the source code path is a
|
|
relative path (relative to the project root directory).
|
|
|
|
The source path can be set as a String with a system-dependent path
|
|
separator. Note that the Unix path separator is a colon (`:`), and on
|
|
Windows the path separator is a semicolon (`;`). >
|
|
|
|
let g:ale_java_javac_sourcepath = 'build/gen/source/xx/main:build/gen/source'
|
|
<
|
|
The source path can be set as a List so ALE will add the appropriate path
|
|
separator for the host system automatically. >
|
|
|
|
let g:ale_java_javac_sourcepath = [
|
|
\ 'build/generated/source/querydsl/main',
|
|
\ 'target/generated-sources/source/querydsl/main',
|
|
\]
|
|
<
|
|
|
|
===============================================================================
|
|
google-java-format *ale-java-google-java-format*
|
|
|
|
*ale-options.java_google_java_format_executable*
|
|
*g:ale_java_google_java_format_executable*
|
|
*b:ale_java_google_java_format_executable*
|
|
java_google_java_format_executable
|
|
g:ale_java_google_java_format_executable
|
|
Type: |String|
|
|
Default: `'google-java-format'`
|
|
|
|
See |ale-integrations-local-executables|
|
|
|
|
*ale-options.java_google_java_format_options*
|
|
*g:ale_java_google_java_format_options*
|
|
*b:ale_java_google_java_format_options*
|
|
java_google_java_format_options
|
|
g:ale_java_google_java_format_options
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable can be set to pass additional options
|
|
|
|
|
|
===============================================================================
|
|
pmd *ale-java-pmd*
|
|
|
|
*ale-options.java_pmd_options*
|
|
*g:ale_java_pmd_options*
|
|
*b:ale_java_pmd_options*
|
|
java_pmd_options
|
|
g:ale_java_pmd_options
|
|
Type: |String|
|
|
Default: `'-R category/java/bestpractices'`
|
|
|
|
This variable can be changed to modify flags given to PMD. Do not specify -f
|
|
and -d. They are added automatically.
|
|
|
|
|
|
===============================================================================
|
|
javalsp *ale-java-javalsp*
|
|
|
|
To enable Java LSP linter you need to download and build the vscode-javac
|
|
language server from https://github.com/georgewfraser/java-language-server.
|
|
|
|
Before building the language server you need to install pre-requisites: npm,
|
|
maven, and protobuf. You also need to have Java 13 and JAVA_HOME properly
|
|
set.
|
|
|
|
After downloading the source code and installing all pre-requisites you can
|
|
build the language server with the included build.sh script:
|
|
|
|
`scripts/build.sh`
|
|
|
|
This will create launch scripts for Linux, Mac, and Windows in the dist folder
|
|
within the repo:
|
|
|
|
- `lang_server_linux.sh`
|
|
- `lang_server_mac.sh`
|
|
- `lang_server_windows.sh`
|
|
|
|
To let ALE use this language server you need to set the executable, as
|
|
documented below.
|
|
|
|
*ale-options.java_javalsp_executable*
|
|
*g:ale_java_javalsp_executable*
|
|
*b:ale_java_javalsp_executable*
|
|
java_javalsp_executable
|
|
g:ale_java_javalsp_executable
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable must be set to the absolute path of the language server
|
|
launcher executable. For example: >
|
|
|
|
let g:ale_java_javalsp_executable = '/java-language-server/dist/lang_server_linux.sh'
|
|
<
|
|
*ale-options.java_javalsp_config*
|
|
*g:ale_java_javalsp_config*
|
|
*b:ale_java_javalsp_config*
|
|
java_javalsp_config
|
|
g:ale_java_javalsp_config
|
|
Type: |Dictionary|
|
|
Default: `{}`
|
|
|
|
The javalsp linter automatically detects external dependencies for Maven and
|
|
Gradle projects. In case the javalsp fails to detect some of them, you can
|
|
specify them configuring settings for the language server, such as in your
|
|
ftplugin file. >
|
|
|
|
let b:ale_java_javalsp_config = {
|
|
\ 'java': {
|
|
\ 'externalDependencies': [
|
|
\ 'junit:junit:jar:4.12:test',
|
|
\ 'junit:junit:4.1'
|
|
\ ],
|
|
\ 'classPath': [
|
|
\ 'lib/some-dependency.jar',
|
|
\ '/android-sdk/platforms/android-28.jar',
|
|
\ ],
|
|
\ },
|
|
\}
|
|
<
|
|
Or in Lua: >
|
|
|
|
require("ale").setup.buffer({
|
|
java_lsp_config = {
|
|
java = {
|
|
externalDependencies = {
|
|
"junit:junit:jar:4.12:test",
|
|
"junit:junit:4.1"
|
|
},
|
|
classPath = {
|
|
"lib/some-dependency.jar",
|
|
"/android-sdk/platforms/android-28.jar",
|
|
},
|
|
},
|
|
}
|
|
})
|
|
<
|
|
The Java language server will look for the dependencies you specify in
|
|
`externalDependencies` array in your Maven and Gradle caches ~/.m2 and
|
|
~/.gradle.
|
|
|
|
|
|
===============================================================================
|
|
eclipselsp *ale-java-eclipselsp*
|
|
|
|
To enable Eclipse JDT LSP linter you need to clone and build the eclipse.jdt.ls
|
|
language server from https://github.com/eclipse/eclipse.jdt.ls. Simply
|
|
clone the source code repo and then build the plugin:
|
|
|
|
`./mvnw clean verify`
|
|
|
|
Note: currently, the build can only run when launched with JDK 11. More
|
|
recent versions can be used to run the server though.
|
|
|
|
After build completes the files required to run the language server will be
|
|
located inside the repository folder `eclipse.jdt.ls`. Please ensure to set
|
|
|g:ale_java_eclipselsp_path| to the absolute path of that folder.
|
|
|
|
You could customize compiler options and code assists of the server.
|
|
Under your project folder, modify the file `.settings/org.eclipse.jdt.core.prefs`
|
|
with options presented at
|
|
https://help.eclipse.org/neon/topic/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/JavaCore.html.
|
|
|
|
*ale-options.java_eclipselsp_path*
|
|
*g:ale_java_eclipselsp_path*
|
|
*b:ale_java_eclipselsp_path*
|
|
java_eclipselsp_path
|
|
g:ale_java_eclipselsp_path
|
|
Type: |String|
|
|
Default: `'$HOME/eclipse.jdt.ls'`
|
|
|
|
Absolute path to the location of the eclipse.jdt.ls repository folder. Or if
|
|
you have VSCode extension installed the absolute path to the VSCode
|
|
extensions folder (e.g. $HOME/.vscode/extensions/redhat.java-0.4x.0 in
|
|
Linux).
|
|
|
|
*ale-options.java_eclipselsp_executable*
|
|
*g:ale_java_eclipselsp_executable*
|
|
*b:ale_java_eclipse_executable*
|
|
java_eclipselsp_executable
|
|
g:ale_java_eclipselsp_executable
|
|
Type: |String|
|
|
Default: `'java'`
|
|
|
|
This variable can be set to change the executable path used for java.
|
|
|
|
*ale-options.java_eclipselsp_config_path*
|
|
*g:ale_java_eclipselsp_config_path*
|
|
*b:ale_java_eclipse_config_path*
|
|
java_eclipselsp_config_path
|
|
g:ale_java_eclipselsp_config_path
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
Set this variable to change the configuration directory path used by
|
|
eclipselsp (e.g. `$HOME/.jdtls` in Linux). By default ALE will attempt to
|
|
use the configuration within the installation directory.
|
|
|
|
This setting is particularly useful when eclipselsp is installed in a
|
|
non-writable directory like `/usr/share/java/jdtls`, as is the case when
|
|
installed via system package.
|
|
|
|
*ale-options.java_eclipselsp_workspace_path*
|
|
*g:ale_java_eclipselsp_workspace_path*
|
|
*b:ale_java_eclipselsp_workspace_path*
|
|
java_eclipselsp_workspace_path
|
|
g:ale_java_eclipselsp_workspace_path
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
If you have Eclipse installed it is a good idea to set this variable to the
|
|
absolute path of the Eclipse workspace. If not set this value will be set to
|
|
the parent folder of the project root.
|
|
|
|
*ale-options.java_eclipselsp_javaagent*
|
|
*g:ale_java_eclipselsp_javaagent*
|
|
*b:ale_java_eclipselsp_javaagent*
|
|
java_eclipselsp_javaagent
|
|
g:ale_java_eclipselsp_javaagent
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
A variable to add java agent for annotation processing such as Lombok.
|
|
If you have multiple java agent files, use space to separate them.
|
|
For example: >
|
|
|
|
let g:ale_java_eclipselsp_javaagent='/eclipse/lombok.jar /eclipse/jacoco.jar'
|
|
<
|
|
|
|
===============================================================================
|
|
uncrustify *ale-java-uncrustify*
|
|
|
|
See |ale-c-uncrustify| for information about the available options.
|
|
|
|
|
|
===============================================================================
|
|
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|