diff options
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/filetype_map.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua | 2 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/metadata.lua | 3 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/init.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/vls/init.lua | 44 |
6 files changed, 52 insertions, 0 deletions
@@ -291,6 +291,7 @@ require("nvim-lsp-installer").setup({ | Terraform | `terraformls` | | Terraform [(docs)][tflint] | `tflint` | | TypeScript | `tsserver` | +| V | `vls` | | Vala | `vala_ls` | | VimL | `vimls` | | Vue | `volar` | diff --git a/lua/nvim-lsp-installer/_generated/filetype_map.lua b/lua/nvim-lsp-installer/_generated/filetype_map.lua index 09eed639..63c8edea 100644 --- a/lua/nvim-lsp-installer/_generated/filetype_map.lua +++ b/lua/nvim-lsp-installer/_generated/filetype_map.lua @@ -145,6 +145,7 @@ return { vb = { "omnisharp" }, verilog = { "svls", "verible" }, vim = { "vimls" }, + vlang = { "vls" }, vmasm = { "asm_lsp" }, vue = { "eslint", "stylelint_lsp", "tailwindcss", "volar", "vuels" }, wxss = { "stylelint_lsp" }, diff --git a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua index 0390ad63..ed22ed12 100644 --- a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua +++ b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua @@ -3,6 +3,7 @@ return { OpenFOAM = { "foam_ls" }, R = { "r_language_server" }, + V = { "vls" }, ["assembly-gas"] = { "asm_lsp" }, ["assembly-go"] = { "asm_lsp" }, ["assembly-nasm"] = { "asm_lsp" }, @@ -39,6 +40,7 @@ return { toml = { "taplo" }, typescript = { "eslint", "rome", "tsserver" }, verilog = { "verible" }, + vlang = { "vls" }, vue = { "volar", "vuels" }, xml = { "lemminx" }, zig = { "zls" } diff --git a/lua/nvim-lsp-installer/_generated/metadata.lua b/lua/nvim-lsp-installer/_generated/metadata.lua index 3805c269..5aacb652 100644 --- a/lua/nvim-lsp-installer/_generated/metadata.lua +++ b/lua/nvim-lsp-installer/_generated/metadata.lua @@ -334,6 +334,9 @@ return { vimls = { filetypes = { "vim" } }, + vls = { + filetypes = { "vlang" } + }, volar = { filetypes = { "vue" } }, diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua index 8e721619..8ff7efaf 100644 --- a/lua/nvim-lsp-installer/servers/init.lua +++ b/lua/nvim-lsp-installer/servers/init.lua @@ -143,6 +143,7 @@ local CORE_SERVERS = functional.set_of { "vala_ls", "verible", "vimls", + "vls", "volar", "vuels", "yamlls", diff --git a/lua/nvim-lsp-installer/servers/vls/init.lua b/lua/nvim-lsp-installer/servers/vls/init.lua new file mode 100644 index 00000000..7e3c9d8e --- /dev/null +++ b/lua/nvim-lsp-installer/servers/vls/init.lua @@ -0,0 +1,44 @@ +local server = require "nvim-lsp-installer.server" +local path = require "nvim-lsp-installer.core.path" +local github = require "nvim-lsp-installer.core.managers.github" +local github_client = require "nvim-lsp-installer.core.managers.github.client" +local std = require "nvim-lsp-installer.core.managers.std" +local functional = require "nvim-lsp-installer.core.functional" +local platform = require "nvim-lsp-installer.core.platform" +local Optional = require "nvim-lsp-installer.core.optional" +local process = require "nvim-lsp-installer.core.process" + +return function(name, root_dir) + return server.Server:new { + name = name, + root_dir = root_dir, + homepage = "https://github.com/vlang/vls", + languages = { "vlang", "V" }, + ---@async + installer = function() + local repo = "vlang/vls" + + ---@type GitHubRelease + local latest_dev_build = + github_client.fetch_latest_release(repo, { include_prelease = true }):get_or_throw() + + local source = github.release_file { + version = Optional.of(latest_dev_build.tag_name), + repo = repo, + asset_file = functional.coalesce( + functional.when(platform.is.linux_x64, "vls_linux_x64"), + functional.when(platform.is.mac, "vls_macos_x64"), + functional.when(platform.is.win_x64, "vls_windows_x64.exe") + ), + } + source.with_receipt() + std.download_file(source.download_url, platform.is.win and "vls.exe" or "vls") + std.chmod("+x", { "vls" }) + end, + default_options = { + cmd_env = { + PATH = process.extend_path { root_dir }, + }, + }, + } +end |
