aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim_lsp
diff options
context:
space:
mode:
authorHirokazu Hata <h.hata.ai.t@gmail.com>2020-09-06 17:49:21 +0900
committerHirokazu Hata <h.hata.ai.t@gmail.com>2020-09-06 17:49:21 +0900
commitddcd9e6aae50d6397e43e4fc9ba0cf7a82cc79de (patch)
treec301c7a765535dcb5387d76cc71e28d845dcce23 /lua/nvim_lsp
parentMerge pull request #238 from steelsojka/angular-ls (diff)
downloadnvim-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')
-rwxr-xr-xlua/nvim_lsp/als.lua104
-rw-r--r--lua/nvim_lsp/angularls.lua72
-rw-r--r--lua/nvim_lsp/bashls.lua44
-rw-r--r--lua/nvim_lsp/ccls.lua24
-rw-r--r--lua/nvim_lsp/clangd.lua60
-rw-r--r--lua/nvim_lsp/clojure_lsp.lua22
-rwxr-xr-xlua/nvim_lsp/cmake.lua25
-rw-r--r--lua/nvim_lsp/codeqlls.lua52
-rw-r--r--lua/nvim_lsp/configs.lua214
-rw-r--r--lua/nvim_lsp/cssls.lua56
-rw-r--r--lua/nvim_lsp/dartls.lua55
-rw-r--r--lua/nvim_lsp/diagnosticls.lua45
-rw-r--r--lua/nvim_lsp/dockerls.lua47
-rw-r--r--lua/nvim_lsp/efm.lua25
-rw-r--r--lua/nvim_lsp/elixirls.lua110
-rw-r--r--lua/nvim_lsp/elmls.lua72
-rw-r--r--lua/nvim_lsp/flow.lua30
-rw-r--r--lua/nvim_lsp/fortls.lua25
-rw-r--r--lua/nvim_lsp/gdscript.lua22
-rw-r--r--lua/nvim_lsp/ghcide.lua24
-rw-r--r--lua/nvim_lsp/gopls.lua23
-rw-r--r--lua/nvim_lsp/health.lua26
-rw-r--r--lua/nvim_lsp/hie.lua38
-rw-r--r--lua/nvim_lsp/hls.lua24
-rw-r--r--lua/nvim_lsp/html.lua54
-rw-r--r--lua/nvim_lsp/intelephense.lua68
-rw-r--r--lua/nvim_lsp/jdtls.lua138
-rw-r--r--lua/nvim_lsp/jedi_language_server.lua22
-rw-r--r--lua/nvim_lsp/jsonls.lua51
-rw-r--r--lua/nvim_lsp/julials.lua66
-rw-r--r--lua/nvim_lsp/kotlin_language_server.lua52
-rw-r--r--lua/nvim_lsp/leanls.lua22
-rw-r--r--lua/nvim_lsp/metals.lua106
-rw-r--r--lua/nvim_lsp/nimls.lua45
-rw-r--r--lua/nvim_lsp/ocamlls.lua45
-rw-r--r--lua/nvim_lsp/ocamllsp.lua26
-rw-r--r--lua/nvim_lsp/omnisharp.lua84
-rw-r--r--lua/nvim_lsp/purescriptls.lua46
-rw-r--r--lua/nvim_lsp/pyls.lua23
-rw-r--r--lua/nvim_lsp/pyls_ms.lua153
-rw-r--r--lua/nvim_lsp/r_language_server.lua30
-rw-r--r--lua/nvim_lsp/rls.lua31
-rw-r--r--lua/nvim_lsp/rnix.lua81
-rw-r--r--lua/nvim_lsp/rome.lua37
-rw-r--r--lua/nvim_lsp/rust_analyzer.lua27
-rw-r--r--lua/nvim_lsp/scry.lua24
-rw-r--r--lua/nvim_lsp/solargraph.lua32
-rw-r--r--lua/nvim_lsp/sourcekit.lua22
-rw-r--r--lua/nvim_lsp/sqlls.lua52
-rw-r--r--lua/nvim_lsp/sumneko_lua.lua133
-rw-r--r--lua/nvim_lsp/terraformls.lua23
-rw-r--r--lua/nvim_lsp/texlab.lua85
-rw-r--r--lua/nvim_lsp/tsserver.lua50
-rw-r--r--lua/nvim_lsp/util.lua445
-rw-r--r--lua/nvim_lsp/vimls.lua63
-rw-r--r--lua/nvim_lsp/vuels.lua125
-rw-r--r--lua/nvim_lsp/yamlls.lua47
57 files changed, 0 insertions, 3547 deletions
diff --git a/lua/nvim_lsp/als.lua b/lua/nvim_lsp/als.lua
deleted file mode 100755
index 60605718..00000000
--- a/lua/nvim_lsp/als.lua
+++ /dev/null
@@ -1,104 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-local server_name = 'als'
-local bin_name = 'ada_language_server'
-
-if vim.fn.has('win32') == 1 then
- bin_name = 'ada_language_server.exe'
-end
-
-local function make_installer()
- local install_dir = util.path.join{util.base_install_dir, server_name}
-
- local url = 'https://dl.bintray.com/reznikmm/ada-language-server/linux-latest.tar.gz'
- local download_target = util.path.join{install_dir, "als.tar.gz"}
- local extracted_dir = "linux"
- local extract_cmd = string.format("tar -xzf '%s' --one-top-level='%s'", download_target, install_dir)
-
- if vim.fn.has('win32') == 1 then
- url = 'https://dl.bintray.com/reznikmm/ada-language-server/win32-latest.zip'
- download_target = util.path.join{install_dir, 'win32-latest.zip'}
- extracted_dir = 'win32'
- extract_cmd = string.format("unzip -o '%s' -d '%s'", download_target, install_dir)
- elseif vim.fn.has('mac') == 1 then
- url = 'https://dl.bintray.com/reznikmm/ada-language-server/darwin-latest.tar.gz'
- download_target = util.path.join{install_dir, 'darwin-latest.tar.gz'}
- extracted_dir = 'darwin'
- extract_cmd = string.format("tar -xzf '%s' --one-top-level='%s'", download_target, install_dir)
- end
-
- local download_cmd = string.format('curl -fLo "%s" --create-dirs "%s"', download_target, url)
-
- local bin_path = util.path.join{install_dir, extracted_dir, bin_name}
- local X = {}
- function X.install()
- local install_info = X.info()
- if install_info.is_installed then
- print(server_name, "is already installed")
- return
- end
- if not (util.has_bins("curl")) then
- error('Need "curl" to install this.')
- return
- end
- vim.fn.mkdir(install_dir, 'p')
- vim.fn.system(download_cmd)
- vim.fn.system(extract_cmd)
- end
- function X.info()
- return {
- is_installed = util.path.exists(bin_path);
- install_dir = install_dir;
- cmd = { bin_path };
- }
- end
- function X.configure(config)
- local install_info = X.info()
- if install_info.is_installed then
- config.cmd = install_info.cmd
- end
- end
- return X
-end
-
-local installer = make_installer()
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name};
- filetypes = {"ada"};
- -- *.gpr and *.adc would be nice to have here
- root_dir = util.root_pattern("Makefile", ".git");
- };
- on_new_config = function(config)
- installer.configure(config)
- end;
- docs = {
- package_json = "https://raw.githubusercontent.com/AdaCore/ada_language_server/master/integration/vscode/ada/package.json";
- description = [[
-https://github.com/AdaCore/ada_language_server
-
-Ada language server. Use `LspInstall als` to install it.
-
-Can be configured by passing a "settings" object to `als.setup{}`:
-
-```lua
-require('nvim_lsp').als.setup{
- settings = {
- ada = {
- projectFile = "project.gpr";
- scenarioVariables = { ... };
- }
- }
-}
-```
-]];
- default_config = {
- root_dir = [[util.root_pattern("Makefile", ".git")]];
- };
- };
-};
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/angularls.lua b/lua/nvim_lsp/angularls.lua
deleted file mode 100644
index 88006f62..00000000
--- a/lua/nvim_lsp/angularls.lua
+++ /dev/null
@@ -1,72 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = 'angularls'
-local bin_name = server_name
-local install_loc = util.base_install_dir .. '/' .. server_name
-local script_loc = install_loc .. '/node_modules/@angular/language-server/index.js'
-local bin_loc = install_loc .. '/node_modules/.bin/angularls'
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { '@angular/language-server' };
- binaries = { bin_name };
- -- angular-language-service doesn't expose a binary, so we create an execution wrapper.
- post_install_script =
- 'echo "#! /bin/sh\n' .. 'node ' .. script_loc .. ' \\$*' .. '" > ' .. bin_loc .. '\n' ..
- 'chmod +x ' .. bin_loc;
-}
-
--- Angular requires a node_modules directory to probe for @angular/language-service and typescript
--- in order to use your projects configured versions.
--- This defaults to the vim cwd, but will get overwritten by the resolved root of the file.
-local function get_probe_dir(root_dir)
- local project_root = util.find_node_modules_ancestor(root_dir)
-
- return project_root and (project_root .. '/node_modules') or ''
-end
-
-local default_probe_dir = get_probe_dir(vim.fn.getcwd())
-
-configs[server_name] = {
- default_config = {
- cmd = {
- bin_loc,
- '--stdio',
- '--tsProbeLocations', default_probe_dir,
- '--ngProbeLocations', default_probe_dir
- };
- filetypes = {'typescript', 'html', 'typescriptreact', 'typescript.tsx'};
- -- Check for angular.json or .git first since that is the root of the project.
- -- Don't check for tsconfig.json or package.json since there are multiple of these
- -- in an angular monorepo setup.
- root_dir = util.root_pattern('angular.json', '.git');
- };
- on_new_config = function(new_config, new_root_dir)
- local new_probe_dir = get_probe_dir(new_root_dir)
-
- -- We need to check our probe directories because they may have changed.
- new_config.cmd = {
- bin_loc,
- '--stdio',
- '--tsProbeLocations', new_probe_dir,
- '--ngProbeLocations', new_probe_dir
- }
- end;
- docs = {
- description = [[
-https://github.com/angular/vscode-ng-language-service
-
-`angular-language-server` can be installed via `:LspInstall angularls`
-
-If you prefer to install this yourself you can through npm `npm install @angular/language-server`.
-Be aware there is no global binary and must be run via `node_modules/@angular/language-server/index.js`
- ]];
- default_config = {
- root_dir = [[root_pattern("angular.json", ".git")]];
- };
- }
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
diff --git a/lua/nvim_lsp/bashls.lua b/lua/nvim_lsp/bashls.lua
deleted file mode 100644
index 0bc9604c..00000000
--- a/lua/nvim_lsp/bashls.lua
+++ /dev/null
@@ -1,44 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "bashls"
-local bin_name = "bash-language-server"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "bash-language-server" };
- binaries = {bin_name};
-}
-
-configs[server_name] = {
- default_config = {
- cmd = {"bash-language-server", "start"};
- filetypes = {"sh"};
- root_dir = util.path.dirname;
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- description = [[
-https://github.com/mads-hartmann/bash-language-server
-
-Language server for bash, written using tree sitter in typescript.
-]];
- default_config = {
- root_dir = "vim's starting directory";
- };
- };
-};
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/ccls.lua b/lua/nvim_lsp/ccls.lua
deleted file mode 100644
index 32cc30e9..00000000
--- a/lua/nvim_lsp/ccls.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.ccls = {
- default_config = {
- cmd = {"ccls"};
- filetypes = {"c", "cpp", "objc", "objcpp"};
- root_dir = util.root_pattern("compile_commands.json", "compile_flags.txt", ".git");
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/MaskRay/vscode-ccls/master/package.json";
- description = [[
-https://github.com/MaskRay/ccls/wiki
-
-ccls relies on a [JSON compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html) specified
-as compile_commands.json or, for simpler projects, a compile_flags.txt.
-For details on how to automatically generate one using CMake look [here](https://cmake.org/cmake/help/latest/variable/CMAKE_EXPORT_COMPILE_COMMANDS.html).
-]];
- default_config = {
- root_dir = [[root_pattern("compile_commands.json", "compile_flags.txt", ".git")]];
- };
- };
-}
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/clangd.lua b/lua/nvim_lsp/clangd.lua
deleted file mode 100644
index f369febb..00000000
--- a/lua/nvim_lsp/clangd.lua
+++ /dev/null
@@ -1,60 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
--- https://clangd.llvm.org/extensions.html#switch-between-sourceheader
-local function switch_source_header(bufnr)
- bufnr = util.validate_bufnr(bufnr)
- local params = { uri = vim.uri_from_bufnr(bufnr) }
- vim.lsp.buf_request(bufnr, 'textDocument/switchSourceHeader', params, function(err, _, result)
- if err then error(tostring(err)) end
- if not result then print ("Corresponding file can’t be determined") return end
- vim.api.nvim_command('edit '..vim.uri_to_fname(result))
- end)
-end
-
-local root_pattern = util.root_pattern("compile_commands.json", "compile_flags.txt", ".git")
-configs.clangd = {
- default_config = util.utf8_config {
- cmd = {"clangd", "--background-index"};
- filetypes = {"c", "cpp", "objc", "objcpp"};
- root_dir = function(fname)
- local filename = util.path.is_absolute(fname) and fname
- or util.path.join(vim.loop.cwd(), fname)
- return root_pattern(filename) or util.path.dirname(filename)
- end;
- capabilities = {
- textDocument = {
- completion = {
- editsNearCursor = true
- }
- }
- },
- };
- commands = {
- ClangdSwitchSourceHeader = {
- function()
- switch_source_header(0)
- end;
- description = "Switch between source/header";
- };
- };
- docs = {
- description = [[
-https://clang.llvm.org/extra/clangd/Installation.html
-
-**NOTE:** Clang >= 9 is recommended! See [this issue for more](https://github.com/neovim/nvim-lsp/issues/23).
-
-clangd relies on a [JSON compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html) specified
-as compile_commands.json or, for simpler projects, a compile_flags.txt.
-For details on how to automatically generate one using CMake look [here](https://cmake.org/cmake/help/latest/variable/CMAKE_EXPORT_COMPILE_COMMANDS.html).
-]];
- default_config = {
- root_dir = [[root_pattern("compile_commands.json", "compile_flags.txt", ".git") or dirname]];
- on_init = [[function to handle changing offsetEncoding]];
- capabilities = [[default capabilities, with offsetEncoding utf-8]];
- };
- };
-}
-
-configs.clangd.switch_source_header = switch_source_header
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/clojure_lsp.lua b/lua/nvim_lsp/clojure_lsp.lua
deleted file mode 100644
index f314b309..00000000
--- a/lua/nvim_lsp/clojure_lsp.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.clojure_lsp = {
- default_config = {
- cmd = {"clojure-lsp"};
- filetypes = {"clojure", "edn"};
- root_dir = util.root_pattern("project.clj", "deps.edn", ".git");
- };
- docs = {
- description = [[
-https://github.com/snoe/clojure-lsp
-
-Clojure Language Server
-]];
- default_config = {
- root_dir = [[root_pattern("project.clj", "deps.edn", ".git")]];
- };
- };
-}
--- vim:et ts=2 sw=2
-
diff --git a/lua/nvim_lsp/cmake.lua b/lua/nvim_lsp/cmake.lua
deleted file mode 100755
index b47d23a2..00000000
--- a/lua/nvim_lsp/cmake.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.cmake = {
- default_config = {
- cmd = {"cmake-language-server"};
- filetypes = {"cmake"};
- root_dir = util.root_pattern(".git", "compile_commands.json", "build");
- init_options = {
- buildDirectory = "build",
- }
- };
- docs = {
- description = [[
-https://github.com/regen100/cmake-language-server
-
-CMake LSP Implementation
-]];
- default_config = {
- root_dir = [[root_pattern(".git", "compile_commands.json", "build")]];
- };
- };
-};
-
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/codeqlls.lua b/lua/nvim_lsp/codeqlls.lua
deleted file mode 100644
index 613d551e..00000000
--- a/lua/nvim_lsp/codeqlls.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local configs = require "nvim_lsp/configs"
-local util = require "nvim_lsp/util"
-
-local server_name = "codeqlls"
-
-local root_pattern = util.root_pattern("qlpack.yml")
-
-configs[server_name] = {
- default_config = {
- cmd = {"codeql", "execute", "language-server", "--check-errors", "ON_CHANGE", "-q"};
- filetypes = {'ql'};
- root_dir = function(fname)
- return root_pattern("qlpack.yml") or util.path.dirname(fname)
- end;
- log_level = vim.lsp.protocol.MessageType.Warning;
- before_init = function(initialize_params, config)
- initialize_params['workspaceFolders'] = {{
- name = 'workspace',
- uri = initialize_params['rootUri']
- }}
- end;
- settings = {
- search_path = vim.empty_dict()
- };
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/github/vscode-codeql/main/extensions/ql-vscode/package.json";
- description = [[
-Reference:
-https://help.semmle.com/codeql/codeql-cli.html
-
-Binaries:
-https://github.com/github/codeql-cli-binaries
- ]];
- default_config = {
- settings = {
- search_path = [[list containing all search paths, eg: '~/codeql-home/codeql-repo']];
- };
- };
- };
- on_new_config = function(config)
- if type(config.settings.search_path) == 'table' and not vim.tbl_isempty(config.settings.search_path) then
- local search_path = "--search-path="
- for _, path in ipairs(config.settings.search_path) do
- search_path = search_path..vim.fn.expand(path)..":"
- end
- config.cmd = {"codeql", "execute", "language-server", "--check-errors", "ON_CHANGE", "-q", search_path}
- else
- config.cmd = {"codeql", "execute", "language-server", "--check-errors", "ON_CHANGE", "-q"}
- end
- end;
-}
diff --git a/lua/nvim_lsp/configs.lua b/lua/nvim_lsp/configs.lua
deleted file mode 100644
index deca856e..00000000
--- a/lua/nvim_lsp/configs.lua
+++ /dev/null
@@ -1,214 +0,0 @@
-local util = require 'nvim_lsp/util'
-local api, validate, lsp = vim.api, vim.validate, vim.lsp
-local tbl_extend = vim.tbl_extend
-
-local configs = {}
-
-function configs.__newindex(t, config_name, config_def)
- validate {
- name = {config_name, 's'};
- default_config = {config_def.default_config, 't'};
- on_new_config = {config_def.on_new_config, 'f', true};
- on_attach = {config_def.on_attach, 'f', true};
- commands = {config_def.commands, 't', true};
- }
- if config_def.commands then
- for k, v in pairs(config_def.commands) do
- validate {
- ['command.name'] = {k, 's'};
- ['command.fn'] = {v[1], 'f'};
- }
- end
- else
- config_def.commands = {}
- end
-
- local M = {}
-
- local default_config = tbl_extend("keep", config_def.default_config, util.default_config)
-
- -- Force this part.
- default_config.name = config_name
-
- -- The config here is the one which will be instantiated for the new server,
- -- which is why this is a function, so that it can refer to the settings
- -- object on the server.
- local function add_callbacks(config)
- config.callbacks["window/logMessage"] = function(err, method, params, client_id)
- if params and params.type <= config.log_level then
- -- TODO(ashkan) remove this after things have settled.
- assert(lsp.callbacks, "Update to Nvim HEAD. This is an incompatible interface.")
- assert(lsp.callbacks["window/logMessage"], "Callback for window/logMessage notification is not defined")
- lsp.callbacks["window/logMessage"](err, method, params, client_id)
- end
- end
-
- config.callbacks["window/showMessage"] = function(err, method, params, client_id)
- if params and params.type <= config.message_level then
- -- TODO(ashkan) remove this after things have settled.
- assert(lsp.callbacks and lsp.callbacks[method], "Update to Nvim HEAD. This is an incompatible interface.")
- assert(lsp.callbacks["window/showMessage"], "Callback for window/showMessage notification is not defined")
- lsp.callbacks["window/showMessage"](err, method, params, client_id)
- end
- end
-
- config.callbacks["workspace/configuration"] = function(err, method, params, client_id)
- if err then error(tostring(err)) end
- if not params.items then
- return {}
- end
-
- local result = {}
- for _, item in ipairs(params.items) do
- if item.section then
- local value = util.lookup_section(config.settings, item.section) or vim.NIL
- -- For empty sections with no explicit '' key, return settings as is
- if value == vim.NIL and item.section == '' then
- value = config.settings or vim.NIL
- end
- table.insert(result, value)
- end
- end
- return result
- end
- end
-
- function M.setup(config)
- validate {
- root_dir = {config.root_dir, 'f', default_config.root_dir ~= nil};
- filetypes = {config.filetype, 't', true};
- on_new_config = {config.on_new_config, 'f', true};
- on_attach = {config.on_attach, 'f', true};
- commands = {config.commands, 't', true};
- }
- if config.commands then
- for k, v in pairs(config.commands) do
- validate {
- ['command.name'] = {k, 's'};
- ['command.fn'] = {v[1], 'f'};
- }
- end
- end
-
- config = tbl_extend("keep", config, default_config)
-
- local trigger
- if config.filetypes then
- trigger = "FileType "..table.concat(config.filetypes, ',')
- else
- trigger = "BufReadPost *"
- end
- api.nvim_command(string.format(
- "autocmd %s lua require'nvim_lsp'[%q].manager.try_add()"
- , trigger
- , config.name
- ))
-
- local get_root_dir = config.root_dir
-
- -- In the case of a reload, close existing things.
- if M.manager then
- for _, client in ipairs(M.manager.clients()) do
- client.stop(true)
- end
- M.manager = nil
- end
-
- local make_config = function(_root_dir)
- local new_config = util.tbl_deep_extend("keep", vim.empty_dict(), config)
- new_config = util.tbl_deep_extend('keep', new_config, default_config)
- new_config.capabilities = new_config.capabilities or lsp.protocol.make_client_capabilities()
- new_config.capabilities = util.tbl_deep_extend('keep', new_config.capabilities, {
- workspace = {
- configuration = true;
- }
- })
-
- add_callbacks(new_config)
- if config_def.on_new_config then
- pcall(config_def.on_new_config, new_config, _root_dir)
- end
- if config.on_new_config then
- pcall(config.on_new_config, new_config, _root_dir)
- end
-
- new_config.on_init = util.add_hook_after(new_config.on_init, function(client, _result)
- function client.workspace_did_change_configuration(settings)
- if not settings then return end
- if vim.tbl_isempty(settings) then
- settings = {[vim.type_idx]=vim.types.dictionary}
- end
- return client.notify('workspace/didChangeConfiguration', {
- settings = settings;
- })
- end
- if not vim.tbl_isempty(new_config.settings) then
- client.workspace_did_change_configuration(new_config.settings)
- end
- end)
-
- -- Save the old _on_attach so that we can reference it via the BufEnter.
- new_config._on_attach = new_config.on_attach
- new_config.on_attach = vim.schedule_wrap(function(client, bufnr)
- if bufnr == api.nvim_get_current_buf() then
- M._setup_buffer(client.id)
- else
- api.nvim_command(string.format(
- "autocmd BufEnter <buffer=%d> ++once lua require'nvim_lsp'[%q]._setup_buffer(%d)"
- , bufnr
- , config_name
- , client.id
- ))
- end
- end)
-
- new_config.root_dir = _root_dir
- return new_config
- end
-
- local manager = util.server_per_root_dir_manager(function(_root_dir)
- return make_config(_root_dir)
- end)
-
- function manager.try_add()
- if vim.bo.buftype == 'nofile' then
- return
- end
- local root_dir = get_root_dir(api.nvim_buf_get_name(0), api.nvim_get_current_buf())
- local id = manager.add(root_dir)
- if id then
- lsp.buf_attach_client(0, id)
- end
- end
-
- M.manager = manager
- M.make_config = make_config
- end
-
- function M._setup_buffer(client_id)
- local client = lsp.get_client_by_id(client_id)
- if client.config._on_attach then
- client.config._on_attach(client)
- end
- if client.config.commands and not vim.tbl_isempty(client.config.commands) then
- M.commands = util.tbl_deep_extend("force", M.commands, client.config.commands)
- end
- if not M.commands_created and not vim.tbl_isempty(M.commands) then
- -- Create the module commands
- util.create_module_commands(config_name, M.commands)
- M.commands_created = true
- end
- end
-
- M.commands_created = false
- M.commands = config_def.commands
- M.name = config_name
- M.document_config = config_def
-
- rawset(t, config_name, M)
-
- return M
-end
-
-return setmetatable({}, configs)
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/cssls.lua b/lua/nvim_lsp/cssls.lua
deleted file mode 100644
index 5517e7a1..00000000
--- a/lua/nvim_lsp/cssls.lua
+++ /dev/null
@@ -1,56 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "cssls"
-local bin_name = "css-languageserver"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "vscode-css-languageserver-bin" };
- binaries = {bin_name};
-}
-
-local root_pattern = util.root_pattern("package.json")
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name, "--stdio"};
- filetypes = {"css", "scss", "less"};
- root_dir = function(fname)
- return root_pattern(fname) or vim.loop.os_homedir()
- end;
- settings = {
- css = { validate = true },
- scss = { validate = true },
- less = { validate = true }
- };
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- description = [[
-https://github.com/vscode-langservers/vscode-css-languageserver-bin
-
-`css-languageserver` can be installed via `:LspInstall cssls` or by yourself with `npm`:
-```sh
-npm install -g vscode-css-languageserver-bin
-```
-]];
- default_config = {
- root_dir = [[root_pattern("package.json")]];
- };
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/dartls.lua b/lua/nvim_lsp/dartls.lua
deleted file mode 100644
index 182204cf..00000000
--- a/lua/nvim_lsp/dartls.lua
+++ /dev/null
@@ -1,55 +0,0 @@
-local nvim_lsp = require 'nvim_lsp'
-local configs = require 'nvim_lsp/configs'
-
-local server_name = "dartls"
-local bin_name = "dart"
-
-local find_dart_sdk_root_path = function()
- if vim.fn["executable"]("flutter") == 1 then
- local flutter_path = vim.fn["resolve"](vim.fn["exepath"]("flutter"))
- local flutter_bin = vim.fn["fnamemodify"](flutter_path, ":h")
- return flutter_bin.."/cache/dart-sdk/bin/dart"
- elseif vim.fn["executable"]("dart") == 1 then
- return vim.fn["resolve"](vim.fn["exepath"]("dart"))
- else
- return ''
- end
-end
-
-local analysis_server_snapshot_path = function()
- local dart_sdk_root_path = vim.fn["fnamemodify"](find_dart_sdk_root_path(), ":h")
- local snapshot = dart_sdk_root_path.."/snapshots/analysis_server.dart.snapshot"
-
- if vim.fn["has"]("win32") == 1 or vim.fn["has"]("win64") == 1 then
- snapshot = snapshot:gsub("/", "\\")
- end
-
- return snapshot
-end
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name, analysis_server_snapshot_path(), "--lsp"};
- filetypes = {"dart"};
- root_dir = nvim_lsp.util.root_pattern("pubspec.yaml");
- init_options = {
- onlyAnalyzeProjectsWithOpenFiles = "false",
- suggestFromUnimportedLibraries = "true",
- closingLabels = "true",
- outline = "true",
- flutterOutline= "false"
- };
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/Dart-Code/Dart-Code/master/package.json";
- description = [[
-https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server/tool/lsp_spec
-
-Language server for dart.
-]];
- default_config = {
- root_dir = [[root_pattern("pubspec.yaml")]];
- };
- };
-};
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/diagnosticls.lua b/lua/nvim_lsp/diagnosticls.lua
deleted file mode 100644
index 4bdd5226..00000000
--- a/lua/nvim_lsp/diagnosticls.lua
+++ /dev/null
@@ -1,45 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "diagnosticls"
-local bin_name = "diagnostic-languageserver"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { bin_name };
- binaries = { bin_name };
-}
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name, "--stdio"},
- filetypes = {},
- root_dir = util.path.dirname,
- },
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name], "--stdio"}
- end
- end
- end;
- docs = {
- description = [[
-https://github.com/iamcco/diagnostic-languageserver
-
-Diagnostic language server integrate with linters.
-]];
- default_config = {
- filetypes = "Empty by default, override to add filetypes",
- root_dir = "Vim's starting directory";
- init_options = "Configuration from https://github.com/iamcco/diagnostic-languageserver#config--document";
- };
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
diff --git a/lua/nvim_lsp/dockerls.lua b/lua/nvim_lsp/dockerls.lua
deleted file mode 100644
index 941d2c84..00000000
--- a/lua/nvim_lsp/dockerls.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "dockerls"
-local bin_name = "docker-langserver"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "dockerfile-language-server-nodejs" };
- binaries = {bin_name};
-}
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name, "--stdio"};
- filetypes = {"Dockerfile", "dockerfile"};
- root_dir = util.root_pattern("Dockerfile");
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- description = [[
-https://github.com/rcjsuen/dockerfile-language-server-nodejs
-
-`docker-langserver` can be installed via `:LspInstall dockerls` or by yourself with `npm`:
-```sh
-npm install -g dockerfile-language-server-nodejs
-```
- ]];
- default_config = {
- root_dir = [[root_pattern("Dockerfile")]];
- };
- };
-};
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/efm.lua b/lua/nvim_lsp/efm.lua
deleted file mode 100644
index 621d2be1..00000000
--- a/lua/nvim_lsp/efm.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "efm"
-local bin_name = "efm-langserver"
-
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name};
- root_dir = util.root_pattern(".git");
- };
-
- docs = {
- description = [[
-https://github.com/mattn/efm-langserver
-
-General purpose Language Server that can use specified error message format generated from specified command.
-]];
- default_config = {
- root_dir = [[root_pattern(".git")]];
- };
- };
-}
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/elixirls.lua b/lua/nvim_lsp/elixirls.lua
deleted file mode 100644
index d0a2fbd6..00000000
--- a/lua/nvim_lsp/elixirls.lua
+++ /dev/null
@@ -1,110 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "elixirls"
-local bin_name = "elixir-ls"
-local cmd = "language_server"
-
-if vim.fn.has('mac') == 1 or vim.fn.has('unix') == 1 then
- cmd = cmd..".sh"
-elseif vim.fn.has('win32') == 1 or vim.fn.has('win64') == 1 then
- cmd = cmd..".bat"
-else
- error("System is not supported, try to install manually.")
- return
-end
-
-local function make_installer()
- local P = util.path.join
- local install_dir = P{util.base_install_dir, server_name}
- local cmd_path = P{install_dir, bin_name, "release", cmd}
-
- local X = {}
- function X.install()
- local install_info = X.info()
- if install_info.is_installed then
- print(server_name, "is already installed.")
- return
- end
-
- if not (util.has_bins("elixir") and util.has_bins("erl")) then
- error("Need elixir and erl to install this")
- return
- end
-
- local script = [=[
- set -e
-
- # clone project
- git clone https://github.com/elixir-lsp/elixir-ls
- cd elixir-ls
-
- # fetch dependencies and compile
- mix deps.get && mix compile
-
- # install executable
- mix elixir_ls.release -o release
- ]=]
- vim.fn.mkdir(install_info.install_dir, "p")
- util.sh(script, install_info.install_dir)
- end
-
- function X.info()
- return {
- is_installed = util.path.exists(cmd_path);
- install_dir = install_dir;
- cmd = { cmd_path };
- }
- end
-
- function X.configure(config)
- local install_info = X.info()
- if install_info.is_installed then
- config.cmd = install_info.cmd
- end
- end
- return X
-end
-
-local installer = make_installer()
-
-configs[server_name] = {
- default_config = {
- cmd = { cmd };
- filetypes = {"elixir", "eelixir"};
- root_dir = function(fname)
- return util.root_pattern("mix.exs", ".git")(fname) or vim.loop.os_homedir()
- end;
- };
- on_new_config = function(config)
- installer.configure(config)
- end;
- docs = {
- package_json = "https://raw.githubusercontent.com/JakeBecker/vscode-elixir-ls/master/package.json";
- description = [[
-https://github.com/elixir-lsp/elixir-ls
-
-`elixir-ls` can be installed via `:LspInstall elixirls` or by yourself by following the instructions [here](https://github.com/elixir-lsp/elixir-ls#building-and-running).
-
-This language server does not provide a global binary, but must be installed manually. The command `:LspInstaller elixirls` makes an attempt at installing the binary by
-Fetching the elixir-ls repository from GitHub, compiling it and then installing it.
-
-```lua
-require'nvim_lsp'.elixirls.setup{
- -- Unix
- cmd = { "path/to/language_server.sh" };
- -- Windows
- cmd = { "path/to/language_server.bat" };
- ...
-}
-```
-]];
- default_config = {
- root_dir = [[root_pattern("mix.exs", ".git") or vim.loop.os_homedir()]];
- };
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/elmls.lua b/lua/nvim_lsp/elmls.lua
deleted file mode 100644
index 94e1b25d..00000000
--- a/lua/nvim_lsp/elmls.lua
+++ /dev/null
@@ -1,72 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-local lsp = vim.lsp
-local api = vim.api
-
-local server_name = "elmls"
-local bin_name = "elm-language-server"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "elm", "elm-test", "elm-format", "@elm-tooling/elm-language-server" };
- binaries = {bin_name, "elm", "elm-format", "elm-test"};
-}
-
-local default_capabilities = lsp.protocol.make_client_capabilities()
-default_capabilities.offsetEncoding = {"utf-8", "utf-16"}
-local elm_root_pattern = util.root_pattern("elm.json")
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name};
- -- TODO(ashkan) if we comment this out, it will allow elmls to operate on elm.json. It seems like it could do that, but no other editor allows it right now.
- filetypes = {"elm"};
- root_dir = function(fname)
- local filetype = api.nvim_buf_get_option(0, 'filetype')
- if filetype == 'elm' or (filetype == 'json' and fname:match("elm%.json$")) then
- return elm_root_pattern(fname)
- end
- end;
- init_options = {
- elmPath = "elm",
- elmFormatPath = "elm-format",
- elmTestPath = "elm-test",
- elmAnalyseTrigger = "change",
- };
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- new_config.init_options = util.tbl_deep_extend('force', new_config.init_options, {
- elmPath = install_info.binaries["elm"];
- elmFormatPath = install_info.binaries["elm-format"];
- elmTestPath = install_info.binaries["elm-test"];
- })
- end
- end;
- docs = {
- package_json = "https://raw.githubusercontent.com/elm-tooling/elm-language-client-vscode/master/package.json";
- description = [[
-https://github.com/elm-tooling/elm-language-server#installation
-
-If you don't want to use Nvim to install it, then you can use:
-```sh
-npm install -g elm elm-test elm-format @elm-tooling/elm-language-server
-```
-]];
- default_config = {
- root_dir = [[root_pattern("elm.json")]];
- };
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
-
diff --git a/lua/nvim_lsp/flow.lua b/lua/nvim_lsp/flow.lua
deleted file mode 100644
index 998ecb89..00000000
--- a/lua/nvim_lsp/flow.lua
+++ /dev/null
@@ -1,30 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.flow = {
- default_config = {
- cmd = {"npx", "--no-install", "flow","lsp"};
- filetypes = {"javascript", "javascriptreact", "javascript.jsx"};
- root_dir = util.root_pattern(".flowconfig");
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/flowtype/flow-for-vscode/master/package.json";
- description = [[
-https://flow.org/
-https://github.com/facebook/flow
-
-See below for how to setup Flow itself.
-https://flow.org/en/docs/install/
-
-See below for lsp command options.
-
-```sh
-npx flow lsp --help
-```
- ]];
- default_config = {
- root_dir = [[root_pattern(".flowconfig")]];
- };
- };
-};
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/fortls.lua b/lua/nvim_lsp/fortls.lua
deleted file mode 100644
index a94e4dd3..00000000
--- a/lua/nvim_lsp/fortls.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.fortls = {
- default_config = {
- cmd = {"fortls"};
- filetypes = {"fortran"};
- root_dir = util.root_pattern(".fortls");
- settings = {
- nthreads = 1,
- };
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/hansec/vscode-fortran-ls/master/package.json";
- description = [[
-https://github.com/hansec/fortran-language-server
-
-Fortran Language Server for the Language Server Protocol
- ]];
- default_config = {
- root_dir = [[root_pattern(".fortls")]];
- };
- };
-};
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/gdscript.lua b/lua/nvim_lsp/gdscript.lua
deleted file mode 100644
index e4dfb5c3..00000000
--- a/lua/nvim_lsp/gdscript.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.gdscript = {
- default_config = {
- cmd = {"nc", "localhost", "6008"};
- filetypes = {"gd", "gdscript", "gdscript3"};
- root_dir = util.root_pattern("project.godot", ".git");
- };
- docs = {
- description = [[
-https://github.com/godotengine/godot
-
-Language server for GDScript, used by Godot Engine.
-]];
- default_config = {
- root_dir = util.root_pattern("project.godot", ".git");
- };
- };
-};
-
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/ghcide.lua b/lua/nvim_lsp/ghcide.lua
deleted file mode 100644
index ee801de6..00000000
--- a/lua/nvim_lsp/ghcide.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.ghcide = {
- default_config = {
- cmd = { "ghcide", "--lsp" };
- filetypes = { "haskell", "lhaskell" };
- root_dir = util.root_pattern("stack.yaml", "hie-bios", "BUILD.bazel", "cabal.config", "package.yaml");
- };
-
- docs = {
- package_json = "https://raw.githubusercontent.com/digital-asset/ghcide/master/extension/package.json";
- description = [[
-https://github.com/digital-asset/ghcide
-
-A library for building Haskell IDE tooling.
-]];
- default_config = {
- root_dir = [[root_pattern("stack.yaml", "hie-bios", "BUILD.bazel", "cabal.config", "package.yaml")]];
- };
- };
-};
-
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/gopls.lua b/lua/nvim_lsp/gopls.lua
deleted file mode 100644
index 53638e5f..00000000
--- a/lua/nvim_lsp/gopls.lua
+++ /dev/null
@@ -1,23 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.gopls = {
- default_config = {
- cmd = {"gopls"};
- filetypes = {"go", "gomod"};
- root_dir = util.root_pattern("go.mod", ".git");
- };
- -- on_new_config = function(new_config) end;
- -- on_attach = function(client, bufnr) end;
- docs = {
- description = [[
-https://github.com/golang/tools/tree/master/gopls
-
-Google's lsp server for golang.
-]];
- default_config = {
- root_dir = [[root_pattern("go.mod", ".git")]];
- };
- };
-}
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/health.lua b/lua/nvim_lsp/health.lua
deleted file mode 100644
index d0e5820e..00000000
--- a/lua/nvim_lsp/health.lua
+++ /dev/null
@@ -1,26 +0,0 @@
-local M = {}
-function M.check_health()
- local configs = require 'nvim_lsp/configs'
-
- for _, top_level_config in pairs(configs) do
- -- If users execute `:LspInstall` or `:LspInstallInfo`,
- -- a config is required but is not added make_config function.
- if not (top_level_config.make_config == nil) then
- -- the folder needs to exist
- local config = top_level_config.make_config(".")
-
- local status, cmd = pcall(vim.lsp._cmd_parts, config.cmd)
- if not status then
- vim.fn['health#report_error'](string.format("%s: config.cmd error, %s", config.name, cmd))
- else
- if not (vim.fn.executable(cmd) == 1) then
- vim.fn['health#report_error'](string.format("%s: The given command %q is not executable.", config.name, cmd))
- else
- vim.fn['health#report_info'](string.format("%s: configuration checked.", config.name))
- end
- end
- end
- end
-end
-
-return M
diff --git a/lua/nvim_lsp/hie.lua b/lua/nvim_lsp/hie.lua
deleted file mode 100644
index ef3b0d92..00000000
--- a/lua/nvim_lsp/hie.lua
+++ /dev/null
@@ -1,38 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.hie = {
- default_config = {
- cmd = {"hie-wrapper", "--lsp"};
- filetypes = {"haskell"};
- root_dir = util.root_pattern("stack.yaml", "package.yaml", ".git");
- };
-
- docs = {
- package_json = "https://raw.githubusercontent.com/alanz/vscode-hie-server/master/package.json";
- description = [[
-https://github.com/haskell/haskell-ide-engine
-
-the following init_options are supported (see https://github.com/haskell/haskell-ide-engine#configuration):
-```lua
-init_options = {
- languageServerHaskell = {
- hlintOn = bool;
- maxNumberOfProblems = number;
- diagnosticsDebounceDuration = number;
- liquidOn = bool (default false);
- completionSnippetsOn = bool (default true);
- formatOnImportOn = bool (default true);
- formattingProvider = string (default "brittany", alternate "floskell");
- }
-}
-```
- ]];
-
- default_config = {
- root_dir = [[root_pattern("stack.yaml", "package.yaml", ".git")]];
- };
- };
-};
-
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/hls.lua b/lua/nvim_lsp/hls.lua
deleted file mode 100644
index a55294dc..00000000
--- a/lua/nvim_lsp/hls.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.hls = {
- default_config = {
- cmd = {"haskell-language-server-wrapper", "--lsp"};
- filetypes = {"haskell", "lhaskell"};
- root_dir = util.root_pattern("*.cabal", "stack.yaml", "cabal.project", "package.yaml", "hie.yaml");
- };
-
- docs = {
- description = [[
-https://github.com/haskell/haskell-language-server
-
-Haskell Language Server
- ]];
-
- default_config = {
- root_dir = [[root_pattern("*.cabal", "stack.yaml", "cabal.project", "package.yaml", "hie.yaml")]];
- };
- };
-};
-
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/html.lua b/lua/nvim_lsp/html.lua
deleted file mode 100644
index e8ccc0ac..00000000
--- a/lua/nvim_lsp/html.lua
+++ /dev/null
@@ -1,54 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "html"
-local bin_name = "html-languageserver"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "vscode-html-languageserver-bin" };
- binaries = {bin_name};
-}
-
-local root_pattern = util.root_pattern("package.json")
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name, "--stdio"};
- filetypes = {"html"};
- root_dir = function(fname)
- return root_pattern(fname) or vim.loop.os_homedir()
- end;
- settings = {};
- init_options = {
- embeddedLanguages = { css= true, javascript= true },
- configurationSection = { 'html', 'css', 'javascript' },
- }
-
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- description = [[
-https://github.com/vscode-langservers/vscode-html-languageserver-bin
-
-`html-languageserver` can be installed via `:LspInstall html` or by yourself with `npm`:
-```sh
-npm install -g vscode-html-languageserver-bin
-```
-]];
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/intelephense.lua b/lua/nvim_lsp/intelephense.lua
deleted file mode 100644
index 07d7eb09..00000000
--- a/lua/nvim_lsp/intelephense.lua
+++ /dev/null
@@ -1,68 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "intelephense"
-local bin_name = "intelephense"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "intelephense" };
- binaries = {bin_name};
-}
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name, "--stdio"};
- filetypes = {"php"};
- root_dir = function (pattern)
- local cwd = vim.loop.cwd();
- local root = util.root_pattern("composer.json", ".git")(pattern);
-
- -- prefer cwd if root is a descendant
- return util.path.is_descendant(cwd, root) and cwd or root;
- end;
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- description = [[
-https://intelephense.com/
-
-`intelephense` can be installed via `:LspInstall intelephense` or by yourself with `npm`:
-```sh
-npm install -g intelephense
-```
-]];
- default_config = {
- root_dir = [[root_pattern("composer.json", ".git")]];
- init_options = [[{
- storagePath = Optional absolute path to storage dir. Defaults to os.tmpdir().
- globalStoragePath = Optional absolute path to a global storage dir. Defaults to os.homedir().
- licenceKey = Optional licence key or absolute path to a text file containing the licence key.
- clearCache = Optional flag to clear server state. State can also be cleared by deleting {storagePath}/intelephense
- -- See https://github.com/bmewburn/intelephense-docs#initialisation-options
- }]];
- settings = [[{
- intelephense = {
- files = {
- maxSize = 1000000;
- };
- };
- -- See https://github.com/bmewburn/intelephense-docs#configuration-options
- }]];
- };
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
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
diff --git a/lua/nvim_lsp/jedi_language_server.lua b/lua/nvim_lsp/jedi_language_server.lua
deleted file mode 100644
index e077bbbd..00000000
--- a/lua/nvim_lsp/jedi_language_server.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-
-configs.jedi_language_server = {
- default_config = {
- cmd = {"jedi-language-server"};
- filetypes = {"python"};
- root_dir = function(fname)
- return vim.fn.getcwd()
- end;
- };
- docs = {
- description = [[
-https://github.com/pappasam/jedi-language-server
-
-`jedi-language-server`, a language server for Python, built on top of jedi
- ]];
- default_config = {
- root_dir = "vim's starting directory";
- };
- };
-};
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/jsonls.lua b/lua/nvim_lsp/jsonls.lua
deleted file mode 100644
index f384c0d9..00000000
--- a/lua/nvim_lsp/jsonls.lua
+++ /dev/null
@@ -1,51 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "jsonls"
-local bin_name = "vscode-json-languageserver"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = {bin_name};
- binaries = {bin_name};
-}
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name, "--stdio"};
- filetypes = {"json"};
- root_dir = util.root_pattern(".git", vim.fn.getcwd());
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- -- this language server config is in VSCode built-in package.json
- package_json = "https://raw.githubusercontent.com/microsoft/vscode/master/extensions/json-language-features/package.json";
- description = [[
-https://github.com/vscode-langservers/vscode-json-languageserver
-
-vscode-json-languageserver, a language server for JSON and JSON schema
-
-`vscode-json-languageserver` can be installed via `:LspInstall jsonls` or by yourself with `npm`:
-```sh
-npm install -g vscode-json-languageserver
-```
-]];
- default_config = {
- root_dir = [[root_pattern(".git", vim.fn.getcwd())]];
- };
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/julials.lua b/lua/nvim_lsp/julials.lua
deleted file mode 100644
index 6c30e8bd..00000000
--- a/lua/nvim_lsp/julials.lua
+++ /dev/null
@@ -1,66 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local environment_directory = util.path.join(util.base_install_dir, "julials")
-
-configs.julials = {
- default_config = {
- cmd = {
- "julia", "--project=" .. environment_directory, "--startup-file=no", "--history-file=no", "-e", [[
- using Pkg;
- Pkg.instantiate()
- using LanguageServer; using SymbolServer;
- depot_path = get(ENV, "JULIA_DEPOT_PATH", "")
- project_path = dirname(something(Base.current_project(pwd()), Base.load_path_expand(LOAD_PATH[2])))
- # Make sure that we only load packages from this environment specifically.
- empty!(LOAD_PATH)
- push!(LOAD_PATH, "@")
- @info "Running language server" env=Base.load_path()[1] pwd() project_path depot_path
- server = LanguageServer.LanguageServerInstance(stdin, stdout, project_path, depot_path);
- server.runlinter = true;
- run(server);
- ]]
- };
- filetypes = {'julia'};
- root_dir = function(fname)
- return util.find_git_ancestor(fname) or vim.loop.os_homedir()
- end;
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/julia-vscode/julia-vscode/master/package.json";
- description = [[
-https://github.com/julia-vscode/julia-vscode
-`LanguageServer.jl` can be installed via `:LspInstall julials` or by yourself the `julia` and `Pkg`:
-```sh
-julia --project=]] .. environment_directory .. [[ -e 'using Pkg; Pkg.add("LanguageServer"); Pkg.add("SymbolServer")'
-```
-If you want to install the LanguageServer manually, you will have to ensure that the Julia environment is stored in this location:
-```vim
-:lua print(require'nvim_lsp'.util.path.join(require'nvim_lsp'.util.base_install_dir, "julials"))
-```
- ]];
- };
-}
-
-configs.julials.install = function()
-
- local script = [[
- julia --project=]] .. environment_directory .. [[ -e 'using Pkg; Pkg.add("LanguageServer"); Pkg.add("SymbolServer")'
- ]]
-
- util.sh(script, vim.loop.os_homedir())
-end
-
-configs.julials.install_info = function()
- local script = [[
- julia --project=]] .. environment_directory .. [[ -e 'using LanguageServer; using SymbolServer'
- ]]
-
- local status = pcall(vim.fn.system, script)
-
- return {
- is_installed = status and vim.v.shell_error == 0;
- }
-end
-
---- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/kotlin_language_server.lua b/lua/nvim_lsp/kotlin_language_server.lua
deleted file mode 100644
index 15fb995a..00000000
--- a/lua/nvim_lsp/kotlin_language_server.lua
+++ /dev/null
@@ -1,52 +0,0 @@
---- default config for gradle-projects of the
---- kotlin-language-server: https://github.com/fwcd/kotlin-language-server
----
---- This server requires vim to be aware of the kotlin-filetype.
---- You could refer for this capability to:
---- https://github.com/udalov/kotlin-vim (recommended)
---- Note that there is no LICENSE specified yet.
-
-local util = require 'nvim_lsp/util'
-local configs = require 'nvim_lsp/configs'
-
-configs.kotlin_language_server = {
- default_config = {
- filetypes = { "kotlin" };
- root_dir = util.root_pattern("settings.gradle");
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/fwcd/vscode-kotlin/master/package.json";
- description = [[
- A kotlin language server which was developed for internal usage and
- released afterwards. Maintaining is not done by the original author,
- but by fwcd.
-
- It is builded via gradle and developed on github.
- Source and additional description:
- https://github.com/fwcd/kotlin-language-server
- ]];
- default_config = {
- root_dir = [[root_pattern("settings.gradle")]];
- capabilities = [[
- smart code completion,
- diagnostics,
- hover,
- document symbols,
- definition lookup,
- method signature help,
- dependency resolution,
- additional plugins from: https://github.com/fwcd
-
- Snipped of License (refer to source for full License):
-
- The MIT License (MIT)
-
- Copyright (c) 2016 George Fraser
- Copyright (c) 2018 fwcd
-
- ]];
- };
- };
-}
-
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/leanls.lua b/lua/nvim_lsp/leanls.lua
deleted file mode 100644
index 894f318b..00000000
--- a/lua/nvim_lsp/leanls.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.leanls = {
- default_config = {
- cmd = {"lean-language-server", "--stdio"};
- filetypes = {"lean"};
- root_dir = util.root_pattern(".git");
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/leanprover/vscode-lean/master/package.json";
- description = [[
-https://github.com/leanprover/lean-client-js/tree/master/lean-language-server
-
-Lean language server.
- ]];
- default_config = {
- root_dir = [[util.root_pattern(".git")]];
- };
- };
-}
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/metals.lua b/lua/nvim_lsp/metals.lua
deleted file mode 100644
index 35b1fe5b..00000000
--- a/lua/nvim_lsp/metals.lua
+++ /dev/null
@@ -1,106 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-local server_name = "metals"
-local bin_name = "metals"
-
-local function make_installer()
- local install_dir = util.path.join{util.base_install_dir, server_name}
- local metals_bin = util.path.join{install_dir, bin_name}
- local server_version
- if (vim.g.metals_server_version) then
- server_version = vim.g.metals_server_version
- else
- server_version = 'latest.release'
- end
- local X = {}
- function X.install()
- local install_info = X.info()
- if install_info.is_installed then
- print(server_name, "is already installed")
- return
- end
- if not (util.has_bins("curl")) then
- error('Need "curl" to install this.')
- return
- end
- if not (util.has_bins("java")) then
- error('Need "JDK" to install this.')
- return
- end
-
- local coursier_exe = nil
- if util.has_bins("cs") then
- coursier_exe = "cs"
- elseif util.has_bins("coursier") then
- coursier_exe = "coursier"
- end
- if not coursier_exe then
- coursier_exe = install_dir .. "/coursier"
- local download_cmd = string.format("curl -fLo %s --create-dirs https://git.io/coursier-cli", coursier_exe)
- local chmod_cmd = string.format("chmod +x %s", coursier_exe)
- vim.fn.system(download_cmd)
- vim.fn.system(chmod_cmd)
- else
- os.execute("mkdir -p " .. install_dir)
- end
-
- local install_cmd = string.format("%s bootstrap --java-opt -Xss4m --java-opt -Xms100m org.scalameta:metals_2.12:%s -r bintray:scalacenter/releases -r sonatype:snapshots -o %s -f", coursier_exe, server_version, metals_bin)
- vim.fn.system(install_cmd)
- end
- function X.info()
- return {
- is_installed = util.path.exists(metals_bin);
- install_dir = install_dir;
- cmd = { metals_bin };
- }
- end
- function X.configure(config)
- local install_info = X.info()
- if install_info.is_installed then
- config.cmd = install_info.cmd
- end
- end
- return X
-end
-
-local installer = make_installer()
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name};
- filetypes = {"scala"};
- root_dir = util.root_pattern("build.sbt", "build.sc", "build.gradle", "pom.xml");
- message_level = vim.lsp.protocol.MessageType.Log;
- init_options = {
- statusBarProvider = "show-message",
- isHttpEnabled = true,
- compilerOptions = {
- snippetAutoIndent = false
- }
- };
- };
- on_new_config = function(config)
- installer.configure(config)
- end;
- docs = {
- package_json = "https://raw.githubusercontent.com/scalameta/metals-vscode/master/package.json";
- description = [[
-https://scalameta.org/metals/
-
-To target a specific version on Metals, set the following.
-If nothing is set, the latest stable will be used.
-```vim
-let g:metals_server_version = '0.8.4+106-5f2b9350-SNAPSHOT'
-```
-
-Scala language server with rich IDE features.
-`metals` can be installed via `:LspInstall metals`.
-]];
- default_config = {
- root_dir = [[util.root_pattern("build.sbt", "build.sc", "build.gradle", "pom.xml")]];
- };
- };
-};
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
diff --git a/lua/nvim_lsp/nimls.lua b/lua/nvim_lsp/nimls.lua
deleted file mode 100644
index 5e91c760..00000000
--- a/lua/nvim_lsp/nimls.lua
+++ /dev/null
@@ -1,45 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.nimls = {
- default_config = {
- cmd = {"nimlsp",};
- filetypes = {'nim'};
- root_dir = function(fname)
- return util.find_git_ancestor(fname) or vim.loop.os_homedir()
- end;
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/pragmagic/vscode-nim/master/package.json";
- description = [[
-https://github.com/PMunch/nimlsp
-`nimlsp` can be installed via `:LspInstall nimls` or by yourself the `nimble` package manager:
-```sh
-nimble install nimlsp
-```
- ]];
- default_config = {
- root_dir = [[root_pattern(".git") or os_homedir]];
- };
- };
-}
-
-configs.nimls.install = function()
- local script = [[
- nimble install nimlsp
- ]]
-
- util.sh(script, vim.loop.os_homedir())
-end
-
-configs.nimls.install_info = function()
- local script = [[
- nimlsp --version
- ]]
-
- local status = pcall(vim.fn.system, script)
-
- return {
- is_installed = status and vim.v.shell_error == 0;
- }
-end
diff --git a/lua/nvim_lsp/ocamlls.lua b/lua/nvim_lsp/ocamlls.lua
deleted file mode 100644
index 417529fa..00000000
--- a/lua/nvim_lsp/ocamlls.lua
+++ /dev/null
@@ -1,45 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "ocamlls"
-local bin_name = "ocaml-language-server"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "ocaml-language-server" };
- binaries = { bin_name };
-}
-
-configs[server_name] = {
- default_config = {
- cmd = { bin_name, "--stdio" };
- filetypes = { "ocaml", "reason" };
- root_dir = util.root_pattern(".merlin", "package.json");
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- description = [[
-https://github.com/ocaml-lsp/ocaml-language-server
-
-`ocaml-language-server` can be installed via `:LspInstall ocamlls` or by yourself with `npm`
-```sh
-npm install -g ocaml-langauge-server
-```
- ]];
- default_config = {
- root_dir = [[root_pattern(".merlin", "package.json")]];
- };
- };
-};
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/ocamllsp.lua b/lua/nvim_lsp/ocamllsp.lua
deleted file mode 100644
index c029e427..00000000
--- a/lua/nvim_lsp/ocamllsp.lua
+++ /dev/null
@@ -1,26 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.ocamllsp = {
- default_config = {
- cmd = {"ocamllsp",};
- filetypes = {'ocaml', 'reason'};
- root_dir = util.root_pattern(".merlin", "package.json", ".git");
- };
- docs = {
- description = [[
-https://github.com/ocaml/ocaml-lsp
-
-`ocaml-lsp` can be installed as described in [installation guide](https://github.com/ocaml/ocaml-lsp#installation).
-
-To install the lsp server in a particular opam switch:
-```sh
-opam pin add ocaml-lsp-server https://github.com/ocaml/ocaml-lsp.git
-opam install ocaml-lsp-server
-```
- ]];
- default_config = {
- root_dir = [[root_pattern(".merlin", "package.json")]];
- };
- };
-}
diff --git a/lua/nvim_lsp/omnisharp.lua b/lua/nvim_lsp/omnisharp.lua
deleted file mode 100644
index 4d874952..00000000
--- a/lua/nvim_lsp/omnisharp.lua
+++ /dev/null
@@ -1,84 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-local server_name = 'omnisharp'
-local bin_name = 'run'
-
-local function make_installer()
- local install_dir = util.path.join{util.base_install_dir, server_name}
- local pid = vim.fn.getpid()
- local url = 'linux-x64'
-
- if vim.fn.has('win32') == 1 then
- url = 'win-x64'
- bin_name = 'Omnisharp.exe'
- elseif vim.fn.has('mac') == 1 then
- url = 'osx'
- end
- local bin_path = util.path.join{install_dir, bin_name}
-
- local download_target = util.path.join{install_dir, string.format("omnisharp-%s.zip", url)}
- local extract_cmd = string.format("unzip '%s' -d '%s'", download_target, install_dir)
- local download_cmd = string.format('curl -fLo "%s" --create-dirs "https://github.com/OmniSharp/omnisharp-roslyn/releases/latest/download/omnisharp-%s.zip"', download_target, url)
- local make_executable_cmd = string.format("chmod u+x '%s'", bin_path)
-
- local X = {}
- function X.install()
- local install_info = X.info()
- if install_info.is_installed then
- print(server_name, "is already installed")
- return
- end
- if not (util.has_bins("curl")) then
- error('Need "curl" to install this.')
- return
- end
- vim.fn.mkdir(install_dir, 'p')
- vim.fn.system(download_cmd)
- vim.fn.system(extract_cmd)
- vim.fn.system(make_executable_cmd)
- end
- function X.info()
- return {
- is_installed = util.path.exists(bin_path);
- install_dir = install_dir;
- cmd = { bin_path, "--languageserver" , "--hostPID", tostring(pid)};
- }
- end
- function X.configure(config)
- local install_info = X.info()
- if install_info.is_installed then
- config.cmd = install_info.cmd
- end
- end
- return X
-end
-
-local installer = make_installer()
-
-configs[server_name] = {
- default_config = {
- cmd = installer.info().cmd;
- filetypes = {"cs", "vb"};
- root_dir = util.root_pattern("*.csproj", "*.sln");
- on_new_config = function(config)
- installer.configure(config)
- end;
- init_options = {
- };
- };
- -- on_new_config = function(new_config) end;
- -- on_attach = function(client, bufnr) end;
- docs = {
- description = [[
-https://github.com/omnisharp/omnisharp-roslyn
-OmniSharp server based on Roslyn workspaces
-]];
- default_config = {
- root_dir = [[root_pattern(".csproj", ".sln", ".git")]];
- };
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/purescriptls.lua b/lua/nvim_lsp/purescriptls.lua
deleted file mode 100644
index 6a00caae..00000000
--- a/lua/nvim_lsp/purescriptls.lua
+++ /dev/null
@@ -1,46 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "purescriptls"
-local bin_name = "purescript-language-server"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "purescript", "purescript-language-server" };
- binaries = {bin_name, "purs"};
-}
-
-configs[server_name] = {
- default_config = {
- cmd = {"purescript-language-server", "--stdio"};
- filetypes = {"purescript"};
- root_dir = util.root_pattern("spago.dhall", "bower.json");
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- package_json = "https://raw.githubusercontent.com/nwolverson/vscode-ide-purescript/master/package.json";
- description = [[
-https://github.com/nwolverson/purescript-language-server
-`purescript-language-server` can be installed via `:LspInstall purescriptls` or by yourself with `npm`
-```sh
-npm install -g purescript-language-server
-```
-]];
- default_config = {
- root_dir = [[root_pattern("spago.dhall, bower.json")]];
- };
- };
-};
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
-
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/pyls.lua b/lua/nvim_lsp/pyls.lua
deleted file mode 100644
index 6d4aeb56..00000000
--- a/lua/nvim_lsp/pyls.lua
+++ /dev/null
@@ -1,23 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-
-configs.pyls = {
- default_config = {
- cmd = {"pyls"};
- filetypes = {"python"};
- root_dir = function(fname)
- return vim.fn.getcwd()
- end;
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/palantir/python-language-server/develop/vscode-client/package.json";
- description = [[
-https://github.com/palantir/python-language-server
-
-`python-language-server`, a language server for Python.
- ]];
- default_config = {
- root_dir = "vim's starting directory";
- };
- };
-};
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/pyls_ms.lua b/lua/nvim_lsp/pyls_ms.lua
deleted file mode 100644
index 6b66a600..00000000
--- a/lua/nvim_lsp/pyls_ms.lua
+++ /dev/null
@@ -1,153 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local name = "pyls_ms"
-
-local function get_latest_pyls()
- local f = io.popen("curl -k --silent 'https://pvsc.blob.core.windows.net/python-language-server-stable?restype=container&comp=list&prefix=Python-Language-Server-osx-x64'")
- local l = f:read("*a")
- f:close()
- local version
- for w in string.gmatch (l, "x64%.(.-).nupkg") do
- version = w
- end
- return version
-end
-
-local function make_installer()
- local P = util.path.join
- local install_dir = P{util.base_install_dir, name}
-
- local bin = P{install_dir, "Microsoft.Python.LanguageServer.dll"}
- local cmd = {"dotnet", "exec", bin}
-
- local X = {}
- function X.install()
- local install_info = X.info()
- if install_info.is_installed then
- print(name, "is already installed")
- return
- end
- if not (util.has_bins("curl")) then
- error('Need "curl" to install this.')
- return
- end
- if not (util.has_bins("dotnet")) then
- error('Need ".NET Core" to install this.')
- return
- end
-
- local system
- if vim.fn.has('mac') == 1 then
- system = 'osx'
- elseif vim.fn.has('unix') == 1 then
- system = 'linux'
- elseif vim.fn.has('win32') == 1 then
- system = 'win'
- else
- error('Unable to identify host operating system')
- end
-
- local version = get_latest_pyls()
- local url = string.format("https://pvsc.azureedge.net/python-language-server-stable/Python-Language-Server-%s-x64.%s.nupkg", string.lower(system), version)
- local download_cmd = string.format('curl -fLo %s --create-dirs %s', install_info.install_dir .. "/pyls.nupkg", url)
- local install_cmd = ''
-
- if vim.fn.has('mac') == 1 or vim.fn.has('unix') == 1 then
- install_cmd = "unzip " .. install_info.install_dir .. "/pyls.nupkg -d " .. install_info.install_dir
- elseif vim.fn.has('win32') == 1 then
- install_cmd = "Expand-Archive -Force " .. install_info.install_dir .. "/pyls.nupkg -d " .. install_info.install_dir
- end
-
- vim.fn.system(download_cmd)
- vim.fn.system(install_cmd)
- end
- function X.info()
- return {
- is_installed = util.path.exists(bin);
- install_dir = install_dir;
- cmd = cmd;
- }
- end
- function X.configure(config)
- local install_info = X.info()
- if install_info.is_installed then
- config.cmd = cmd
- end
- end
- return X
-end
-
-local installer = make_installer()
-
-configs[name] = {
-
- default_config = {
- filetypes = {"python"};
- root_dir = function(fname)
- return util.find_git_ancestor(fname) or vim.loop.os_homedir()
- end;
- settings = {
- python = {
- analysis = {
- errors = {};
- info = {};
- disabled = {};
- };
- };
- };
- on_new_config = function(config)
- installer.configure(config)
- end;
- init_options = {
- interpreter = {
- properties =
- {
- InterpreterPath = "";
- Version = "";
- };
- };
- displayOptions = {};
- analysisUpdates = true;
- asyncStartup = true;
- };
- };
- docs = {
- description = [[
-https://github.com/Microsoft/python-language-server
-
-`python-language-server`, a language server for Python.
-
-Requires [.NET Core](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script) to run. On Linux or macOS:
-
-```bash
-curl -L https://dot.net/v1/dotnet-install.sh | sh
-```
-
-`python-language-server` can be installed via `:LspInstall pyls_ms` or you can [build](https://github.com/microsoft/python-language-server/blob/master/CONTRIBUTING.md#setup) your own.
-
-If you want to use your own build, set cmd to point to `Microsoft.Python.languageServer.dll`.
-
-```lua
-cmd = { "dotnet", "exec", "path/to/Microsoft.Python.languageServer.dll" };
-```
-
-If the `python` interpreter is not in your PATH environment variable, set the `InterpreterPath` and `Version` properties accordingly.
-
-```lua
-InterpreterPath = "path/to/python",
-Version = "3.8"
-```
-
-This server accepts configuration via the `settings` key.
-
- ]];
- default_config = {
- root_dir = "vim's starting directory";
- };
- };
-};
-
-configs[name].install = installer.install
-configs[name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/r_language_server.lua b/lua/nvim_lsp/r_language_server.lua
deleted file mode 100644
index 91c619c2..00000000
--- a/lua/nvim_lsp/r_language_server.lua
+++ /dev/null
@@ -1,30 +0,0 @@
-local util = require 'nvim_lsp/util'
-local configs = require 'nvim_lsp/configs'
-
-configs.r_language_server = {
- default_config = {
- cmd = {"R", "--slave", "-e", "languageserver::run()"};
- filetypes = {"r", "rmd"};
- root_dir = function(fname)
- return util.find_git_ancestor(fname) or vim.loop.os_homedir()
- end;
- log_level = vim.lsp.protocol.MessageType.Warning;
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/REditorSupport/vscode-r-lsp/master/package.json";
- description = [[
- [languageserver](https://github.com/REditorSupport/languageserver) is an
- implementation of the Microsoft's Language Server Protocol for the R
- language.
-
- It is released on CRAN and can be easily installed by
-
- ```R
- install.packages("languageserver")
- ```
- ]];
- default_config = {
- root_dir = [[root_pattern(".git") or os_homedir]]
- };
- };
-}
diff --git a/lua/nvim_lsp/rls.lua b/lua/nvim_lsp/rls.lua
deleted file mode 100644
index bf02986b..00000000
--- a/lua/nvim_lsp/rls.lua
+++ /dev/null
@@ -1,31 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.rls = {
- default_config = {
- cmd = {"rls"};
- filetypes = {"rust"};
- root_dir = util.root_pattern("Cargo.toml");
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/rust-lang/rls-vscode/master/package.json";
- description = [[
-https://github.com/rust-lang/rls
-
-rls, a language server for Rust
-
-See https://github.com/rust-lang/rls#setup to setup rls itself.
-See https://github.com/rust-lang/rls#configuration for rls-specific settings.
-
-If you want to use rls for a particular build, eg nightly, set cmd as follows:
-
-```lua
-cmd = {"rustup", "run", "nightly", "rls"}
-```
- ]];
- default_config = {
- root_dir = [[root_pattern("Cargo.toml")]];
- };
- };
-};
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/rnix.lua b/lua/nvim_lsp/rnix.lua
deleted file mode 100644
index 50acc2ec..00000000
--- a/lua/nvim_lsp/rnix.lua
+++ /dev/null
@@ -1,81 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local name = "rnix"
-
-local function make_installer()
- local P = util.path.join
- local install_dir = P{util.base_install_dir, name}
-
- local bin = P{install_dir, "bin", "rnix-lsp"}
- local cmd = {bin}
-
- local X = {}
- function X.install()
- local install_info = X.info()
- if install_info.is_installed then
- print(name, "is already installed")
- return
- end
- if not (util.has_bins("cargo")) then
- error('Need "cargo" to install this.')
- return
- end
-
- local install_cmd = "cargo install rnix-lsp --root=" .. install_info.install_dir .. " rnix-lsp"
-
- vim.fn.system(install_cmd)
- end
- function X.info()
- return {
- is_installed = util.path.exists(bin);
- install_dir = install_dir;
- cmd = cmd;
- }
- end
- function X.configure(config)
- local install_info = X.info()
- if install_info.is_installed then
- config.cmd = cmd
- end
- end
- return X
-end
-
-local installer = make_installer()
-
-configs[name] = {
-
- default_config = {
- cmd = {"rnix-lsp"};
- filetypes = {"nix"};
- root_dir = function(fname)
- return util.find_git_ancestor(fname) or vim.loop.os_homedir()
- end;
- settings = {
- };
- on_new_config = function(config)
- installer.configure(config)
- end;
- init_options = {
- };
- };
- docs = {
- description = [[
-https://github.com/nix-community/rnix-lsp
-
-A language server for Nix providing basic completion and formatting via nixpkgs-fmt.
-
-To install manually, run `cargo install rnix-lsp`. If you are using nix, rnix-lsp is in nixpkgs.
-
-This server accepts configuration via the `settings` key.
-
- ]];
- default_config = {
- root_dir = "vim's starting directory";
- };
- };
-};
-
-configs[name].install = installer.install
-configs[name].install_info = installer.info
diff --git a/lua/nvim_lsp/rome.lua b/lua/nvim_lsp/rome.lua
deleted file mode 100644
index 504a8bde..00000000
--- a/lua/nvim_lsp/rome.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.rome = {
- default_config = {
- cmd = {'rome', 'lsp'},
- filetypes = {
- 'javascript',
- 'javascriptreact',
- 'json',
- 'typescript',
- 'typescript.tsx',
- 'typescriptreact'
- },
- root_dir = function(fname)
- return util.find_package_json_ancestor(fname) or
- util.find_node_modules_ancestor(fname) or
- util.find_git_ancestor(fname) or
- util.path.dirname(fname)
- end
- },
- docs = {
- description = [[
-https://romefrontend.dev
-
-Language server for the Rome Frontend Toolchain.
-
-```sh
-npm install [-g] rome
-```
-]],
- default_config = {
- root_dir = [[root_pattern('package.json', 'node_modules', '.git') or dirname]]
- }
- }
-}
-
diff --git a/lua/nvim_lsp/rust_analyzer.lua b/lua/nvim_lsp/rust_analyzer.lua
deleted file mode 100644
index f5f48f01..00000000
--- a/lua/nvim_lsp/rust_analyzer.lua
+++ /dev/null
@@ -1,27 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.rust_analyzer = {
- default_config = {
- cmd = {"rust-analyzer"};
- filetypes = {"rust"};
- root_dir = util.root_pattern("Cargo.toml", "rust-project.json");
- settings = {
- ["rust-analyzer"] = {}
- }
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/rust-analyzer/rust-analyzer/master/editors/code/package.json";
- description = [[
-https://github.com/rust-analyzer/rust-analyzer
-
-rust-analyzer (aka rls 2.0), a language server for Rust
-
-See [docs](https://github.com/rust-analyzer/rust-analyzer/tree/master/docs/user#settings) for extra settings.
- ]];
- default_config = {
- root_dir = [[root_pattern("Cargo.toml", "rust-project.json")]];
- };
- };
-};
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/scry.lua b/lua/nvim_lsp/scry.lua
deleted file mode 100644
index 6080f6c3..00000000
--- a/lua/nvim_lsp/scry.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.scry = {
- default_config = {
- cmd = {'scry'},
- filetypes = {'crystal'},
- root_dir = function(fname)
- return util.root_pattern('shard.yml') or
- util.find_git_ancestor(fname) or
- util.path.dirname(fname)
- end
- },
- docs = {
- description = [[
-https://github.com/crystal-lang-tools/scry
-
-Crystal language server.
-]],
- default_config = {
- root_dir = [[root_pattern('shard.yml', '.git') or dirname]]
- }
- }
-}
diff --git a/lua/nvim_lsp/solargraph.lua b/lua/nvim_lsp/solargraph.lua
deleted file mode 100644
index ee023a1c..00000000
--- a/lua/nvim_lsp/solargraph.lua
+++ /dev/null
@@ -1,32 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local bin_name = "solargraph"
-if vim.fn.has('win32') == 1 then
- bin_name = bin_name..'.bat'
-end
-configs.solargraph = {
- default_config = {
- cmd = {bin_name, "stdio"};
- filetypes = {"ruby"};
- root_dir = util.root_pattern("Gemfile", ".git");
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/castwide/vscode-solargraph/master/package.json";
- description = [[
-https://solargraph.org/
-
-solargraph, a language server for Ruby
-
-You can install solargraph via gem install.
-
-```sh
-gem install solargraph
-```
- ]];
- default_config = {
- root_dir = [[root_pattern("Gemfile", ".git")]];
- };
- };
-};
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/sourcekit.lua b/lua/nvim_lsp/sourcekit.lua
deleted file mode 100644
index e4dc0042..00000000
--- a/lua/nvim_lsp/sourcekit.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.sourcekit = {
- default_config = {
- cmd = {"xcrun", "sourcekit-lsp"};
- filetypes = {"swift", "c", "cpp", "objective-c", "objective-cpp"};
- root_dir = util.root_pattern("Package.swift", ".git")
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/apple/sourcekit-lsp/master/Editors/vscode/package.json";
- description = [[
-https://github.com/apple/sourcekit-lsp
-
-Language server for Swift and C/C++/Objective-C.
- ]];
- default_config = {
- root_dir = [[root_pattern("Package.swift", ".git")]];
- };
- };
-};
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/sqlls.lua b/lua/nvim_lsp/sqlls.lua
deleted file mode 100644
index b17bcbc6..00000000
--- a/lua/nvim_lsp/sqlls.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "sqlls"
-local bin_name = "sql-language-server"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "sql-language-server" };
- binaries = {bin_name};
-}
-
-local root_pattern = util.root_pattern(".sqllsrc.json")
-
-configs[server_name] = {
- default_config = {
- filetypes = {"sql", "mysql"};
- root_dir = function(fname)
- return root_pattern(fname) or vim.loop.os_homedir()
- end;
- settings = {};
- };
- on_new_config = function(config)
- local install_info = installer.info();
- local P = util.path.join
- if install_info.is_installed then
- local bin_ex = P{install_info.bin_dir, bin_name}
- config.cmd = {bin_ex, "up", "--method", "stdio"}
- end
- end;
- docs = {
- description = [[
-https://github.com/joe-re/sql-language-server
-
-`cmd` value is **not set** by default. An installer is provided via the `:LspInstall` command that uses the *nvm_lsp node_modules* directory to find the sql-language-server executable. The `cmd` value can be overriden in the `setup` table;
-
-```lua
-require'nvim_lsp'.sqlls.setup{
- cmd = {"path/to/command", "up", "--method", "stdio"};
- ...
-}
-```
-
-This LSP can be installed via `:LspInstall sqlls` or with `npm`. If using LspInstall, run `:LspInstallInfo sqlls` to view installation paths. Find further instructions on manual installation of the sql-language-server at [joe-re/sql-language-server](https://github.com/joe-re/sql-language-server).
-<br>
- ]];
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/sumneko_lua.lua b/lua/nvim_lsp/sumneko_lua.lua
deleted file mode 100644
index 129ad35f..00000000
--- a/lua/nvim_lsp/sumneko_lua.lua
+++ /dev/null
@@ -1,133 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local name = "sumneko_lua"
-local bin_name = "lua-language-server"
-
-local function make_installer()
- local P = util.path.join
- local install_dir = P{util.base_install_dir, name}
- local git_dir = P{install_dir, bin_name}
- local os, bin, ninja_zip, build_file
-
- if vim.fn.has('osx') == 1 then
- os = 'macOS'
- bin = P{git_dir, "bin", "macOS", bin_name}
- ninja_zip = "ninja-mac.zip"
- build_file = "macos.ninja"
- elseif vim.fn.has('unix') == 1 then
- os = 'Linux'
- bin = P{git_dir, "bin", "Linux", bin_name}
- ninja_zip = "ninja-linux.zip"
- build_file = "linux.ninja"
- end
- local main_file = P{git_dir, "main.lua"}
- local cmd = {bin, '-E', main_file}
-
- local X = {}
- function X.install()
- if os == nil then
- error("This installer supports Linux and macOS only")
- return
- end
- local install_info = X.info()
- if install_info.is_installed then
- print(name, "is already installed")
- return
- end
- if not (util.has_bins("ninja") or util.has_bins("curl")) then
- error('Need either "ninja" or "curl" (to download ninja) to install this.')
- return
- end
- if not util.has_bins("sh", "chmod", "unzip", "clang") then
- error('Need the binaries "sh", "chmod", "unzip", "clang" to install this')
- return
- end
- local script = [=[
-set -e
-bin_name=]=]..bin_name..'\n'..[=[
-ninja_zip=]=]..ninja_zip..'\n'..[=[
-build_file=]=]..build_file..'\n'..[=[
-
-# Install ninja if not available.
-which ninja >/dev/null || {
- test -x ninja || {
- curl -LO https://github.com/ninja-build/ninja/releases/download/v1.9.0/$ninja_zip
- unzip $ninja_zip
- chmod +x ninja
- }
- export PATH="$PWD:$PATH"
-}
-
-# clone project
-git clone https://github.com/sumneko/$bin_name
-cd $bin_name
-git submodule update --init --recursive
-
-# build
-cd 3rd/luamake
-ninja -f ninja/$build_file
-cd ../..
-./3rd/luamake/luamake rebuild
- ]=]
- vim.fn.mkdir(install_info.install_dir, "p")
- util.sh(script, install_info.install_dir)
- end
- function X.info()
- return {
- is_installed = util.has_bins(bin);
- install_dir = install_dir;
- cmd = cmd;
- }
- end
- function X.configure(config)
- local install_info = X.info()
- if install_info.is_installed then
- config.cmd = cmd
- end
- end
- return X
-end
-
-local installer = make_installer()
-
-configs[name] = {
- default_config = {
- filetypes = {'lua'};
- root_dir = function(fname)
- return util.find_git_ancestor(fname) or vim.loop.os_homedir()
- end;
- log_level = vim.lsp.protocol.MessageType.Warning;
- };
- on_new_config = function(config)
- installer.configure(config)
- end;
- docs = {
- package_json = "https://raw.githubusercontent.com/sumneko/vscode-lua/master/package.json";
- description = [[
-https://github.com/sumneko/lua-language-server
-
-Lua language server. **By default, this doesn't have a `cmd` set.** This is
-because it doesn't provide a global binary. We provide an installer for Linux
-and macOS using `:LspInstall`. If you wish to install it yourself, [here is a
-guide](https://github.com/sumneko/lua-language-server/wiki/Build-and-Run-(Standalone)).
-So you should set `cmd` yourself like this.
-
-```lua
-require'nvim_lsp'.sumneko_lua.setup{
- cmd = {"path", "to", "cmd"};
- ...
-}
-```
-
-If you install via our installer, if you execute `:LspInstallInfo sumneko_lua`, you can know `cmd` value.
-]];
- default_config = {
- root_dir = [[root_pattern(".git") or os_homedir]];
- };
- };
-}
-
-configs[name].install = installer.install
-configs[name].install_info = installer.info
--- vim:et ts=2
diff --git a/lua/nvim_lsp/terraformls.lua b/lua/nvim_lsp/terraformls.lua
deleted file mode 100644
index 76b2c2d0..00000000
--- a/lua/nvim_lsp/terraformls.lua
+++ /dev/null
@@ -1,23 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-configs.terraformls = {
- default_config = {
- cmd = {"terraform-ls"};
- filetypes = {"terraform"};
- root_dir = util.root_pattern(".terraform", ".git");
- };
- docs = {
- package_json = "https://raw.githubusercontent.com/hashicorp/vscode-terraform/master/package.json";
- description = [[
-https://github.com/hashicorp/terraform-ls
-
-Terraform language server
-Download a released binary from https://github.com/hashicorp/terraform-ls/releases.
-]];
- default_config = {
- root_dir = [[root_pattern(".terraform", ".git")]];
- };
- };
-}
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/texlab.lua b/lua/nvim_lsp/texlab.lua
deleted file mode 100644
index 695cdaaf..00000000
--- a/lua/nvim_lsp/texlab.lua
+++ /dev/null
@@ -1,85 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-local lsp = vim.lsp
-
-local texlab_build_status = vim.tbl_add_reverse_lookup {
- Success = 0;
- Error = 1;
- Failure = 2;
- Cancelled = 3;
-}
-
-local function buf_build(bufnr)
- bufnr = util.validate_bufnr(bufnr)
- local params = { textDocument = { uri = vim.uri_from_bufnr(bufnr) } }
- lsp.buf_request(bufnr, 'textDocument/build', params,
- function(err, _, result, _)
- if err then error(tostring(err)) end
- print("Build "..texlab_build_status[result.status])
- end)
-end
-
--- bufnr isn't actually required here, but we need a valid buffer in order to
--- be able to find the client for buf_request.
--- TODO find a client by looking through buffers for a valid client?
--- local function build_cancel_all(bufnr)
--- bufnr = util.validate_bufnr(bufnr)
--- local params = { token = "texlab-build-*" }
--- lsp.buf_request(bufnr, 'window/progress/cancel', params, function(err, method, result, client_id)
--- if err then error(tostring(err)) end
--- print("Cancel result", vim.inspect(result))
--- end)
--- end
-
-configs.texlab = {
- default_config = {
- cmd = {"texlab"};
- filetypes = {"tex", "bib"};
- root_dir = vim.loop.os_homedir;
- settings = {
- latex = {
- build = {
- args = {"-pdf", "-interaction=nonstopmode", "-synctex=1"};
- executable = "latexmk";
- onSave = false;
- };
- forwardSearch = {
- args = {};
- executable = nil;
- onSave = false;
- };
- lint = {
- onChange = false;
- };
- };
- bibtex = {
- formatting = {
- lineLength = 120
- };
- };
- };
- };
- commands = {
- TexlabBuild = {
- function()
- buf_build(0)
- end;
- description = "Build the current buffer";
- };
- };
- docs = {
- description = [[
-https://texlab.netlify.com/
-
-A completion engine built from scratch for (La)TeX.
-
-See https://texlab.netlify.com/docs/reference/configuration for configuration options.
-]];
- default_config = {
- root_dir = "vim's starting directory";
- };
- };
-}
-
-configs.texlab.buf_build = buf_build
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/tsserver.lua b/lua/nvim_lsp/tsserver.lua
deleted file mode 100644
index 1bfc65f4..00000000
--- a/lua/nvim_lsp/tsserver.lua
+++ /dev/null
@@ -1,50 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "tsserver"
-local bin_name = "typescript-language-server"
-if vim.fn.has('win32') == 1 then
- bin_name = bin_name..".cmd"
-end
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "typescript-language-server" };
- binaries = {bin_name};
-}
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name, "--stdio"};
- filetypes = {"javascript", "javascriptreact", "javascript.jsx", "typescript", "typescriptreact", "typescript.tsx"};
- root_dir = util.root_pattern("package.json", "tsconfig.json", ".git");
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- description = [[
-https://github.com/theia-ide/typescript-language-server
-
-`typescript-language-server` can be installed via `:LspInstall tsserver` or by yourself with `npm`:
-```sh
-npm install -g typescript-language-server
-```
-]];
- default_config = {
- root_dir = [[root_pattern("package.json", "tsconfig.json", ".git")]];
- };
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/util.lua b/lua/nvim_lsp/util.lua
deleted file mode 100644
index 7bff215f..00000000
--- a/lua/nvim_lsp/util.lua
+++ /dev/null
@@ -1,445 +0,0 @@
-local vim = vim
-local validate = vim.validate
-local api = vim.api
-local lsp = vim.lsp
-local uv = vim.loop
-local fn = vim.fn
-
-local M = {}
-
-M.default_config = {
- log_level = lsp.protocol.MessageType.Warning;
- message_level = lsp.protocol.MessageType.Warning;
- settings = vim.empty_dict();
- init_options = vim.empty_dict();
- callbacks = {};
-}
-
-function M.validate_bufnr(bufnr)
- validate {
- bufnr = { bufnr, 'n' }
- }
- return bufnr == 0 and api.nvim_get_current_buf() or bufnr
-end
-
-function M.add_hook_before(func, new_fn)
- if func then
- return function(...)
- -- TODO which result?
- new_fn(...)
- return func(...)
- end
- else
- return new_fn
- end
-end
-
-function M.add_hook_after(func, new_fn)
- if func then
- return function(...)
- -- TODO which result?
- func(...)
- return new_fn(...)
- end
- else
- return new_fn
- end
-end
-
-function M.tbl_deep_extend(behavior, ...)
- if (behavior ~= 'error' and behavior ~= 'keep' and behavior ~= 'force') then
- error('invalid "behavior": '..tostring(behavior))
- end
-
- if select('#', ...) < 2 then
- error('wrong number of arguments (given '..tostring(1 + select('#', ...))..', expected at least 3)')
- end
-
- local ret = {}
- if vim._empty_dict_mt ~= nil and getmetatable(select(1, ...)) == vim._empty_dict_mt then
- ret = vim.empty_dict()
- end
-
- for i = 1, select('#', ...) do
- local tbl = select(i, ...)
- vim.validate{["after the second argument"] = {tbl,'t'}}
- if tbl then
- for k, v in pairs(tbl) do
- if type(v) == 'table' and not vim.tbl_islist(v) then
- ret[k] = M.tbl_deep_extend(behavior, ret[k] or vim.empty_dict(), v)
- elseif behavior ~= 'force' and ret[k] ~= nil then
- if behavior == 'error' then
- error('key found in more than one map: '..k)
- end -- Else behavior is "keep".
- else
- ret[k] = v
- end
- end
- end
- end
- return ret
-end
-
-function M.nvim_multiline_command(command)
- validate { command = { command, 's' } }
- for line in vim.gsplit(command, "\n", true) do
- api.nvim_command(line)
- end
-end
-
-function M.lookup_section(settings, section)
- for part in vim.gsplit(section, '.', true) do
- settings = settings[part]
- if not settings then
- return
- end
- end
- return settings
-end
-
-function M.create_module_commands(module_name, commands)
- for command_name, def in pairs(commands) do
- local parts = {"command!"}
- -- Insert attributes.
- for k, v in pairs(def) do
- if type(k) == 'string' and type(v) == 'boolean' and v then
- table.insert(parts, "-"..k)
- elseif type(k) == 'number' and type(v) == 'string' and v:match("^%-") then
- table.insert(parts, v)
- end
- end
- table.insert(parts, command_name)
- -- The command definition.
- table.insert(parts,
- string.format("lua require'nvim_lsp'[%q].commands[%q][1](<f-args>)", module_name, command_name))
- api.nvim_command(table.concat(parts, " "))
- end
-end
-
-function M.has_bins(...)
- for i = 1, select("#", ...) do
- if 0 == fn.executable((select(i, ...))) then
- return false
- end
- end
- return true
-end
-
--- Some path utilities
-M.path = (function()
- local function exists(filename)
- local stat = uv.fs_stat(filename)
- return stat and stat.type or false
- end
-
- local function is_dir(filename)
- return exists(filename) == 'directory'
- end
-
- local function is_file(filename)
- return exists(filename) == 'file'
- end
-
- local is_windows = uv.os_uname().version:match("Windows")
- local path_sep = is_windows and "\\" or "/"
-
- local is_fs_root
- if is_windows then
- is_fs_root = function(path)
- return path:match("^%a:$")
- end
- else
- is_fs_root = function(path)
- return path == "/"
- end
- end
-
- local function is_absolute(filename)
- if is_windows then
- return filename:match("^%a:") or filename:match("^\\\\")
- else
- return filename:match("^/")
- end
- end
-
- local dirname
- do
- local strip_dir_pat = path_sep.."([^"..path_sep.."]+)$"
- local strip_sep_pat = path_sep.."$"
- dirname = function(path)
- if not path then return end
- local result = path:gsub(strip_sep_pat, ""):gsub(strip_dir_pat, "")
- if #result == 0 then
- return "/"
- end
- return result
- end
- end
-
- local function path_join(...)
- local result =
- table.concat(
- vim.tbl_flatten {...}, path_sep):gsub(path_sep.."+", path_sep)
- return result
- end
-
- -- Traverse the path calling cb along the way.
- local function traverse_parents(path, cb)
- path = uv.fs_realpath(path)
- local dir = path
- -- Just in case our algo is buggy, don't infinite loop.
- for _ = 1, 100 do
- dir = dirname(dir)
- if not dir then return end
- -- If we can't ascend further, then stop looking.
- if cb(dir, path) then
- return dir, path
- end
- if is_fs_root(dir) then
- break
- end
- end
- end
-
- -- Iterate the path until we find the rootdir.
- local function iterate_parents(path)
- path = uv.fs_realpath(path)
- local function it(s, v)
- if not v then return end
- if is_fs_root(v) then return end
- return dirname(v), path
- end
- return it, path, path
- end
-
- local function is_descendant(root, path)
- if (not path) then
- return false;
- end
-
- local function cb(dir, _)
- return dir == root;
- end
-
- local dir, _ = traverse_parents(path, cb);
-
- return dir == root;
- end
-
- return {
- is_dir = is_dir;
- is_file = is_file;
- is_absolute = is_absolute;
- exists = exists;
- sep = path_sep;
- dirname = dirname;
- join = path_join;
- traverse_parents = traverse_parents;
- iterate_parents = iterate_parents;
- is_descendant = is_descendant;
- }
-end)()
-
-
--- Returns a function(root_dir), which, when called with a root_dir it hasn't
--- seen before, will call make_config(root_dir) and start a new client.
-function M.server_per_root_dir_manager(_make_config)
- local clients = {}
- local manager = {}
-
- function manager.add(root_dir)
- if not root_dir then return end
- if not M.path.is_dir(root_dir) then return end
-
- -- Check if we have a client alredy or start and store it.
- local client_id = clients[root_dir]
- if not client_id then
- local new_config = _make_config(root_dir)
- new_config.on_exit = M.add_hook_before(new_config.on_exit, function()
- clients[root_dir] = nil
- end)
- client_id = lsp.start_client(new_config)
- clients[root_dir] = client_id
- end
- return client_id
- end
-
- function manager.clients()
- local res = {}
- for _, id in pairs(clients) do
- local client = lsp.get_client_by_id(id)
- if client then
- table.insert(res, client)
- end
- end
- return res
- end
-
- return manager
-end
-
-function M.search_ancestors(startpath, func)
- validate { func = {func, 'f'} }
- if func(startpath) then return startpath end
- for path in M.path.iterate_parents(startpath) do
- if func(path) then return path end
- end
-end
-
-function M.root_pattern(...)
- local patterns = vim.tbl_flatten {...}
- local function matcher(path)
- for _, pattern in ipairs(patterns) do
- if M.path.exists(vim.fn.glob(M.path.join(path, pattern))) then
- return path
- end
- end
- end
- return function(startpath)
- return M.search_ancestors(startpath, matcher)
- end
-end
-function M.find_git_ancestor(startpath)
- return M.search_ancestors(startpath, function(path)
- if M.path.is_dir(M.path.join(path, ".git")) then
- return path
- end
- end)
-end
-function M.find_node_modules_ancestor(startpath)
- return M.search_ancestors(startpath, function(path)
- if M.path.is_dir(M.path.join(path, "node_modules")) then
- return path
- end
- end)
-end
-function M.find_package_json_ancestor(startpath)
- return M.search_ancestors(startpath, function(path)
- if M.path.is_file(M.path.join(path, "package.json")) then
- return path
- end
- end)
-end
-
-local function validate_string_list(t)
- for _, v in ipairs(t) do
- if type(v) ~= 'string' then
- return false
- end
- end
- return true
-end
-
-local function map_list(t, func)
- local res = {}
- for i, v in ipairs(t) do table.insert(res, func(v, i)) end
- return res
-end
-
-local function zip_lists_to_map(a, b)
- assert(#a == #b)
- local res = {}
- for i = 1, #a do res[a[i]] = b[i] end
- return res
-end
-
-local base_install_dir = M.path.join(fn.stdpath("cache"), "nvim_lsp")
-M.base_install_dir = base_install_dir
-function M.npm_installer(config)
- validate {
- server_name = {config.server_name, 's'};
- packages = {config.packages, validate_string_list, 'List of npm package names'};
- binaries = {config.binaries, validate_string_list, 'List of binary names'};
- post_install_script = {config.post_install_script, 's', true};
- }
-
- local install_dir = M.path.join(base_install_dir, config.server_name)
- local bin_dir = M.path.join(install_dir, "node_modules", ".bin")
- local function bin_path(name)
- return M.path.join(bin_dir, name)
- end
-
- local binary_paths = map_list(config.binaries, bin_path)
-
- local function get_install_info()
- return {
- bin_dir = bin_dir;
- install_dir = install_dir;
- binaries = zip_lists_to_map(config.binaries, binary_paths);
- is_installed = M.has_bins(unpack(binary_paths));
- }
- end
-
- local function install()
- -- TODO(ashkan) need all binaries or just the first?
- if M.has_bins(unpack(config.binaries)) then
- return print(config.server_name, "is already installed (not by Nvim)")
- end
- if not M.has_bins("sh", "npm", "mkdir") then
- api.nvim_err_writeln('Installation requires "sh", "npm", "mkdir"')
- return
- end
- if get_install_info().is_installed then
- return print(config.server_name, "is already installed")
- end
- local install_params = {
- packages = table.concat(config.packages, ' ');
- install_dir = install_dir;
- post_install_script = config.post_install_script or '';
- }
- local cmd = io.popen("sh", "w")
- local install_script = ([[
- set -e
- mkdir -p "{{install_dir}}"
- cd "{{install_dir}}"
- [ ! -f package.json ] && npm init -y
- npm install {{packages}} --no-package-lock --no-save --production
- {{post_install_script}}
- ]]):gsub("{{(%S+)}}", install_params)
- cmd:write(install_script)
- cmd:close()
- if not get_install_info().is_installed then
- api.nvim_err_writeln('Installation of ' .. config.server_name .. ' failed')
- end
- end
-
- return {
- install = install;
- info = get_install_info;
- }
-end
-
-function M.sh(script, cwd)
- assert(cwd and M.path.is_dir(cwd), "sh: Invalid directory")
- -- switching to insert mode makes the buffer scroll as new output is added
- -- and makes it easy and intuitive to cancel the operation with Ctrl-C
- api.nvim_command("10new | startinsert")
- local bufnr = api.nvim_get_current_buf()
- local function on_exit(job_id, code, event_type)
- if code == 0 then
- api.nvim_command("silent bwipeout! "..bufnr)
- end
- end
- fn.termopen({"sh", "-c", script}, {cwd = cwd, on_exit = on_exit})
-end
-
-function M.format_vspackage_url(extension_name)
- local org, package = unpack(vim.split(extension_name, ".", true))
- assert(org and package)
- return string.format("https://marketplace.visualstudio.com/_apis/public/gallery/publishers/%s/vsextensions/%s/latest/vspackage", org, package)
-end
-
-
-function M.utf8_config(config)
- config.capabilities = config.capabilities or lsp.protocol.make_client_capabilities()
- config.capabilities.offsetEncoding = {"utf-8", "utf-16"}
- function config.on_init(client, result)
- if result.offsetEncoding then
- client.offset_encoding = result.offsetEncoding
- end
- end
- return config
-end
-
-return M
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/vimls.lua b/lua/nvim_lsp/vimls.lua
deleted file mode 100644
index 9f715289..00000000
--- a/lua/nvim_lsp/vimls.lua
+++ /dev/null
@@ -1,63 +0,0 @@
-local configs = require "nvim_lsp/configs"
-local util = require "nvim_lsp/util"
-
-local server_name = "vimls"
-local bin_name = "vim-language-server"
-if vim.fn.has('win32') == 1 then
- bin_name = bin_name..".cmd"
-end
-
-local installer = util.npm_installer {
- server_name = server_name,
- packages = {"vim-language-server"},
- binaries = {bin_name}
-}
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name, "--stdio"},
- filetypes = {"vim"},
- root_dir = function(fname)
- return util.find_git_ancestor(fname) or vim.loop.os_homedir()
- end,
- init_options = {
- iskeyword = "@,48-57,_,192-255,-#",
- vimruntime = "",
- runtimepath = "",
- diagnostic = {enable = true},
- indexes = {
- runtimepath = true,
- gap = 100,
- count = 3,
- projectRootPatterns = {"runtime", "nvim", ".git", "autoload", "plugin"}
- },
- suggest = {fromVimruntime = true, fromRuntimepath = true}
- },
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == "table" then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end,
- docs = {
- description = [[
-https://github.com/iamcco/vim-language-server
-
-If you don't want to use Nvim to install it, then you can use:
-```sh
-npm install -g vim-language-server
-```
-]]
- }
- }
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
-
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/vuels.lua b/lua/nvim_lsp/vuels.lua
deleted file mode 100644
index 0118e3fd..00000000
--- a/lua/nvim_lsp/vuels.lua
+++ /dev/null
@@ -1,125 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "vuels"
-local bin_name = "vls"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = { "vls" };
- binaries = {bin_name};
-}
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name};
- filetypes = {"vue"};
- root_dir = util.root_pattern("package.json", "vue.config.js");
- init_options = {
- config = {
- vetur = {
- useWorkspaceDependencies = false;
- validation = {
- template = true;
- style = true;
- script = true;
- };
- completion = {
- autoImport = false;
- useScaffoldSnippets = false;
- tagCasing = "kebab";
- };
- format = {
- defaultFormatter = {
- js = "none";
- ts = "none";
- };
- defaultFormatterOptions = {};
- scriptInitialIndent = false;
- styleInitialIndent = false;
- }
- };
- css = {};
- html = {
- suggest = {};
- };
- javascript = {
- format = {};
- };
- typescript = {
- format = {};
- };
- emmet = {};
- stylusSupremacy = {};
- };
- };
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- -- Try to preserve any additional args from upstream changes.
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- package_json = "https://raw.githubusercontent.com/vuejs/vetur/master/package.json";
- description = [[
-https://github.com/vuejs/vetur/tree/master/server
-
-Vue language server(vls)
-`vue-language-server` can be installed via `:LspInstall vuels` or by yourself with `npm`:
-```sh
-npm install -g vls
-```
-]];
- default_config = {
- root_dir = [[root_pattern("package.json", "vue.config.js")]];
- init_options = {
- config = {
- vetur = {
- useWorkspaceDependencies = false;
- validation = {
- template = true;
- style = true;
- script = true;
- };
- completion = {
- autoImport = false;
- useScaffoldSnippets = false;
- tagCasing = "kebab";
- };
- format = {
- defaultFormatter = {
- js = "none";
- ts = "none";
- };
- defaultFormatterOptions = {};
- scriptInitialIndent = false;
- styleInitialIndent = false;
- }
- };
- css = {};
- html = {
- suggest = {};
- };
- javascript = {
- format = {};
- };
- typescript = {
- format = {};
- };
- emmet = {};
- stylusSupremacy = {};
- };
- };
- };
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2
diff --git a/lua/nvim_lsp/yamlls.lua b/lua/nvim_lsp/yamlls.lua
deleted file mode 100644
index dcdb3ac3..00000000
--- a/lua/nvim_lsp/yamlls.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local configs = require 'nvim_lsp/configs'
-local util = require 'nvim_lsp/util'
-
-local server_name = "yamlls"
-local bin_name = "yaml-language-server"
-
-local installer = util.npm_installer {
- server_name = server_name;
- packages = {bin_name};
- binaries = {bin_name};
-}
-
-configs[server_name] = {
- default_config = {
- cmd = {bin_name, "--stdio"};
- filetypes = {"yaml"};
- root_dir = util.root_pattern(".git", vim.fn.getcwd());
- };
- on_new_config = function(new_config)
- local install_info = installer.info()
- if install_info.is_installed then
- if type(new_config.cmd) == 'table' then
- new_config.cmd[1] = install_info.binaries[bin_name]
- else
- new_config.cmd = {install_info.binaries[bin_name]}
- end
- end
- end;
- docs = {
- package_json = "https://raw.githubusercontent.com/redhat-developer/vscode-yaml/master/package.json";
- description = [[
-https://github.com/redhat-developer/yaml-language-server
-
-`yaml-language-server` can be installed via `:LspInstall yamlls` or by yourself with `npm`:
-```sh
-npm install -g yaml-language-server
-```
-]];
- default_config = {
- root_dir = [[root_pattern(".git", vim.fn.getcwd())]];
- };
- };
-}
-
-configs[server_name].install = installer.install
-configs[server_name].install_info = installer.info
--- vim:et ts=2 sw=2