diff options
| author | Hirokazu Hata <h.hata.ai.t@gmail.com> | 2020-09-06 17:49:21 +0900 |
|---|---|---|
| committer | Hirokazu Hata <h.hata.ai.t@gmail.com> | 2020-09-06 17:49:21 +0900 |
| commit | ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de (patch) | |
| tree | c301c7a765535dcb5387d76cc71e28d845dcce23 /lua/nvim_lsp/jdtls.lua | |
| parent | Merge pull request #238 from steelsojka/angular-ls (diff) | |
| download | nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar.gz nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar.bz2 nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar.lz nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar.xz nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.tar.zst nvim-lspconfig-ddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de.zip | |
Rename nvim_lsp to lspconfig
Diffstat (limited to 'lua/nvim_lsp/jdtls.lua')
| -rw-r--r-- | lua/nvim_lsp/jdtls.lua | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/lua/nvim_lsp/jdtls.lua b/lua/nvim_lsp/jdtls.lua deleted file mode 100644 index ed0f022d..00000000 --- a/lua/nvim_lsp/jdtls.lua +++ /dev/null @@ -1,138 +0,0 @@ -local configs = require 'nvim_lsp/configs' -local util = require 'nvim_lsp/util' -local callbacks = require 'vim.lsp.callbacks' -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" }; - root_dir = util.root_pattern('.git'); - init_options = { - workspace = path.join { vim.loop.os_homedir(), "workspace" }; - jvm_args = {}; - os_config = nil; - }; - callbacks = { - -- Due to an invalid protocol implementation in the jdtls we have to - -- conform these to be spec compliant. - -- https://github.com/eclipse/eclipse.jdt.ls/issues/376 - ['textDocument/codeAction'] = function(a, b, actions) - for _,action in ipairs(actions) do - -- TODO: (steelsojka) Handle more than one edit? - if action.command == 'java.apply.workspaceEdit' then - action.edit = action.arguments[1] - end - end - - callbacks['textDocument/codeAction'](a, b, actions) - 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. - ]]; - default_config = { - root_dir = [[root_pattern(".git")]]; - }; - }; -} - -configs[server_name].install = installer.install -configs[server_name].install_info = installer.info |
