vimrc/sources_non_forked/ale/doc/ale-java.txt

292 lines
10 KiB
Text
Raw Normal View History

===============================================================================
ALE Java Integration *ale-java-options*
===============================================================================
checkstyle *ale-java-checkstyle*
2019-08-22 15:36:17 +00:00
g:ale_java_checkstyle_config *g:ale_java_checkstyle_config*
*b: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.
g:ale_java_checkstyle_executable *g:ale_java_checkstyle_executable*
*b:ale_java_checkstyle_executable*
Type: |String|
2022-11-20 11:21:23 +00:00
Default: `'checkstyle'`
2019-08-22 15:36:17 +00:00
This variable can be changed to modify the executable used for checkstyle.
g:ale_java_checkstyle_options *g:ale_java_checkstyle_options*
*b:ale_java_checkstyle_options*
2019-08-22 15:36:17 +00:00
Type: |String|
Default: `''`
This variable can be changed to modify flags given to checkstyle.
2019-08-22 15:36:17 +00:00
If a configuration file is specified with `-c`, it will be used instead of
configuration files set with |g:ale_java_checkstyle_config|.
2022-12-03 10:29:32 +00:00
===============================================================================
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.
2022-08-08 13:45:56 +00:00
===============================================================================
cspell *ale-java-cspell*
See |ale-cspell-options|
===============================================================================
javac *ale-java-javac*
g:ale_java_javac_classpath *g:ale_java_javac_classpath*
*b:ale_java_javac_classpath*
2020-06-21 15:50:44 +00:00
Type: |String| or |List|
Default: `''`
This variable can be set to change the global classpath for Java.
2018-06-14 10:31:12 +00:00
g:ale_java_javac_executable *g:ale_java_javac_executable*
*b:ale_java_javac_executable*
Type: |String|
Default: `'javac'`
This variable can be set to change the executable path used for javac.
g:ale_java_javac_options *g:ale_java_javac_options*
*b:ale_java_javac_options*
Type: |String|
Default: `''`
This variable can be set to pass additional options to javac.
2020-06-21 15:50:44 +00:00
g:ale_java_javac_sourcepath *g:ale_java_javac_sourcepath*
*b: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).
Example:
String type:
Note that the unix system separator is a colon(`:`) window system
is a semicolon(`;`).
>
let g:ale_java_javac_sourcepath = 'build/gen/source/xx/main:build/gen/source'
<
List type:
>
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*
g:ale_java_google_java_format_executable
*g:ale_java_google_java_format_executable*
*b:ale_java_google_java_format_executable*
Type: |String|
Default: `'google-java-format'`
See |ale-integrations-local-executables|
g:ale_java_google_java_format_options *g:ale_java_google_java_format_options*
*b:ale_java_google_java_format_options*
Type: |String|
Default: `''`
This variable can be set to pass additional options
2018-06-14 10:31:12 +00:00
===============================================================================
pmd *ale-java-pmd*
g:ale_java_pmd_options *g:ale_java_pmd_options*
*b:ale_java_pmd_options*
2022-11-20 11:21:23 +00:00
Type: |String|
Default: `'-R category/java/bestpractices'`
2018-06-14 10:31:12 +00:00
This variable can be changed to modify flags given to PMD. Do not specify -f
and -d. They are added automatically.
2018-09-25 00:40:17 +00:00
===============================================================================
javalsp *ale-java-javalsp*
To enable Java LSP linter you need to download and build the vscode-javac
2019-03-08 11:04:56 +00:00
language server from https://github.com/georgewfraser/java-language-server.
2018-09-25 00:40:17 +00:00
2020-12-04 21:15:32 +00:00
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.
2018-09-25 00:40:17 +00:00
2020-12-04 21:15:32 +00:00
After downloading the source code and installing all pre-requisites you can
build the language server with the included build.sh script:
2019-03-08 11:04:56 +00:00
2020-12-04 21:15:32 +00:00
scripts/build.sh
2019-03-08 11:04:56 +00:00
2020-12-04 21:15:32 +00:00
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
2019-08-22 15:36:17 +00:00
g:ale_java_javalsp_executable variable to the absolute path of the launcher
2020-12-04 21:15:32 +00:00
executable for your platform.
2018-09-25 00:40:17 +00:00
2018-12-17 11:28:27 +00:00
g:ale_java_javalsp_executable *g:ale_java_javalsp_executable*
*b:ale_java_javalsp_executable*
Type: |String|
2019-08-22 15:36:17 +00:00
Default: `''`
2018-12-17 11:28:27 +00:00
2019-08-22 15:36:17 +00:00
This variable must be set to the absolute path of the language server launcher
executable. For example:
>
2020-12-04 21:15:32 +00:00
let g:ale_java_javalsp_executable=/java-language-server/dist/lang_server_linux.sh
2019-08-22 15:36:17 +00:00
<
g:ale_java_javalsp_config *g:ale_java_javalsp_config*
*b:ale_java_javalsp_config*
Type: |Dictionary|
Default: `{}`
2022-11-20 11:21:23 +00:00
The javalsp linter automatically detects external dependencies for Maven and
2019-08-22 15:36:17 +00:00
Gradle projects. In case the javalsp fails to detect some of them, you can
specify them setting a dictionary to |g:ale_java_javalsp_config| variable.
>
2020-12-04 21:15:32 +00:00
let g:ale_java_javalsp_config =
2019-08-22 15:36:17 +00:00
\ {
\ 'java': {
\ 'externalDependencies': [
\ 'junit:junit:jar:4.12:test', " Maven format
\ 'junit:junit:4.1' " Gradle format
\ ],
\ '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.
2018-09-25 00:40:17 +00:00
2022-08-08 13:45:56 +00:00
2019-05-17 14:09:13 +00:00
===============================================================================
eclipselsp *ale-java-eclipselsp*
2021-07-30 20:52:54 +00:00
To enable Eclipse JDT LSP linter you need to clone and build the eclipse.jdt.ls
2019-05-17 14:09:13 +00:00
language server from https://github.com/eclipse/eclipse.jdt.ls. Simply
clone the source code repo and then build the plugin:
./mvnw clean verify
2021-07-30 20:52:54 +00:00
Note: currently, the build can only run when launched with JDK 11. More
2019-05-17 14:09:13 +00:00
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.
2019-08-22 15:36:17 +00:00
Under your project folder, modify the file `.settings/org.eclipse.jdt.core.prefs`
2019-05-17 14:09:13 +00:00
with options presented at
https://help.eclipse.org/neon/topic/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/JavaCore.html.
g:ale_java_eclipselsp_path *g:ale_java_eclipselsp_path*
*b: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
2022-08-08 13:45:56 +00:00
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).
2019-05-17 14:09:13 +00:00
g:ale_java_eclipselsp_executable *g:ale_java_eclipse_executable*
*b:ale_java_eclipse_executable*
Type: |String|
Default: `'java'`
This variable can be set to change the executable path used for java.
2019-08-22 15:36:17 +00:00
g:ale_java_eclipselsp_config_path *g:ale_java_eclipse_config_path*
*b:ale_java_eclipse_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.
g:ale_java_eclipselsp_workspace_path *g:ale_java_eclipselsp_workspace_path*
*b:ale_java_eclipselsp_workspace_path*
Type: |String|
Default: `''`
2024-01-07 15:14:20 +00:00
If you have Eclipse installed it is a good idea to set this variable to the
2019-08-22 15:36:17 +00:00
absolute path of the Eclipse workspace. If not set this value will be set to
the parent folder of the project root.
2020-06-21 15:50:44 +00:00
g:ale_java_eclipselsp_javaagent *g:ale_java_eclipselsp_javaagent*
*b:ale_java_eclipselsp_javaagent*
Type: |String|
Default: `''`
A variable to add java agent for annotation processing such as Lombok.
2022-08-08 13:45:56 +00:00
If you have multiple java agent files, use space to separate them.
For example:
2020-06-21 15:50:44 +00:00
>
let g:ale_java_eclipselsp_javaagent='/eclipse/lombok.jar /eclipse/jacoco.jar'
<
2019-08-22 15:36:17 +00:00
2018-09-25 00:40:17 +00:00
===============================================================================
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: