aboutsummaryrefslogtreecommitdiffstats
path: root/lua/lspconfig/jdtls.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lspconfig/jdtls.lua')
-rw-r--r--lua/lspconfig/jdtls.lua97
1 files changed, 2 insertions, 95 deletions
diff --git a/lua/lspconfig/jdtls.lua b/lua/lspconfig/jdtls.lua
index 0c900593..85440946 100644
--- a/lua/lspconfig/jdtls.lua
+++ b/lua/lspconfig/jdtls.lua
@@ -5,93 +5,6 @@ local path = util.path
local server_name = "jdtls"
-local function make_installer()
- local install_dir = path.join { util.base_install_dir, server_name }
- local tar_name = "jdt-language-server-latest.tar.gz"
- local script = string.format([[
- curl -LO http://download.eclipse.org/jdtls/snapshots/%s > %s
- tar xf %s
- ]], tar_name, tar_name, tar_name)
- local launcher_ls = "ls " .. path.join { install_dir, "plugins", "org.eclipse.equinox.launcher_*.jar" }
-
- local X = {}
-
- function X.install()
- if not util.has_bins("curl", "tar") then
- error('Need the binaries "curl", "tar" to install this.')
- return
- end
-
- vim.fn.mkdir(install_dir, "p")
- util.sh(script, install_dir)
- end
-
- function X.info()
- return {
- is_installed = util.path.exists(install_dir, 'features') ~= false;
- install_dir = install_dir;
- }
- end
-
- function X.get_os_config()
- if vim.fn.has("osx") == 1 then
- return "config_mac"
- elseif vim.fn.has("unix") == 1 then
- return "config_linux"
- else
- return "config_win"
- end
- end
-
- function X.get_launcher()
- local file = io.popen(launcher_ls)
- local results = {}
-
- for line in file:lines() do
- table.insert(results, line)
- end
-
- if #results == 1 then
- return results[1]
- end
-
- error("Could not find launcher for jdtls.")
- end
-
- function X.configure(config)
- local install_info = X.info()
- local launcher_path = X.get_launcher()
-
- if install_info.is_installed then
- config.cmd = vim.list_extend(
- vim.list_extend(
- {
- "java",
- "-Declipse.application=org.eclipse.jdt.ls.core.id1",
- "-Dosgi.bundles.defaultStartLevel=4",
- "-Declipse.product=org.eclipse.jdt.ls.core.product",
- "-Dlog.level=ALL",
- "-noverify",
- "-Xmx1G",
- },
- config.init_options.jvm_args),
- {
- "-jar", launcher_path,
- "-configuration", path.join { install_dir, config.init_options.os_config or X.get_os_config() },
- "-data", config.init_options.workspace,
- -- TODO: Handle Java versions 8 and under. This may just work...
- "--add-modules=ALL-SYSTEM",
- "--add-opens", "java.base/java.util=ALL-UNNAMED",
- "--add-opens", "java.base/java.lang=ALL-UNNAMED"
- })
- end
- end
-
- return X
-end
-
-local installer = make_installer()
-
configs[server_name] = {
default_config = {
filetypes = { "java" };
@@ -127,22 +40,16 @@ configs[server_name] = {
end
};
};
- on_new_config = function(config)
- installer.configure(config)
- end;
docs = {
description = [[
https://projects.eclipse.org/projects/eclipse.jdt.ls
-Language server can be installed with `:LspInstall jdtls`
-
Language server for Java.
+
+See project page for installation instructions.
]];
default_config = {
root_dir = [[root_pattern(".git")]];
};
};
}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info