aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2021-09-21 23:37:54 +0200
committerGitHub <noreply@github.com>2021-09-21 23:37:54 +0200
commita75b8df21dd7e51d6f1af0d6d55308f291ec47e3 (patch)
tree3bb2fb117f1dc9d8dafddbeeb74bb217c9d23b72 /lua
parentansiblels: fix install when having older npm version installed (diff)
downloadmason-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.lua1
-rw-r--r--lua/nvim-lsp-installer/servers/jdtls/init.lua51
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