diff options
| author | oscarbailey-tc <79094698+oscarbailey-tc@users.noreply.github.com> | 2022-05-13 16:42:57 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-13 17:42:57 +0200 |
| commit | 245f1bece5b906bd7f2a11e684c3619055b6ce1d (patch) | |
| tree | 3fb691ba5e839ae9538de00d121844adc4a34e66 /lua | |
| parent | feat(github): add `include_prerelease` option to `fetch_latest_release` (diff) | |
| download | mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar.gz mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar.bz2 mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar.lz mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar.xz mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar.zst mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.zip | |
Add VLS (for vlang) (#629)
Co-authored-by: William Boman <william@redwill.se>
Diffstat (limited to 'lua')
5 files changed, 51 insertions, 0 deletions
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 |
