diff options
| author | William Boman <william@redwill.se> | 2021-09-21 23:37:54 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-21 23:37:54 +0200 |
| commit | a75b8df21dd7e51d6f1af0d6d55308f291ec47e3 (patch) | |
| tree | 3bb2fb117f1dc9d8dafddbeeb74bb217c9d23b72 /lua | |
| parent | ansiblels: fix install when having older npm version installed (diff) | |
| download | mason-a75b8df21dd7e51d6f1af0d6d55308f291ec47e3.tar mason-a75b8df21dd7e51d6f1af0d6d55308f291ec47e3.tar.gz mason-a75b8df21dd7e51d6f1af0d6d55308f291ec47e3.tar.bz2 mason-a75b8df21dd7e51d6f1af0d6d55308f291ec47e3.tar.lz mason-a75b8df21dd7e51d6f1af0d6d55308f291ec47e3.tar.xz mason-a75b8df21dd7e51d6f1af0d6d55308f291ec47e3.tar.zst mason-a75b8df21dd7e51d6f1af0d6d55308f291ec47e3.zip | |
add jdtls (#94)
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/nvim-lsp-installer/servers/init.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/jdtls/init.lua | 51 |
2 files changed, 52 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua index 9a7a8045..bbeed678 100644 --- a/lua/nvim-lsp-installer/servers/init.lua +++ b/lua/nvim-lsp-installer/servers/init.lua @@ -61,6 +61,7 @@ local CORE_SERVERS = Data.set_of { "hls", "html", "intelephense", + "jdtls", "jedi_language_server", "jsonls", "kotlin_language_server", diff --git a/lua/nvim-lsp-installer/servers/jdtls/init.lua b/lua/nvim-lsp-installer/servers/jdtls/init.lua new file mode 100644 index 00000000..3f250387 --- /dev/null +++ b/lua/nvim-lsp-installer/servers/jdtls/init.lua @@ -0,0 +1,51 @@ +local server = require "nvim-lsp-installer.server" +local path = require "nvim-lsp-installer.path" +local std = require "nvim-lsp-installer.installers.std" +local platform = require "nvim-lsp-installer.platform" +local Data = require "nvim-lsp-installer.data" + +return function(name, root_dir) + local function get_cmd(workspace_name) + local executable = vim.env.JAVA_HOME and path.concat { vim.env.JAVA_HOME, "bin", "java" } or "java" + return { + platform.is_win and ("%s.exe"):format(executable) or executable, + "-Declipse.application=org.eclipse.jdt.ls.core.id1", + "-Dosgi.bundles.defaultStartLevel=4", + "-Declipse.product=org.eclipse.jdt.ls.core.product", + "-Dlog.protocol=true", + "-Dlog.level=ALL", + "-Xms1g", + "-Xmx2G", + "-jar", + vim.fn.expand(path.concat { root_dir, "plugins", "org.eclipse.equinox.launcher_*.jar" }), + "-configuration", + path.concat { + root_dir, + Data.coalesce( + Data.when(platform.is_mac, "config_mac"), + Data.when(platform.is_linux, "config_linux"), + Data.when(platform.is_win, "config_windows") + ), + }, + "-data", + workspace_name, + "--add-modules=ALL-SYSTEM", + "--add-opens", + "java.base/java.util=ALL-UNNAMED", + "--add-opens", + "java.base/java.lang=ALL-UNNAMED", + } + end + + return server.Server:new { + name = name, + root_dir = root_dir, + installer = { + std.untargz_remote "https://download.eclipse.org/jdtls/snapshots/jdt-language-server-latest.tar.gz", + std.download_file("https://projectlombok.org/downloads/lombok.jar", "lombok.jar"), + }, + default_options = { + cmd = get_cmd(vim.env.WORKSPACE and vim.env.WORKSPACE or path.concat { vim.env.HOME, "workspace" }), + }, + } +end |
