jdtls

URL: https://github.com/eclipse/eclipse.jdt.ls

plugins.lsp.servers.jdtls.enable

Whether to enable https://projects.eclipse.org/projects/eclipse.jdt.ls

Language server for Java.

IMPORTANT: If you want all the features jdtls has to offer, nvim-jdtls is highly recommended. If all you need is diagnostics, completion, imports, gotos and formatting and some code actions you can keep reading here.

For manual installation you can download precompiled binaries from the official downloads site and ensure that the PATH variable contains the bin directory of the extracted archive.

  -- init.lua
  require'lspconfig'.jdtls.setup{}

You can also pass extra custom jvm arguments with the JDTLS_JVM_ARGS environment variable as a space separated list of arguments, that will be converted to multiple --jvm-arg=<param> args when passed to the jdtls script. This will allow for example tweaking the jvm arguments or integration with external tools like lombok:

export JDTLS_JVM_ARGS="-javaagent:$HOME/.local/share/java/lombok.jar"

For automatic installation you can use the following unofficial installers/launchers under your own risk:

  • jdtls-launcher (Includes lombok support by default)

      -- init.lua
      require'lspconfig'.jdtls.setup{ cmd = { 'jdtls' } }
    

    .

Type: boolean

Default: false

Example: true

Declared by:

plugins.lsp.servers.jdtls.package

The jdtls package to use.

Type: null or package

Default: pkgs.jdt-language-server

Declared by:

plugins.lsp.servers.jdtls.autostart

Controls if the FileType autocommand that launches a language server is created. If false, allows for deferring language servers until manually launched with :LspStart (|lspconfig-commands|).

Type: null or boolean or raw lua code

Default: null

Plugin default: true

Declared by:

plugins.lsp.servers.jdtls.cmd

A list where each entry corresponds to the blankspace delimited part of the command that launches the server.

The first entry is the binary used to run the language server. Additional entries are passed as arguments.

Type: null or (list of string)

Default: null

Declared by:

plugins.lsp.servers.jdtls.extraOptions

Extra options for the jdtls language server.

Type: attribute set of anything

Default: { }

Declared by:

plugins.lsp.servers.jdtls.filetypes

Set of filetypes for which to attempt to resolve {root_dir}. May be empty, or server may specify a default value.

Type: null or (list of string)

Default: null

Declared by:

plugins.lsp.servers.jdtls.rootDir

A function (or function handle) which returns the root of the project used to determine if lspconfig should launch a new language server, or attach a previously launched server when you open a new buffer matching the filetype of the server.

Type: null or lua function string

Default: null

Plugin default: "nil"

Declared by:

plugins.lsp.servers.jdtls.settings

The settings for this LSP.

Type: attribute set of anything

Default: { }

Example:

{
  callback = {
    __raw = ''
      function()
        print('nixvim')
      end
    '';
  };
  foo_bar = 42;
  hostname = "localhost:8080";
}

Declared by: