From 8cad2361dd63c67d95acf9f79321927b03843959 Mon Sep 17 00:00:00 2001 From: William Boman Date: Fri, 8 Jul 2022 17:36:10 +0200 Subject: refactor: move packages to mason-registry (#27) --- lua/mason-lspconfig/init.lua | 13 +- .../angular-language-server/init.lua | 11 ++ .../ansible-language-server/init.lua | 11 ++ lua/mason-registry/apex-language-server/init.lua | 40 ++++++ .../arduino-language-server/init.lua | 44 +++++++ lua/mason-registry/asm-lsp/init.lua | 13 ++ lua/mason-registry/astro-language-server/init.lua | 11 ++ lua/mason-registry/awk-language-server/init.lua | 11 ++ lua/mason-registry/bash-language-server/init.lua | 11 ++ .../beancount-language-server/init.lua | 13 ++ lua/mason-registry/bicep-lsp/init.lua | 31 +++++ lua/mason-registry/bsl-language-server/init.lua | 23 ++++ lua/mason-registry/ccls/common.lua | 47 +++++++ lua/mason-registry/ccls/init.lua | 17 +++ lua/mason-registry/ccls/linux.lua | 73 +++++++++++ lua/mason-registry/ccls/mac.lua | 22 ++++ lua/mason-registry/chrome-debug-adapter/init.lua | 35 ++++++ lua/mason-registry/clangd/init.lua | 40 ++++++ lua/mason-registry/clarity-lsp/init.lua | 29 +++++ lua/mason-registry/clojure-lsp/init.lua | 33 +++++ lua/mason-registry/cmake-language-server/init.lua | 11 ++ lua/mason-registry/codelldb/init.lua | 34 +++++ lua/mason-registry/codeql/init.lua | 30 +++++ lua/mason-registry/cpptools/init.lua | 42 +++++++ lua/mason-registry/crystalline/init.lua | 31 +++++ lua/mason-registry/csharp-language-server/init.lua | 11 ++ lua/mason-registry/css-lsp/init.lua | 11 ++ .../cssmodules-language-server/init.lua | 11 ++ .../cucumber-language-server/init.lua | 11 ++ lua/mason-registry/debugpy/init.lua | 11 ++ lua/mason-registry/delve/init.lua | 11 ++ lua/mason-registry/deno/init.lua | 30 +++++ lua/mason-registry/dhall-lsp/init.lua | 65 ++++++++++ .../diagnostic-languageserver/init.lua | 11 ++ .../dockerfile-language-server/init.lua | 11 ++ lua/mason-registry/dot-language-server/init.lua | 11 ++ lua/mason-registry/efm/init.lua | 11 ++ lua/mason-registry/elixir-ls/init.lua | 21 ++++ lua/mason-registry/elm-format/init.lua | 11 ++ lua/mason-registry/elm-language-server/init.lua | 11 ++ lua/mason-registry/ember-language-server/init.lua | 11 ++ lua/mason-registry/emmet-ls/init.lua | 11 ++ lua/mason-registry/erlang-ls/init.lua | 34 +++++ lua/mason-registry/esbonio/init.lua | 11 ++ lua/mason-registry/eslint-lsp/init.lua | 11 ++ lua/mason-registry/firefox-debug-adapter/init.lua | 29 +++++ .../firefox-debug-adapter/patches.lua | 32 +++++ lua/mason-registry/flux-lsp/init.lua | 14 +++ lua/mason-registry/foam-language-server/init.lua | 11 ++ lua/mason-registry/fortls/init.lua | 11 ++ lua/mason-registry/fsautocomplete/init.lua | 13 ++ lua/mason-registry/go-debug-adapter/init.lua | 28 +++++ .../golangci-lint-langserver/init.lua | 11 ++ lua/mason-registry/golangci-lint/init.lua | 11 ++ lua/mason-registry/gopls/init.lua | 11 ++ .../grammarly-languageserver/init.lua | 11 ++ .../graphql-language-service-cli/init.lua | 11 ++ lua/mason-registry/groovy-language-server/init.lua | 22 ++++ .../haskell-language-server/init.lua | 66 ++++++++++ lua/mason-registry/haxe-language-server/init.lua | 25 ++++ lua/mason-registry/hoon-language-server/init.lua | 11 ++ lua/mason-registry/html-lsp/init.lua | 11 ++ lua/mason-registry/index.lua | 139 +++++++++++++++++++++ lua/mason-registry/init.lua | 90 +++++++++++++ lua/mason-registry/intelephense/init.lua | 11 ++ lua/mason-registry/jdtls/init.lua | 44 +++++++ lua/mason-registry/jedi-language-server/init.lua | 11 ++ lua/mason-registry/json-lsp/init.lua | 11 ++ .../jsonnet-language-server/init.lua | 11 ++ lua/mason-registry/julia-lsp/init.lua | 59 +++++++++ lua/mason-registry/kotlin-language-server/init.lua | 30 +++++ lua/mason-registry/ktlint/init.lua | 40 ++++++ lua/mason-registry/lelwel/init.lua | 14 +++ lua/mason-registry/lemminx/init.lua | 41 ++++++ lua/mason-registry/lemmy-help/init.lua | 14 +++ lua/mason-registry/ltex-ls/init.lua | 72 +++++++++++ lua/mason-registry/lua-language-server/init.lua | 64 ++++++++++ lua/mason-registry/marksman/init.lua | 32 +++++ lua/mason-registry/metamath-zero-lsp/init.lua | 24 ++++ lua/mason-registry/mockdebug/init.lua | 23 ++++ lua/mason-registry/netcoredbg/init.lua | 42 +++++++ lua/mason-registry/nickel-lang-lsp/init.lua | 15 +++ lua/mason-registry/nimlsp/init.lua | 22 ++++ lua/mason-registry/node-debug2-adapter/init.lua | 28 +++++ lua/mason-registry/ocaml-lsp/init.lua | 11 ++ lua/mason-registry/omnisharp-roslyn/init.lua | 43 +++++++ lua/mason-registry/opencl-language-server/init.lua | 44 +++++++ lua/mason-registry/perlnavigator/init.lua | 11 ++ lua/mason-registry/php-debug-adapter/init.lua | 27 ++++ lua/mason-registry/phpactor/init.lua | 25 ++++ .../powershell-editor-services/init.lua | 21 ++++ lua/mason-registry/prisma-language-server/init.lua | 11 ++ lua/mason-registry/prosemd-lsp/init.lua | 32 +++++ lua/mason-registry/psalm/init.lua | 20 +++ lua/mason-registry/puppet-editor-services/init.lua | 26 ++++ .../purescript-language-server/init.lua | 11 ++ lua/mason-registry/pyright/init.lua | 11 ++ lua/mason-registry/python-lsp-server/init.lua | 11 ++ lua/mason-registry/quick-lint-js/init.lua | 50 ++++++++ lua/mason-registry/r-languageserver/init.lua | 71 +++++++++++ lua/mason-registry/reason-language-server/init.lua | 38 ++++++ lua/mason-registry/remark-language-server/init.lua | 11 ++ lua/mason-registry/rescript-lsp/init.lua | 21 ++++ lua/mason-registry/rnix-lsp/init.lua | 13 ++ lua/mason-registry/robotframework-lsp/init.lua | 11 ++ lua/mason-registry/rome/init.lua | 19 +++ lua/mason-registry/rust-analyzer/init.lua | 53 ++++++++ lua/mason-registry/salt-lsp/init.lua | 11 ++ lua/mason-registry/serve-d/init.lua | 51 ++++++++ lua/mason-registry/shellcheck/init.lua | 42 +++++++ lua/mason-registry/shopify-theme-check/init.lua | 11 ++ lua/mason-registry/slint-lsp/init.lua | 36 ++++++ lua/mason-registry/solang/init.lua | 63 ++++++++++ lua/mason-registry/solargraph/init.lua | 11 ++ lua/mason-registry/solidity/init.lua | 32 +++++ lua/mason-registry/sorbet/init.lua | 11 ++ lua/mason-registry/sourcery/init.lua | 11 ++ lua/mason-registry/sqlls/init.lua | 11 ++ lua/mason-registry/sqls/init.lua | 11 ++ lua/mason-registry/stylelint-lsp/init.lua | 11 ++ lua/mason-registry/stylua/init.lua | 13 ++ lua/mason-registry/svelte-language-server/init.lua | 11 ++ lua/mason-registry/svlangserver/init.lua | 11 ++ lua/mason-registry/svls/init.lua | 13 ++ .../tailwindcss-language-server/init.lua | 11 ++ lua/mason-registry/taplo/init.lua | 14 +++ lua/mason-registry/teal-language-server/init.lua | 14 +++ lua/mason-registry/terraform-ls/init.lua | 35 ++++++ lua/mason-registry/texlab/init.lua | 43 +++++++ lua/mason-registry/tflint/init.lua | 32 +++++ .../typescript-language-server/init.lua | 11 ++ lua/mason-registry/vala-language-server/init.lua | 40 ++++++ lua/mason-registry/verible/init.lua | 85 +++++++++++++ lua/mason-registry/vetur-vls/init.lua | 11 ++ lua/mason-registry/vim-language-server/init.lua | 11 ++ .../visualforce-language-server/init.lua | 34 +++++ lua/mason-registry/vls/init.lua | 38 ++++++ lua/mason-registry/vue-language-server/init.lua | 11 ++ lua/mason-registry/wgsl-analyzer/init.lua | 16 +++ lua/mason-registry/yaml-language-server/init.lua | 11 ++ lua/mason-registry/zk/init.lua | 55 ++++++++ lua/mason-registry/zls/init.lua | 34 +++++ lua/mason/_generated/package_index.lua | 139 --------------------- lua/mason/command-api/init.lua | 20 +-- lua/mason/core/package/indexer.lua | 89 ------------- lua/mason/core/package/init.lua | 8 +- .../packages/angular-language-server/init.lua | 11 -- .../packages/ansible-language-server/init.lua | 11 -- lua/mason/packages/apex-language-server/init.lua | 40 ------ .../packages/arduino-language-server/init.lua | 44 ------- lua/mason/packages/asm-lsp/init.lua | 13 -- lua/mason/packages/astro-language-server/init.lua | 11 -- lua/mason/packages/awk-language-server/init.lua | 11 -- lua/mason/packages/bash-language-server/init.lua | 11 -- .../packages/beancount-language-server/init.lua | 13 -- lua/mason/packages/bicep-lsp/init.lua | 31 ----- lua/mason/packages/bsl-language-server/init.lua | 23 ---- lua/mason/packages/ccls/common.lua | 47 ------- lua/mason/packages/ccls/init.lua | 17 --- lua/mason/packages/ccls/linux.lua | 73 ----------- lua/mason/packages/ccls/mac.lua | 22 ---- lua/mason/packages/chrome-debug-adapter/init.lua | 35 ------ lua/mason/packages/clangd/init.lua | 40 ------ lua/mason/packages/clarity-lsp/init.lua | 29 ----- lua/mason/packages/clojure-lsp/init.lua | 33 ----- lua/mason/packages/cmake-language-server/init.lua | 11 -- lua/mason/packages/codelldb/init.lua | 34 ----- lua/mason/packages/codeql/init.lua | 30 ----- lua/mason/packages/cpptools/init.lua | 42 ------- lua/mason/packages/crystalline/init.lua | 31 ----- lua/mason/packages/csharp-language-server/init.lua | 11 -- lua/mason/packages/css-lsp/init.lua | 11 -- .../packages/cssmodules-language-server/init.lua | 11 -- .../packages/cucumber-language-server/init.lua | 11 -- lua/mason/packages/debugpy/init.lua | 11 -- lua/mason/packages/delve/init.lua | 11 -- lua/mason/packages/deno/init.lua | 30 ----- lua/mason/packages/dhall-lsp/init.lua | 65 ---------- .../packages/diagnostic-languageserver/init.lua | 11 -- .../packages/dockerfile-language-server/init.lua | 11 -- lua/mason/packages/dot-language-server/init.lua | 11 -- lua/mason/packages/efm/init.lua | 11 -- lua/mason/packages/elixir-ls/init.lua | 21 ---- lua/mason/packages/elm-format/init.lua | 11 -- lua/mason/packages/elm-language-server/init.lua | 11 -- lua/mason/packages/ember-language-server/init.lua | 11 -- lua/mason/packages/emmet-ls/init.lua | 11 -- lua/mason/packages/erlang-ls/init.lua | 34 ----- lua/mason/packages/esbonio/init.lua | 11 -- lua/mason/packages/eslint-lsp/init.lua | 11 -- lua/mason/packages/firefox-debug-adapter/init.lua | 29 ----- .../packages/firefox-debug-adapter/patches.lua | 32 ----- lua/mason/packages/flux-lsp/init.lua | 14 --- lua/mason/packages/foam-language-server/init.lua | 11 -- lua/mason/packages/fortls/init.lua | 11 -- lua/mason/packages/fsautocomplete/init.lua | 13 -- lua/mason/packages/go-debug-adapter/init.lua | 28 ----- .../packages/golangci-lint-langserver/init.lua | 11 -- lua/mason/packages/golangci-lint/init.lua | 11 -- lua/mason/packages/gopls/init.lua | 11 -- .../packages/grammarly-languageserver/init.lua | 11 -- .../packages/graphql-language-service-cli/init.lua | 11 -- lua/mason/packages/groovy-language-server/init.lua | 22 ---- .../packages/haskell-language-server/init.lua | 66 ---------- lua/mason/packages/haxe-language-server/init.lua | 25 ---- lua/mason/packages/hoon-language-server/init.lua | 11 -- lua/mason/packages/html-lsp/init.lua | 11 -- lua/mason/packages/intelephense/init.lua | 11 -- lua/mason/packages/jdtls/init.lua | 44 ------- lua/mason/packages/jedi-language-server/init.lua | 11 -- lua/mason/packages/json-lsp/init.lua | 11 -- .../packages/jsonnet-language-server/init.lua | 11 -- lua/mason/packages/julia-lsp/init.lua | 59 --------- lua/mason/packages/kotlin-language-server/init.lua | 30 ----- lua/mason/packages/ktlint/init.lua | 40 ------ lua/mason/packages/lelwel/init.lua | 14 --- lua/mason/packages/lemminx/init.lua | 41 ------ lua/mason/packages/lemmy-help/init.lua | 14 --- lua/mason/packages/ltex-ls/init.lua | 72 ----------- lua/mason/packages/lua-language-server/init.lua | 64 ---------- lua/mason/packages/marksman/init.lua | 32 ----- lua/mason/packages/metamath-zero-lsp/init.lua | 24 ---- lua/mason/packages/mockdebug/init.lua | 23 ---- lua/mason/packages/netcoredbg/init.lua | 42 ------- lua/mason/packages/nickel-lang-lsp/init.lua | 15 --- lua/mason/packages/nimlsp/init.lua | 22 ---- lua/mason/packages/node-debug2-adapter/init.lua | 28 ----- lua/mason/packages/ocaml-lsp/init.lua | 11 -- lua/mason/packages/omnisharp-roslyn/init.lua | 43 ------- lua/mason/packages/opencl-language-server/init.lua | 44 ------- lua/mason/packages/perlnavigator/init.lua | 11 -- lua/mason/packages/php-debug-adapter/init.lua | 27 ---- lua/mason/packages/phpactor/init.lua | 25 ---- .../packages/powershell-editor-services/init.lua | 21 ---- lua/mason/packages/prisma-language-server/init.lua | 11 -- lua/mason/packages/prosemd-lsp/init.lua | 32 ----- lua/mason/packages/psalm/init.lua | 20 --- lua/mason/packages/puppet-editor-services/init.lua | 26 ---- .../packages/purescript-language-server/init.lua | 11 -- lua/mason/packages/pyright/init.lua | 11 -- lua/mason/packages/python-lsp-server/init.lua | 11 -- lua/mason/packages/quick-lint-js/init.lua | 50 -------- lua/mason/packages/r-languageserver/init.lua | 71 ----------- lua/mason/packages/reason-language-server/init.lua | 38 ------ lua/mason/packages/remark-language-server/init.lua | 11 -- lua/mason/packages/rescript-lsp/init.lua | 21 ---- lua/mason/packages/rnix-lsp/init.lua | 13 -- lua/mason/packages/robotframework-lsp/init.lua | 11 -- lua/mason/packages/rome/init.lua | 19 --- lua/mason/packages/rust-analyzer/init.lua | 53 -------- lua/mason/packages/salt-lsp/init.lua | 11 -- lua/mason/packages/serve-d/init.lua | 51 -------- lua/mason/packages/shellcheck/init.lua | 42 ------- lua/mason/packages/shopify-theme-check/init.lua | 11 -- lua/mason/packages/slint-lsp/init.lua | 36 ------ lua/mason/packages/solang/init.lua | 63 ---------- lua/mason/packages/solargraph/init.lua | 11 -- lua/mason/packages/solidity/init.lua | 32 ----- lua/mason/packages/sorbet/init.lua | 11 -- lua/mason/packages/sourcery/init.lua | 11 -- lua/mason/packages/sqlls/init.lua | 11 -- lua/mason/packages/sqls/init.lua | 11 -- lua/mason/packages/stylelint-lsp/init.lua | 11 -- lua/mason/packages/stylua/init.lua | 13 -- lua/mason/packages/svelte-language-server/init.lua | 11 -- lua/mason/packages/svlangserver/init.lua | 11 -- lua/mason/packages/svls/init.lua | 13 -- .../packages/tailwindcss-language-server/init.lua | 11 -- lua/mason/packages/taplo/init.lua | 14 --- lua/mason/packages/teal-language-server/init.lua | 14 --- lua/mason/packages/terraform-ls/init.lua | 35 ------ lua/mason/packages/texlab/init.lua | 43 ------- lua/mason/packages/tflint/init.lua | 32 ----- .../packages/typescript-language-server/init.lua | 11 -- lua/mason/packages/vala-language-server/init.lua | 40 ------ lua/mason/packages/verible/init.lua | 85 ------------- lua/mason/packages/vetur-vls/init.lua | 11 -- lua/mason/packages/vim-language-server/init.lua | 11 -- .../packages/visualforce-language-server/init.lua | 34 ----- lua/mason/packages/vls/init.lua | 38 ------ lua/mason/packages/vue-language-server/init.lua | 11 -- lua/mason/packages/wgsl-analyzer/init.lua | 16 --- lua/mason/packages/yaml-language-server/init.lua | 11 -- lua/mason/packages/zk/init.lua | 55 -------- lua/mason/packages/zls/init.lua | 34 ----- lua/mason/ui/instance.lua | 4 +- 286 files changed, 3633 insertions(+), 3633 deletions(-) create mode 100644 lua/mason-registry/angular-language-server/init.lua create mode 100644 lua/mason-registry/ansible-language-server/init.lua create mode 100644 lua/mason-registry/apex-language-server/init.lua create mode 100644 lua/mason-registry/arduino-language-server/init.lua create mode 100644 lua/mason-registry/asm-lsp/init.lua create mode 100644 lua/mason-registry/astro-language-server/init.lua create mode 100644 lua/mason-registry/awk-language-server/init.lua create mode 100644 lua/mason-registry/bash-language-server/init.lua create mode 100644 lua/mason-registry/beancount-language-server/init.lua create mode 100644 lua/mason-registry/bicep-lsp/init.lua create mode 100644 lua/mason-registry/bsl-language-server/init.lua create mode 100644 lua/mason-registry/ccls/common.lua create mode 100644 lua/mason-registry/ccls/init.lua create mode 100644 lua/mason-registry/ccls/linux.lua create mode 100644 lua/mason-registry/ccls/mac.lua create mode 100644 lua/mason-registry/chrome-debug-adapter/init.lua create mode 100644 lua/mason-registry/clangd/init.lua create mode 100644 lua/mason-registry/clarity-lsp/init.lua create mode 100644 lua/mason-registry/clojure-lsp/init.lua create mode 100644 lua/mason-registry/cmake-language-server/init.lua create mode 100644 lua/mason-registry/codelldb/init.lua create mode 100644 lua/mason-registry/codeql/init.lua create mode 100644 lua/mason-registry/cpptools/init.lua create mode 100644 lua/mason-registry/crystalline/init.lua create mode 100644 lua/mason-registry/csharp-language-server/init.lua create mode 100644 lua/mason-registry/css-lsp/init.lua create mode 100644 lua/mason-registry/cssmodules-language-server/init.lua create mode 100644 lua/mason-registry/cucumber-language-server/init.lua create mode 100644 lua/mason-registry/debugpy/init.lua create mode 100644 lua/mason-registry/delve/init.lua create mode 100644 lua/mason-registry/deno/init.lua create mode 100644 lua/mason-registry/dhall-lsp/init.lua create mode 100644 lua/mason-registry/diagnostic-languageserver/init.lua create mode 100644 lua/mason-registry/dockerfile-language-server/init.lua create mode 100644 lua/mason-registry/dot-language-server/init.lua create mode 100644 lua/mason-registry/efm/init.lua create mode 100644 lua/mason-registry/elixir-ls/init.lua create mode 100644 lua/mason-registry/elm-format/init.lua create mode 100644 lua/mason-registry/elm-language-server/init.lua create mode 100644 lua/mason-registry/ember-language-server/init.lua create mode 100644 lua/mason-registry/emmet-ls/init.lua create mode 100644 lua/mason-registry/erlang-ls/init.lua create mode 100644 lua/mason-registry/esbonio/init.lua create mode 100644 lua/mason-registry/eslint-lsp/init.lua create mode 100644 lua/mason-registry/firefox-debug-adapter/init.lua create mode 100644 lua/mason-registry/firefox-debug-adapter/patches.lua create mode 100644 lua/mason-registry/flux-lsp/init.lua create mode 100644 lua/mason-registry/foam-language-server/init.lua create mode 100644 lua/mason-registry/fortls/init.lua create mode 100644 lua/mason-registry/fsautocomplete/init.lua create mode 100644 lua/mason-registry/go-debug-adapter/init.lua create mode 100644 lua/mason-registry/golangci-lint-langserver/init.lua create mode 100644 lua/mason-registry/golangci-lint/init.lua create mode 100644 lua/mason-registry/gopls/init.lua create mode 100644 lua/mason-registry/grammarly-languageserver/init.lua create mode 100644 lua/mason-registry/graphql-language-service-cli/init.lua create mode 100644 lua/mason-registry/groovy-language-server/init.lua create mode 100644 lua/mason-registry/haskell-language-server/init.lua create mode 100644 lua/mason-registry/haxe-language-server/init.lua create mode 100644 lua/mason-registry/hoon-language-server/init.lua create mode 100644 lua/mason-registry/html-lsp/init.lua create mode 100644 lua/mason-registry/index.lua create mode 100644 lua/mason-registry/init.lua create mode 100644 lua/mason-registry/intelephense/init.lua create mode 100644 lua/mason-registry/jdtls/init.lua create mode 100644 lua/mason-registry/jedi-language-server/init.lua create mode 100644 lua/mason-registry/json-lsp/init.lua create mode 100644 lua/mason-registry/jsonnet-language-server/init.lua create mode 100644 lua/mason-registry/julia-lsp/init.lua create mode 100644 lua/mason-registry/kotlin-language-server/init.lua create mode 100644 lua/mason-registry/ktlint/init.lua create mode 100644 lua/mason-registry/lelwel/init.lua create mode 100644 lua/mason-registry/lemminx/init.lua create mode 100644 lua/mason-registry/lemmy-help/init.lua create mode 100644 lua/mason-registry/ltex-ls/init.lua create mode 100644 lua/mason-registry/lua-language-server/init.lua create mode 100644 lua/mason-registry/marksman/init.lua create mode 100644 lua/mason-registry/metamath-zero-lsp/init.lua create mode 100644 lua/mason-registry/mockdebug/init.lua create mode 100644 lua/mason-registry/netcoredbg/init.lua create mode 100644 lua/mason-registry/nickel-lang-lsp/init.lua create mode 100644 lua/mason-registry/nimlsp/init.lua create mode 100644 lua/mason-registry/node-debug2-adapter/init.lua create mode 100644 lua/mason-registry/ocaml-lsp/init.lua create mode 100644 lua/mason-registry/omnisharp-roslyn/init.lua create mode 100644 lua/mason-registry/opencl-language-server/init.lua create mode 100644 lua/mason-registry/perlnavigator/init.lua create mode 100644 lua/mason-registry/php-debug-adapter/init.lua create mode 100644 lua/mason-registry/phpactor/init.lua create mode 100644 lua/mason-registry/powershell-editor-services/init.lua create mode 100644 lua/mason-registry/prisma-language-server/init.lua create mode 100644 lua/mason-registry/prosemd-lsp/init.lua create mode 100644 lua/mason-registry/psalm/init.lua create mode 100644 lua/mason-registry/puppet-editor-services/init.lua create mode 100644 lua/mason-registry/purescript-language-server/init.lua create mode 100644 lua/mason-registry/pyright/init.lua create mode 100644 lua/mason-registry/python-lsp-server/init.lua create mode 100644 lua/mason-registry/quick-lint-js/init.lua create mode 100644 lua/mason-registry/r-languageserver/init.lua create mode 100644 lua/mason-registry/reason-language-server/init.lua create mode 100644 lua/mason-registry/remark-language-server/init.lua create mode 100644 lua/mason-registry/rescript-lsp/init.lua create mode 100644 lua/mason-registry/rnix-lsp/init.lua create mode 100644 lua/mason-registry/robotframework-lsp/init.lua create mode 100644 lua/mason-registry/rome/init.lua create mode 100644 lua/mason-registry/rust-analyzer/init.lua create mode 100644 lua/mason-registry/salt-lsp/init.lua create mode 100644 lua/mason-registry/serve-d/init.lua create mode 100644 lua/mason-registry/shellcheck/init.lua create mode 100644 lua/mason-registry/shopify-theme-check/init.lua create mode 100644 lua/mason-registry/slint-lsp/init.lua create mode 100644 lua/mason-registry/solang/init.lua create mode 100644 lua/mason-registry/solargraph/init.lua create mode 100644 lua/mason-registry/solidity/init.lua create mode 100644 lua/mason-registry/sorbet/init.lua create mode 100644 lua/mason-registry/sourcery/init.lua create mode 100644 lua/mason-registry/sqlls/init.lua create mode 100644 lua/mason-registry/sqls/init.lua create mode 100644 lua/mason-registry/stylelint-lsp/init.lua create mode 100644 lua/mason-registry/stylua/init.lua create mode 100644 lua/mason-registry/svelte-language-server/init.lua create mode 100644 lua/mason-registry/svlangserver/init.lua create mode 100644 lua/mason-registry/svls/init.lua create mode 100644 lua/mason-registry/tailwindcss-language-server/init.lua create mode 100644 lua/mason-registry/taplo/init.lua create mode 100644 lua/mason-registry/teal-language-server/init.lua create mode 100644 lua/mason-registry/terraform-ls/init.lua create mode 100644 lua/mason-registry/texlab/init.lua create mode 100644 lua/mason-registry/tflint/init.lua create mode 100644 lua/mason-registry/typescript-language-server/init.lua create mode 100644 lua/mason-registry/vala-language-server/init.lua create mode 100644 lua/mason-registry/verible/init.lua create mode 100644 lua/mason-registry/vetur-vls/init.lua create mode 100644 lua/mason-registry/vim-language-server/init.lua create mode 100644 lua/mason-registry/visualforce-language-server/init.lua create mode 100644 lua/mason-registry/vls/init.lua create mode 100644 lua/mason-registry/vue-language-server/init.lua create mode 100644 lua/mason-registry/wgsl-analyzer/init.lua create mode 100644 lua/mason-registry/yaml-language-server/init.lua create mode 100644 lua/mason-registry/zk/init.lua create mode 100644 lua/mason-registry/zls/init.lua delete mode 100644 lua/mason/_generated/package_index.lua delete mode 100644 lua/mason/core/package/indexer.lua delete mode 100644 lua/mason/packages/angular-language-server/init.lua delete mode 100644 lua/mason/packages/ansible-language-server/init.lua delete mode 100644 lua/mason/packages/apex-language-server/init.lua delete mode 100644 lua/mason/packages/arduino-language-server/init.lua delete mode 100644 lua/mason/packages/asm-lsp/init.lua delete mode 100644 lua/mason/packages/astro-language-server/init.lua delete mode 100644 lua/mason/packages/awk-language-server/init.lua delete mode 100644 lua/mason/packages/bash-language-server/init.lua delete mode 100644 lua/mason/packages/beancount-language-server/init.lua delete mode 100644 lua/mason/packages/bicep-lsp/init.lua delete mode 100644 lua/mason/packages/bsl-language-server/init.lua delete mode 100644 lua/mason/packages/ccls/common.lua delete mode 100644 lua/mason/packages/ccls/init.lua delete mode 100644 lua/mason/packages/ccls/linux.lua delete mode 100644 lua/mason/packages/ccls/mac.lua delete mode 100644 lua/mason/packages/chrome-debug-adapter/init.lua delete mode 100644 lua/mason/packages/clangd/init.lua delete mode 100644 lua/mason/packages/clarity-lsp/init.lua delete mode 100644 lua/mason/packages/clojure-lsp/init.lua delete mode 100644 lua/mason/packages/cmake-language-server/init.lua delete mode 100644 lua/mason/packages/codelldb/init.lua delete mode 100644 lua/mason/packages/codeql/init.lua delete mode 100644 lua/mason/packages/cpptools/init.lua delete mode 100644 lua/mason/packages/crystalline/init.lua delete mode 100644 lua/mason/packages/csharp-language-server/init.lua delete mode 100644 lua/mason/packages/css-lsp/init.lua delete mode 100644 lua/mason/packages/cssmodules-language-server/init.lua delete mode 100644 lua/mason/packages/cucumber-language-server/init.lua delete mode 100644 lua/mason/packages/debugpy/init.lua delete mode 100644 lua/mason/packages/delve/init.lua delete mode 100644 lua/mason/packages/deno/init.lua delete mode 100644 lua/mason/packages/dhall-lsp/init.lua delete mode 100644 lua/mason/packages/diagnostic-languageserver/init.lua delete mode 100644 lua/mason/packages/dockerfile-language-server/init.lua delete mode 100644 lua/mason/packages/dot-language-server/init.lua delete mode 100644 lua/mason/packages/efm/init.lua delete mode 100644 lua/mason/packages/elixir-ls/init.lua delete mode 100644 lua/mason/packages/elm-format/init.lua delete mode 100644 lua/mason/packages/elm-language-server/init.lua delete mode 100644 lua/mason/packages/ember-language-server/init.lua delete mode 100644 lua/mason/packages/emmet-ls/init.lua delete mode 100644 lua/mason/packages/erlang-ls/init.lua delete mode 100644 lua/mason/packages/esbonio/init.lua delete mode 100644 lua/mason/packages/eslint-lsp/init.lua delete mode 100644 lua/mason/packages/firefox-debug-adapter/init.lua delete mode 100644 lua/mason/packages/firefox-debug-adapter/patches.lua delete mode 100644 lua/mason/packages/flux-lsp/init.lua delete mode 100644 lua/mason/packages/foam-language-server/init.lua delete mode 100644 lua/mason/packages/fortls/init.lua delete mode 100644 lua/mason/packages/fsautocomplete/init.lua delete mode 100644 lua/mason/packages/go-debug-adapter/init.lua delete mode 100644 lua/mason/packages/golangci-lint-langserver/init.lua delete mode 100644 lua/mason/packages/golangci-lint/init.lua delete mode 100644 lua/mason/packages/gopls/init.lua delete mode 100644 lua/mason/packages/grammarly-languageserver/init.lua delete mode 100644 lua/mason/packages/graphql-language-service-cli/init.lua delete mode 100644 lua/mason/packages/groovy-language-server/init.lua delete mode 100644 lua/mason/packages/haskell-language-server/init.lua delete mode 100644 lua/mason/packages/haxe-language-server/init.lua delete mode 100644 lua/mason/packages/hoon-language-server/init.lua delete mode 100644 lua/mason/packages/html-lsp/init.lua delete mode 100644 lua/mason/packages/intelephense/init.lua delete mode 100644 lua/mason/packages/jdtls/init.lua delete mode 100644 lua/mason/packages/jedi-language-server/init.lua delete mode 100644 lua/mason/packages/json-lsp/init.lua delete mode 100644 lua/mason/packages/jsonnet-language-server/init.lua delete mode 100644 lua/mason/packages/julia-lsp/init.lua delete mode 100644 lua/mason/packages/kotlin-language-server/init.lua delete mode 100644 lua/mason/packages/ktlint/init.lua delete mode 100644 lua/mason/packages/lelwel/init.lua delete mode 100644 lua/mason/packages/lemminx/init.lua delete mode 100644 lua/mason/packages/lemmy-help/init.lua delete mode 100644 lua/mason/packages/ltex-ls/init.lua delete mode 100644 lua/mason/packages/lua-language-server/init.lua delete mode 100644 lua/mason/packages/marksman/init.lua delete mode 100644 lua/mason/packages/metamath-zero-lsp/init.lua delete mode 100644 lua/mason/packages/mockdebug/init.lua delete mode 100644 lua/mason/packages/netcoredbg/init.lua delete mode 100644 lua/mason/packages/nickel-lang-lsp/init.lua delete mode 100644 lua/mason/packages/nimlsp/init.lua delete mode 100644 lua/mason/packages/node-debug2-adapter/init.lua delete mode 100644 lua/mason/packages/ocaml-lsp/init.lua delete mode 100644 lua/mason/packages/omnisharp-roslyn/init.lua delete mode 100644 lua/mason/packages/opencl-language-server/init.lua delete mode 100644 lua/mason/packages/perlnavigator/init.lua delete mode 100644 lua/mason/packages/php-debug-adapter/init.lua delete mode 100644 lua/mason/packages/phpactor/init.lua delete mode 100644 lua/mason/packages/powershell-editor-services/init.lua delete mode 100644 lua/mason/packages/prisma-language-server/init.lua delete mode 100644 lua/mason/packages/prosemd-lsp/init.lua delete mode 100644 lua/mason/packages/psalm/init.lua delete mode 100644 lua/mason/packages/puppet-editor-services/init.lua delete mode 100644 lua/mason/packages/purescript-language-server/init.lua delete mode 100644 lua/mason/packages/pyright/init.lua delete mode 100644 lua/mason/packages/python-lsp-server/init.lua delete mode 100644 lua/mason/packages/quick-lint-js/init.lua delete mode 100644 lua/mason/packages/r-languageserver/init.lua delete mode 100644 lua/mason/packages/reason-language-server/init.lua delete mode 100644 lua/mason/packages/remark-language-server/init.lua delete mode 100644 lua/mason/packages/rescript-lsp/init.lua delete mode 100644 lua/mason/packages/rnix-lsp/init.lua delete mode 100644 lua/mason/packages/robotframework-lsp/init.lua delete mode 100644 lua/mason/packages/rome/init.lua delete mode 100644 lua/mason/packages/rust-analyzer/init.lua delete mode 100644 lua/mason/packages/salt-lsp/init.lua delete mode 100644 lua/mason/packages/serve-d/init.lua delete mode 100644 lua/mason/packages/shellcheck/init.lua delete mode 100644 lua/mason/packages/shopify-theme-check/init.lua delete mode 100644 lua/mason/packages/slint-lsp/init.lua delete mode 100644 lua/mason/packages/solang/init.lua delete mode 100644 lua/mason/packages/solargraph/init.lua delete mode 100644 lua/mason/packages/solidity/init.lua delete mode 100644 lua/mason/packages/sorbet/init.lua delete mode 100644 lua/mason/packages/sourcery/init.lua delete mode 100644 lua/mason/packages/sqlls/init.lua delete mode 100644 lua/mason/packages/sqls/init.lua delete mode 100644 lua/mason/packages/stylelint-lsp/init.lua delete mode 100644 lua/mason/packages/stylua/init.lua delete mode 100644 lua/mason/packages/svelte-language-server/init.lua delete mode 100644 lua/mason/packages/svlangserver/init.lua delete mode 100644 lua/mason/packages/svls/init.lua delete mode 100644 lua/mason/packages/tailwindcss-language-server/init.lua delete mode 100644 lua/mason/packages/taplo/init.lua delete mode 100644 lua/mason/packages/teal-language-server/init.lua delete mode 100644 lua/mason/packages/terraform-ls/init.lua delete mode 100644 lua/mason/packages/texlab/init.lua delete mode 100644 lua/mason/packages/tflint/init.lua delete mode 100644 lua/mason/packages/typescript-language-server/init.lua delete mode 100644 lua/mason/packages/vala-language-server/init.lua delete mode 100644 lua/mason/packages/verible/init.lua delete mode 100644 lua/mason/packages/vetur-vls/init.lua delete mode 100644 lua/mason/packages/vim-language-server/init.lua delete mode 100644 lua/mason/packages/visualforce-language-server/init.lua delete mode 100644 lua/mason/packages/vls/init.lua delete mode 100644 lua/mason/packages/vue-language-server/init.lua delete mode 100644 lua/mason/packages/wgsl-analyzer/init.lua delete mode 100644 lua/mason/packages/yaml-language-server/init.lua delete mode 100644 lua/mason/packages/zk/init.lua delete mode 100644 lua/mason/packages/zls/init.lua (limited to 'lua') diff --git a/lua/mason-lspconfig/init.lua b/lua/mason-lspconfig/init.lua index d7a34a9e..bb1e407f 100644 --- a/lua/mason-lspconfig/init.lua +++ b/lua/mason-lspconfig/init.lua @@ -5,13 +5,14 @@ local _ = require "mason.core.functional" local settings = require "mason-lspconfig.settings" local server_mapping = require "mason-lspconfig.server-mapping" local path = require "mason.core.path" +local registry = require "mason-registry" local M = {} ---@param lspconfig_server_name string function M.resolve_package(lspconfig_server_name) return Optional.of_nilable(server_mapping.lspconfig_to_package[lspconfig_server_name]):map(function(package_name) - local ok, pkg = pcall(require, ("mason.packages.%s"):format(package_name)) + local ok, pkg = pcall(registry.get_package, package_name) if ok then return pkg end @@ -58,7 +59,6 @@ local function should_auto_install(server_name) end local function setup_lspconfig_hook() - local indexer = require "mason.core.package.indexer" local util = require "lspconfig.util" util.on_setup = util.add_hook_before(util.on_setup, function(config) local pkg_name = server_mapping.lspconfig_to_package[config.name] @@ -66,13 +66,13 @@ local function setup_lspconfig_hook() return end - if indexer.is_installed(pkg_name) then + if registry.is_installed(pkg_name) then M.resolve_server_config_factory(config.name):if_present(function(config_factory) merge_in_place(config, config_factory(path.package_prefix(pkg_name))) end) else if should_auto_install(config.name) then - local pkg = indexer.get_package(pkg_name) + local pkg = registry.get_package(pkg_name) pkg:install() end end @@ -108,7 +108,6 @@ end ---@param handlers table function M.setup_handlers(handlers) local default_handler = Optional.of_nilable(handlers[1]) - local indexer = require "mason.core.package.indexer" ---@param pkg_name string local function get_server_name(pkg_name) @@ -126,9 +125,9 @@ function M.setup_handlers(handlers) end) end - local installed_servers = _.filter_map(get_server_name, indexer.get_installed_package_names()) + local installed_servers = _.filter_map(get_server_name, registry.get_installed_package_names()) _.each(call_handler, installed_servers) - indexer:on( + registry:on( "package:install:success", vim.schedule_wrap(function(pkg) get_server_name(pkg.name):if_present(call_handler) diff --git a/lua/mason-registry/angular-language-server/init.lua b/lua/mason-registry/angular-language-server/init.lua new file mode 100644 index 00000000..6a7e42fc --- /dev/null +++ b/lua/mason-registry/angular-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "angular-language-server", + desc = [[The Angular Language Service provides code editors with a way to get completions, errors, hints, and navigation inside Angular templates. It works with external templates in separate HTML files, and also with in-line templates.]], + homepage = "https://angular.io/guide/language-service", + languages = { Pkg.Lang.Angular }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@angular/language-server", "typescript", bin = { "ngserver" } }, +} diff --git a/lua/mason-registry/ansible-language-server/init.lua b/lua/mason-registry/ansible-language-server/init.lua new file mode 100644 index 00000000..d1749e71 --- /dev/null +++ b/lua/mason-registry/ansible-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "ansible-language-server", + desc = [[Ansible Language Server]], + homepage = "https://github.com/ansible/ansible-language-server", + languages = { Pkg.Lang.Ansible }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@ansible/ansible-language-server", bin = { "ansible-language-server" } }, +} diff --git a/lua/mason-registry/apex-language-server/init.lua b/lua/mason-registry/apex-language-server/init.lua new file mode 100644 index 00000000..0dad40e6 --- /dev/null +++ b/lua/mason-registry/apex-language-server/init.lua @@ -0,0 +1,40 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local github_client = require "mason.core.managers.github.client" +local Optional = require "mason.core.optional" +local path = require "mason.core.path" +local _ = require "mason.core.functional" + +local JAR_FILE = "apex-jorje-lsp.jar" +return Pkg.new { + name = "apex-language-server", + desc = [[The Apex Language Server is an IDE-agnostic way for tools to access code-editing capabilities such as code completion, go to definition, find all usage, and refactoring.]], + homepage = "https://github.com/forcedotcom/salesforcedx-vscode", + languages = { Pkg.Lang.Apex }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "forcedotcom/salesforcedx-vscode" + + -- See https://github.com/forcedotcom/salesforcedx-vscode/issues/4184#issuecomment-1146052086 + ---@type GitHubRelease + local release = github_client + .fetch_releases(repo) + :map(_.find_first(_.prop_satisfies(_.compose(_.gt(0), _.length), "assets"))) + :map(Optional.of_nilable) + :get_or_throw() -- Result unwrap + :or_else_throw "Failed to find release with assets." -- Optional unwrap + + github + .unzip_release_file({ + version = Optional.of(release.tag_name), + asset_file = _.compose(_.format "salesforcedx-vscode-apex-%s.vsix", _.gsub("^v", "")), + repo = repo, + }) + .with_receipt() + + ctx.fs:rename(path.concat { "extension", "out", JAR_FILE }, JAR_FILE) + ctx.fs:rmrf "extension" + end, +} diff --git a/lua/mason-registry/arduino-language-server/init.lua b/lua/mason-registry/arduino-language-server/init.lua new file mode 100644 index 00000000..7801ae79 --- /dev/null +++ b/lua/mason-registry/arduino-language-server/init.lua @@ -0,0 +1,44 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "arduino-language-server", + desc = [[An Arduino Language Server based on Clangd to Arduino code autocompletion]], + homepage = "https://github.com/arduino/arduino-language-server", + languages = { Pkg.Lang.Arduino }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local opts = { + repo = "arduino/arduino-language-server", + asset_file = function(release) + local target = coalesce( + when(platform.is.mac, "arduino-language-server_%s_macOS_64bit.tar.gz"), + when(platform.is.linux_x64, "arduino-language-server_%s_Linux_64bit.tar.gz"), + when(platform.is.linux_x86, "arduino-language-server_%s_Linux_32bit.tar.gz"), + when(platform.is.linux_arm64, "arduino-language-server_%s_Linux_ARM64.tar.gz"), + when(platform.is.win_x64, "arduino-language-server_0.6.0_Windows_64bit.zip"), + when(platform.is.win_x86, "arduino-language-server_0.6.0_Windows_32bit.zip") + ) + + return target and target:format(release) + end, + } + + platform.when { + unix = function() + github.untargz_release_file(opts).with_receipt() + ctx:link_bin("arduino-language-server", "arduino-language-server") + end, + win = function() + github.unzip_release_file(opts).with_receipt() + ctx:link_bin("arduino-language-server", "arduino-language-server.exe") + end, + } + end, +} diff --git a/lua/mason-registry/asm-lsp/init.lua b/lua/mason-registry/asm-lsp/init.lua new file mode 100644 index 00000000..f28afba9 --- /dev/null +++ b/lua/mason-registry/asm-lsp/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason.core.package" +local cargo = require "mason.core.managers.cargo" + +return Pkg.new { + name = "asm-lsp", + desc = [[Language server for NASM/GAS/GO Assembly]], + homepage = "https://github.com/bergercookie/asm-lsp", + languages = { Pkg.Lang.Assembly }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("asm-lsp", { + bin = { "asm-lsp" }, + }), +} diff --git a/lua/mason-registry/astro-language-server/init.lua b/lua/mason-registry/astro-language-server/init.lua new file mode 100644 index 00000000..03a4cb79 --- /dev/null +++ b/lua/mason-registry/astro-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "astro-language-server", + desc = [[The Astro language server, its structure is inspired by the Svelte Language Server.]], + homepage = "https://github.com/withastro/language-tools", + languages = { Pkg.Lang.Astro }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@astrojs/language-server", bin = { "astro-ls" } }, +} diff --git a/lua/mason-registry/awk-language-server/init.lua b/lua/mason-registry/awk-language-server/init.lua new file mode 100644 index 00000000..39f9cc54 --- /dev/null +++ b/lua/mason-registry/awk-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "awk-language-server", + desc = [[Language Server for AWK]], + homepage = "https://github.com/Beaglefoot/awk-language-server", + languages = { Pkg.Lang.AWK }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "awk-language-server", bin = { "awk-language-server" } }, +} diff --git a/lua/mason-registry/bash-language-server/init.lua b/lua/mason-registry/bash-language-server/init.lua new file mode 100644 index 00000000..eb5fb68d --- /dev/null +++ b/lua/mason-registry/bash-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "bash-language-server", + desc = [[A language server for Bash]], + homepage = "https://github.com/bash-lsp/bash-language-server", + languages = { Pkg.Lang.Bash }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "bash-language-server", bin = { "bash-language-server" } }, +} diff --git a/lua/mason-registry/beancount-language-server/init.lua b/lua/mason-registry/beancount-language-server/init.lua new file mode 100644 index 00000000..579f5777 --- /dev/null +++ b/lua/mason-registry/beancount-language-server/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason.core.package" +local cargo = require "mason.core.managers.cargo" + +return Pkg.new { + name = "beancount-language-server", + desc = [[A Language Server Protocol (LSP) for beancount files]], + homepage = "https://github.com/polarmutex/beancount-language-server", + languages = { Pkg.Lang.Beancount }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("beancount-language-server", { + bin = { "beancount-language-server" }, + }), +} diff --git a/lua/mason-registry/bicep-lsp/init.lua b/lua/mason-registry/bicep-lsp/init.lua new file mode 100644 index 00000000..0e1eff44 --- /dev/null +++ b/lua/mason-registry/bicep-lsp/init.lua @@ -0,0 +1,31 @@ +local Pkg = require "mason.core.package" +local path = require "mason.core.path" +local std = require "mason.core.managers.std" +local github = require "mason.core.managers.github" + +return Pkg.new { + name = "bicep-lsp", + desc = [[Bicep is a declarative language for describing and deploying Azure resources]], + homepage = "https://github.com/Azure/bicep", + languages = { Pkg.Lang.Bicep }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + std.ensure_executable("dotnet", { help_url = "https://dotnet.microsoft.com/download" }) + ctx.fs:mkdir "vscode" + ctx:chdir("vscode", function() + -- The bicep-langserver.zip is a bit broken on POSIX systems - so we download it via the VSCode distribution + -- instead. See https://github.com/Azure/bicep/issues/3704. + github + .unzip_release_file({ + repo = "Azure/bicep", + asset_file = "vscode-bicep.vsix", + }) + .with_receipt() + end) + ctx.fs:rename(path.concat { "vscode", "extension", "bicepLanguageServer" }, "langserver") + ctx.fs:rmrf "vscode" + ctx:chdir "langserver" + end, +} diff --git a/lua/mason-registry/bsl-language-server/init.lua b/lua/mason-registry/bsl-language-server/init.lua new file mode 100644 index 00000000..be28e06b --- /dev/null +++ b/lua/mason-registry/bsl-language-server/init.lua @@ -0,0 +1,23 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" + +return Pkg.new { + name = "bsl-language-server", + desc = [[Implementation of Language Server Protocol for Language 1C (BSL)]], + homepage = "https://1c-syntax.github.io/bsl-language-server", + languages = { Pkg.Lang["1С:Enterprise"], Pkg.Lang.OneScript }, + categories = { Pkg.Cat.LSP }, + ---@async + install = function() + github + .download_release_file({ + repo = "1c-syntax/bsl-language-server", + out_file = "bsl-lsp.jar", + asset_file = function(release) + local version = release:gsub("^v", "") + return ("bsl-language-server-%s-exec.jar"):format(version) + end, + }) + .with_receipt() + end, +} diff --git a/lua/mason-registry/ccls/common.lua b/lua/mason-registry/ccls/common.lua new file mode 100644 index 00000000..728943a9 --- /dev/null +++ b/lua/mason-registry/ccls/common.lua @@ -0,0 +1,47 @@ +local path = require "mason.core.path" +local platform = require "mason.core.platform" +local installer = require "mason.core.installer" +local git = require "mason.core.managers.git" +local github = require "mason.core.managers.github" +local Optional = require "mason.core.optional" + +---@async +---@param opts {llvm_dir: string} +return function(opts) + local ctx = installer.context() + local clang_resource_dir = path.concat { ctx.package:get_install_path(), "clang-resource" } + local install_prefix = ctx.cwd:get() + + local source = github.tag { repo = "MaskRay/ccls" } + source.with_receipt() + + ctx.fs:mkdir "ccls-git" + ctx:chdir("ccls-git", function() + git.clone { "https://github.com/MaskRay/ccls", recursive = true, version = Optional.of(source.tag) } + ctx.spawn.cmake { + "-DCMAKE_BUILD_TYPE=Release", + "-DUSE_SYSTEM_RAPIDJSON=OFF", + "-DCMAKE_FIND_FRAMEWORK=LAST", + "-Wno-dev", + ("-DCMAKE_INSTALL_PREFIX=%s"):format(install_prefix), + Optional.of_nilable(opts.llvm_dir) + :map(function(llvm_dir) + return { + ("-DCMAKE_PREFIX_PATH=%s"):format(llvm_dir), + -- On Mac we use Homebrew LLVM which will persist after installation. + -- On Linux, and when a custom llvm_dir is provided, its clang resource dir will be the only + -- artifact persisted after installation, as the locally installed llvm installation will be + -- cleaned up after compilation. + not platform.is_mac and ("-DCLANG_RESOURCE_DIR=%s"):format(clang_resource_dir) or vim.NIL, + } + end) + :or_else(vim.NIL), + platform.is_mac and "-DCMAKE_OSX_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" or vim.NIL, + } + + ctx.spawn.make { "install" } + end) + ctx.fs:rmrf "ccls-git" + + ctx:link_bin("ccls", path.concat { "bin", "ccls" }) +end diff --git a/lua/mason-registry/ccls/init.lua b/lua/mason-registry/ccls/init.lua new file mode 100644 index 00000000..7f38c956 --- /dev/null +++ b/lua/mason-registry/ccls/init.lua @@ -0,0 +1,17 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" + +return Pkg.new { + name = "ccls", + desc = [[C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting]], + homepage = "https://github.com/MaskRay/ccls", + languages = { Pkg.Lang.C, Pkg.Lang["C++"], Pkg.Lang["Obective-C"] }, + categories = { Pkg.Cat.LSP }, + ---@async + install = function() + platform.when { + mac = require "mason-registry.ccls.mac", + linux = require "mason-registry.ccls.linux", + } + end, +} diff --git a/lua/mason-registry/ccls/linux.lua b/lua/mason-registry/ccls/linux.lua new file mode 100644 index 00000000..b2cb31af --- /dev/null +++ b/lua/mason-registry/ccls/linux.lua @@ -0,0 +1,73 @@ +local path = require "mason.core.path" +local platform = require "mason.core.platform" +local installer = require "mason.core.installer" +local github = require "mason.core.managers.github" +local _ = require "mason.core.functional" +local Result = require "mason.core.result" +local Optional = require "mason.core.optional" + +local ccls_installer = require "mason-registry.ccls.common" + +local coalesce, when = _.coalesce, _.when + +---@param release string +local function normalize_llvm_release(release) + -- Strip the "llvmorg-" prefix from tags (llvm releases tags like llvmorg-13.0.0) + local normalized_release = release:gsub("^llvmorg%-", "") + return normalized_release +end + +---@async +local function llvm_installer() + local ctx = installer.context() + local os_dist = platform.os_distribution() + + local asset_name = coalesce( + when( + platform.arch == "x64", + coalesce( + when( + os_dist.id == "ubuntu" and os_dist.version.major >= 20, + "clang+llvm-%s-x86_64-linux-gnu-ubuntu-20.04" + ), + when( + os_dist.id == "ubuntu" and os_dist.version.major >= 16, + "clang+llvm-%s-x86_64-linux-gnu-ubuntu-16.04" + ) + ) + ), + when(platform.arch == "arm64", "clang+llvm-%s-aarch64-linux-gnu"), + when(platform.arch == "armv7", "clang+llvm-%s-armv7a-linux-gnueabihf") + ) + + local source = github.untarxz_release_file { + repo = "llvm/llvm-project", + version = Optional.of "llvmorg-13.0.0", + asset_file = function(release) + local normalized_release = normalize_llvm_release(release) + return asset_name and ("%s.tar.xz"):format(asset_name):format(normalized_release) + end, + } + + ctx.fs:rename(asset_name:format(normalize_llvm_release(source.release)), "llvm") + -- We move the clang headers out, because they need to be persisted + ctx.fs:rename(path.concat { "llvm", "lib", "clang", normalize_llvm_release(source.release) }, "clang-resource") + + return path.concat { ctx.cwd:get(), "llvm" } +end + +---@async +return function() + local ctx = installer.context() + Result.run_catching(llvm_installer) + :map(function(llvm_dir) + ccls_installer { llvm_dir = llvm_dir } + ctx.fs:rmrf "llvm" + end) + :recover(function() + pcall(function() + ctx.fs:rmrf "llvm" + end) + ccls_installer {} + end) +end diff --git a/lua/mason-registry/ccls/mac.lua b/lua/mason-registry/ccls/mac.lua new file mode 100644 index 00000000..53b26f93 --- /dev/null +++ b/lua/mason-registry/ccls/mac.lua @@ -0,0 +1,22 @@ +local path = require "mason.core.path" +local platform = require "mason.core.platform" +local installer = require "mason.core.installer" +local fs = require "mason.core.fs" + +local ccls_installer = require "mason-registry.ccls.common" + +---@async +return function() + local ctx = installer.context() + local homebrew_prefix = platform.get_homebrew_prefix():get_or_throw() + local llvm_dir = path.concat { homebrew_prefix, "opt", "llvm", "lib", "cmake" } + if not fs.async.dir_exists(llvm_dir) then + ctx.stdio_sink.stderr( + ( + "LLVM does not seem to be installed on this system (looked in %q). Please install LLVM via Homebrew:\n $ brew install llvm\n" + ):format(llvm_dir) + ) + error "Unable to find LLVM." + end + ccls_installer { llvm_dir = llvm_dir } +end diff --git a/lua/mason-registry/chrome-debug-adapter/init.lua b/lua/mason-registry/chrome-debug-adapter/init.lua new file mode 100644 index 00000000..29085399 --- /dev/null +++ b/lua/mason-registry/chrome-debug-adapter/init.lua @@ -0,0 +1,35 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local git = require "mason.core.managers.git" +local _ = require "mason.core.functional" +local path = require "mason.core.path" +local Optional = require "mason.core.optional" + +return Pkg.new { + name = "chrome-debug-adapter", + desc = [[Debug your JavaScript code running in Google Chrome.]], + homepage = "https://github.com/Microsoft/vscode-chrome-debug", + languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local source = github.tag { repo = "Microsoft/vscode-chrome-debug" } + source.with_receipt() + git.clone { "https://github.com/Microsoft/vscode-chrome-debug", version = Optional.of(source.tag) } + ctx.spawn.npm { "install" } + ctx.spawn.npm { "run", "build" } + pcall(function() + -- this errors for some reason - but it effectively reduces the node_modules/ size by ~98% + ctx.spawn.npm { "install", "--production" } + end) + -- vscode-chrome-debug comes with a lot of extra baggage + ctx.fs:rmrf "images" + ctx.fs:rmrf "testdata" + ctx.fs:rmrf ".git" + ctx:link_bin( + "chrome-debug-adapter", + ctx:write_node_exec_wrapper("chrome-debug-adapter", path.concat { "out", "src", "chromeDebug.js" }) + ) + end, +} diff --git a/lua/mason-registry/clangd/init.lua b/lua/mason-registry/clangd/init.lua new file mode 100644 index 00000000..6f5657b1 --- /dev/null +++ b/lua/mason-registry/clangd/init.lua @@ -0,0 +1,40 @@ +local Pkg = require "mason.core.package" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local github = require "mason.core.managers.github" +local path = require "mason.core.path" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "clangd", + desc = [[clangd understands your C++ code and adds smart features to your editor: code completion, compile errors, go-to-definition and more.]], + homepage = "https://clangd.llvm.org", + languages = { Pkg.Lang.C, Pkg.Lang["C++"] }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local source = github.unzip_release_file { + repo = "clangd/clangd", + asset_file = function(release) + local target = coalesce( + when(platform.is.mac, "clangd-mac-%s.zip"), + when(platform.is.linux_x64, "clangd-linux-%s.zip"), + when(platform.is.win_x64, "clangd-windows-%s.zip") + ) + return target and target:format(release) + end, + } + source.with_receipt() + ctx.fs:rename(("clangd_%s"):format(source.release), "clangd") + ctx:link_bin( + "clangd", + path.concat { + "clangd", + "bin", + platform.is.win and "clangd.exe" or "clangd", + } + ) + end, +} diff --git a/lua/mason-registry/clarity-lsp/init.lua b/lua/mason-registry/clarity-lsp/init.lua new file mode 100644 index 00000000..3c2b6da8 --- /dev/null +++ b/lua/mason-registry/clarity-lsp/init.lua @@ -0,0 +1,29 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local github = require "mason.core.managers.github" +local _ = require "mason.core.functional" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "clarity-lsp", + desc = [[Language Server Protocol implementation for Clarity.]], + homepage = "https://github.com/hirosystems/clarity-lsp", + languages = { Pkg.Lang.Clarity }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "hirosystems/clarity-lsp", + asset_file = coalesce( + when(platform.is.mac, "clarity-lsp-macos-x64.zip"), + when(platform.is.linux_x64, "clarity-lsp-linux-x64.zip"), + when(platform.is.win_x64, "clarity-lsp-windows-x64.zip") + ), + }) + .with_receipt() + ctx:link_bin("clarity-lsp", platform.is.win and "clarity-lsp.exe" or "clarity-lsp") + end, +} diff --git a/lua/mason-registry/clojure-lsp/init.lua b/lua/mason-registry/clojure-lsp/init.lua new file mode 100644 index 00000000..78e8461e --- /dev/null +++ b/lua/mason-registry/clojure-lsp/init.lua @@ -0,0 +1,33 @@ +local Pkg = require "mason.core.package" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "clojure-lsp", + desc = [[A Language Server for Clojure(script). Taking a Cursive-like approach of statically analyzing code.]], + homepage = "https://clojure-lsp.io", + languages = { Pkg.Lang.Clojure, Pkg.Lang.ClojureScript }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "clojure-lsp/clojure-lsp", + asset_file = coalesce( + when(platform.is.mac_arm64, "clojure-lsp-native-macos-aarch64.zip"), + when(platform.is.mac_x64, "clojure-lsp-native-macos-amd64.zip"), + when(platform.is.linux_x64, "clojure-lsp-native-linux-amd64.zip"), + when(platform.is.linux_arm64, "clojure-lsp-native-linux-aarch64.zip"), + when(platform.is_win, "clojure-lsp-native-windows-amd64.zip") + ), + }) + .with_receipt() + std.chmod("+x", { "clojure-lsp" }) + ctx:link_bin("clojure-lsp", platform.is.win and "clojure-lsp.exe" or "clojure-lsp") + end, +} diff --git a/lua/mason-registry/cmake-language-server/init.lua b/lua/mason-registry/cmake-language-server/init.lua new file mode 100644 index 00000000..9c5089ad --- /dev/null +++ b/lua/mason-registry/cmake-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local pip3 = require "mason.core.managers.pip3" + +return Pkg.new { + name = "cmake-language-server", + desc = [[CMake LSP Implementation]], + homepage = "https://github.com/regen100/cmake-language-server", + languages = { Pkg.Lang.CMake }, + categories = { Pkg.Cat.LSP }, + install = pip3.packages { "cmake-language-server", bin = { "cmake-language-server" } }, +} diff --git a/lua/mason-registry/codelldb/init.lua b/lua/mason-registry/codelldb/init.lua new file mode 100644 index 00000000..ee12f761 --- /dev/null +++ b/lua/mason-registry/codelldb/init.lua @@ -0,0 +1,34 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local path = require "mason.core.path" + +return Pkg.new { + name = "codelldb", + desc = [[A native debugger based on LLDB]], + homepage = "https://github.com/vadimcn/vscode-lldb", + languages = { Pkg.Lang.C, Pkg.Lang["C++"], Pkg.Lang.Rust }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "vadimcn/vscode-lldb", + asset_file = _.coalesce( + _.when(platform.is.mac_x64, "codelldb-x86_64-darwin.vsix"), + _.when(platform.is.mac_arm64, "codelldb-aarch64-darwin.vsix"), + _.when(platform.is.linux_x64, "codelldb-x86_64-linux.vsix"), + _.when(platform.is.linux_arm64, "codelldb-aarch64-linux.vsix"), + _.when(platform.is.linux_arm, "codelldb-arm-linux.vsix"), + _.when(platform.is.win_x64, "codelldb-x86_64-windows.vsix") + ), + }) + .with_receipt() + ctx:link_bin( + "codelldb", + path.concat { "extension", "adapter", platform.is.win and "codelldb.exe" or "codelldb" } + ) + end, +} diff --git a/lua/mason-registry/codeql/init.lua b/lua/mason-registry/codeql/init.lua new file mode 100644 index 00000000..849c355d --- /dev/null +++ b/lua/mason-registry/codeql/init.lua @@ -0,0 +1,30 @@ +local Pkg = require "mason.core.package" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local github = require "mason.core.managers.github" +local path = require "mason.core.path" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "codeql", + desc = [[Discover vulnerabilities across a codebase with CodeQL, our industry-leading semantic code analysis engine. CodeQL lets you query code as though it were data. Write a query to find all variants of a vulnerability, eradicating it forever. Then share your query to help others do the same.]], + homepage = "https://github.com/github/codeql-cli-binaries", + languages = { Pkg.Lang.CodeQL }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "github/codeql-cli-binaries", + asset_file = coalesce( + when(platform.is.mac, "codeql-osx64.zip"), + when(platform.is.linux_x64, "codeql-linux64.zip"), + when(platform.is.win_x64, "codeql-win64.zip") + ), + }) + .with_receipt() + ctx:link_bin("codeql", path.concat { "codeql", platform.is.win and "codeql.cmd" or "codeql" }) + end, +} diff --git a/lua/mason-registry/cpptools/init.lua b/lua/mason-registry/cpptools/init.lua new file mode 100644 index 00000000..1ef5ffa2 --- /dev/null +++ b/lua/mason-registry/cpptools/init.lua @@ -0,0 +1,42 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local path = require "mason.core.path" + +return Pkg.new { + name = "cpptools", + desc = [[Official repository for the Microsoft C/C++ extension for VS Code.]], + homepage = "https://github.com/microsoft/vscode-cpptools", + languages = { Pkg.Lang.C, Pkg.Lang["C++"], Pkg.Lang.Rust }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "microsoft/vscode-cpptools", + asset_file = _.coalesce( + _.when(platform.is.mac_x64, "cpptools-osx.vsix"), + _.when(platform.is.mac_arm64, "cpptools-osx-arm64.vsix"), + _.when(platform.is.linux_x64, "cpptools-linux.vsix"), + _.when(platform.is.linux_arm64, "cpptools-linux-aarch64.vsix"), + _.when(platform.is.linux_arm, "cpptools-linux-armhf.vsix"), + _.when(platform.is.win_x64, "cpptools-win64.vsix"), + _.when(platform.is.win_arm64, "cpptools-win-arm64.vsix"), + _.when(platform.is.win_x86, "cpptools-win32.vsix") + ), + }) + .with_receipt() + + local debug_executable = path.concat { + "extension", + "debugAdapters", + "bin", + platform.is.win and "OpenDebugAD7.exe" or "OpenDebugAD7", + } + std.chmod("+x", debug_executable) + ctx:link_bin("OpenDebugAD7", debug_executable) + end, +} diff --git a/lua/mason-registry/crystalline/init.lua b/lua/mason-registry/crystalline/init.lua new file mode 100644 index 00000000..22d426fc --- /dev/null +++ b/lua/mason-registry/crystalline/init.lua @@ -0,0 +1,31 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "crystalline", + desc = [[A Language Server Protocol implementation for Crystal. 🔮]], + homepage = "https://github.com/elbywan/crystalline", + languages = { Pkg.Lang.Crystal }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .gunzip_release_file({ + repo = "elbywan/crystalline", + asset_file = coalesce( + when(platform.is.mac_x64, "crystalline_x86_64-apple-darwin.gz"), + when(platform.is.linux_x64, "crystalline_x86_64-unknown-linux-gnu.gz") + ), + out_file = "crystalline", + }) + .with_receipt() + std.chmod("+x", { "crystalline" }) + ctx:link_bin("crystalline", "crystalline") + end, +} diff --git a/lua/mason-registry/csharp-language-server/init.lua b/lua/mason-registry/csharp-language-server/init.lua new file mode 100644 index 00000000..1147cf28 --- /dev/null +++ b/lua/mason-registry/csharp-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local dotnet = require "mason.core.managers.dotnet" + +return Pkg.new { + name = "csharp-language-server", + desc = [[Roslyn-based LSP language server for C#]], + homepage = "https://github.com/razzmatazz/csharp-language-server", + languages = { Pkg.Lang["C#"] }, + categories = { Pkg.Cat.LSP }, + install = dotnet.package("csharp-ls", { bin = { "csharp-ls" } }), +} diff --git a/lua/mason-registry/css-lsp/init.lua b/lua/mason-registry/css-lsp/init.lua new file mode 100644 index 00000000..c1562aec --- /dev/null +++ b/lua/mason-registry/css-lsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "css-lsp", + desc = [[Language Server Protocol implementation for CSS, SCSS & LESS.]], + homepage = "https://github.com/microsoft/vscode-css-languageservice", + languages = { Pkg.Lang.CSS, Pkg.Lang.SCSS, Pkg.Lang.LESS }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "vscode-langservers-extracted", bin = { "vscode-css-language-server" } }, +} diff --git a/lua/mason-registry/cssmodules-language-server/init.lua b/lua/mason-registry/cssmodules-language-server/init.lua new file mode 100644 index 00000000..098a167f --- /dev/null +++ b/lua/mason-registry/cssmodules-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "cssmodules-language-server", + desc = [[autocompletion and go-to-defintion for cssmodules]], + homepage = "https://github.com/antonk52/cssmodules-language-server", + languages = { Pkg.Lang.CSS }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "cssmodules-language-server", bin = { "cssmodules-language-server" } }, +} diff --git a/lua/mason-registry/cucumber-language-server/init.lua b/lua/mason-registry/cucumber-language-server/init.lua new file mode 100644 index 00000000..7e6cd44c --- /dev/null +++ b/lua/mason-registry/cucumber-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "cucumber-language-server", + desc = [[Cucumber Language Server]], + homepage = "https://github.com/cucumber/language-server", + languages = { Pkg.Lang.Cucumber }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@cucumber/language-server", bin = { "cucumber-language-server" } }, +} diff --git a/lua/mason-registry/debugpy/init.lua b/lua/mason-registry/debugpy/init.lua new file mode 100644 index 00000000..79e71825 --- /dev/null +++ b/lua/mason-registry/debugpy/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local pip3 = require "mason.core.managers.pip3" + +return Pkg.new { + name = "debugpy", + desc = [[An implementation of the Debug Adapter Protocol for Python]], + homepage = "https://github.com/microsoft/debugpy", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.DAP }, + install = pip3.packages { "debugpy" }, +} diff --git a/lua/mason-registry/delve/init.lua b/lua/mason-registry/delve/init.lua new file mode 100644 index 00000000..eb6c9e59 --- /dev/null +++ b/lua/mason-registry/delve/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local go = require "mason.core.managers.go" + +return Pkg.new { + name = "delve", + desc = [[Delve is a debugger for the Go programming language.]], + homepage = "https://github.com/go-delve/delve", + languages = { Pkg.Lang.Go }, + categories = { Pkg.Cat.DAP }, + install = go.packages { "github.com/go-delve/delve/cmd/dlv", bin = { "dlv" } }, +} diff --git a/lua/mason-registry/deno/init.lua b/lua/mason-registry/deno/init.lua new file mode 100644 index 00000000..1ec24302 --- /dev/null +++ b/lua/mason-registry/deno/init.lua @@ -0,0 +1,30 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "deno", + desc = [[Deno (/ˈdiːnoʊ/, pronounced dee-no) is a JavaScript, TypeScript, and WebAssembly runtime with secure defaults and a great developer experience.]], + homepage = "https://deno.land/manual/language_server/overview", + languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, + categories = { Pkg.Cat.LSP, Pkg.Cat.Runtime }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "denoland/deno", + asset_file = coalesce( + when(platform.is.mac_arm64, "deno-aarch64-apple-darwin.zip"), + when(platform.is.mac_x64, "deno-x86_64-apple-darwin.zip"), + when(platform.is.linux_x64, "deno-x86_64-unknown-linux-gnu.zip"), + when(platform.is.win_x64, "deno-x86_64-pc-windows-msvc.zip") + ), + }) + .with_receipt() + ctx:link_bin("deno", platform.is.win and "deno.exe" or "deno") + end, +} diff --git a/lua/mason-registry/dhall-lsp/init.lua b/lua/mason-registry/dhall-lsp/init.lua new file mode 100644 index 00000000..85f7ac23 --- /dev/null +++ b/lua/mason-registry/dhall-lsp/init.lua @@ -0,0 +1,65 @@ +local Pkg = require "mason.core.package" +local path = require "mason.core.path" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local std = require "mason.core.managers.std" +local github_client = require "mason.core.managers.github.client" +local Optional = require "mason.core.optional" + +return Pkg.new { + name = "dhall-lsp", + desc = [[LSP server implementation for Dhall.]], + homepage = "https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-lsp-server", + languages = { Pkg.Lang.Dhall }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "dhall-lang/dhall-haskell" + ---@type GitHubRelease + local gh_release = ctx.requested_version + :map(function(version) + return github_client.fetch_release(repo, version) + end) + :or_else_get(function() + return github_client.fetch_latest_release(repo) + end) + :get_or_throw() + + local asset_name_pattern = assert( + _.coalesce( + _.when(platform.is.mac, "dhall%-lsp%-server%-.+%-x86_64%-macos.tar.bz2"), + _.when(platform.is.linux_x64, "dhall%-lsp%-server%-.+%-x86_64%-linux.tar.bz2"), + _.when(platform.is.win_x64, "dhall%-lsp%-server%-.+%-x86_64%-windows.zip") + ) + ) + local dhall_lsp_server_asset = + _.find_first(_.prop_satisfies(_.matches(asset_name_pattern), "name"), gh_release.assets) + Optional.of_nilable(dhall_lsp_server_asset) + :if_present( + ---@param asset GitHubReleaseAsset + function(asset) + if platform.is.win then + std.download_file(asset.browser_download_url, "dhall-lsp-server.zip") + std.unzip("dhall-lsp-server.zip", ".") + else + std.download_file(asset.browser_download_url, "dhall-lsp-server.tar.bz2") + std.untar "dhall-lsp-server.tar.bz2" + std.chmod("+x", { path.concat { "bin", "dhall-lsp-server" } }) + end + ctx.receipt:with_primary_source { + type = "github_release_file", + repo = repo, + file = asset.browser_download_url, + release = gh_release.tag_name, + } + end + ) + :or_else_throw "Unable to find the dhall-lsp-server release asset in the GitHub release." + + ctx:link_bin( + "dhall-lsp-server", + path.concat { "bin", platform.is.win and "dhall-lsp-server.exe" or "dhall-lsp-server" } + ) + end, +} diff --git a/lua/mason-registry/diagnostic-languageserver/init.lua b/lua/mason-registry/diagnostic-languageserver/init.lua new file mode 100644 index 00000000..af69a0a4 --- /dev/null +++ b/lua/mason-registry/diagnostic-languageserver/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "diagnostic-languageserver", + desc = [[Diagnostic language server that integrates with linters.]], + homepage = "https://github.com/iamcco/diagnostic-languageserver", + languages = {}, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "diagnostic-languageserver", bin = { "diagnostic-languageserver" } }, +} diff --git a/lua/mason-registry/dockerfile-language-server/init.lua b/lua/mason-registry/dockerfile-language-server/init.lua new file mode 100644 index 00000000..b81b6197 --- /dev/null +++ b/lua/mason-registry/dockerfile-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "dockerfile-language-server", + desc = [[A language server for Dockerfiles powered by Node.js, TypeScript, and VSCode technologies.]], + homepage = "https://github.com/rcjsuen/dockerfile-language-server-nodejs", + languages = { Pkg.Lang.Dockerfile }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "dockerfile-language-server-nodejs", bin = { "docker-langserver" } }, +} diff --git a/lua/mason-registry/dot-language-server/init.lua b/lua/mason-registry/dot-language-server/init.lua new file mode 100644 index 00000000..32520c85 --- /dev/null +++ b/lua/mason-registry/dot-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "dot-language-server", + desc = [[A language server for the DOT language]], + homepage = "https://github.com/nikeee/dot-language-server", + languages = { Pkg.Lang.DOT }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "dot-language-server", bin = { "dot-language-server" } }, +} diff --git a/lua/mason-registry/efm/init.lua b/lua/mason-registry/efm/init.lua new file mode 100644 index 00000000..b91e375e --- /dev/null +++ b/lua/mason-registry/efm/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local go = require "mason.core.managers.go" + +return Pkg.new { + name = "efm", + desc = [[General purpose Language Server]], + homepage = "https://github.com/mattn/efm-langserver", + languages = {}, + categories = { Pkg.Cat.LSP }, + install = go.packages { "github.com/mattn/efm-langserver", bin = { "efm-langserver" } }, +} diff --git a/lua/mason-registry/elixir-ls/init.lua b/lua/mason-registry/elixir-ls/init.lua new file mode 100644 index 00000000..8e164fed --- /dev/null +++ b/lua/mason-registry/elixir-ls/init.lua @@ -0,0 +1,21 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" + +return Pkg.new { + name = "elixir-ls", + desc = [[A frontend-independent IDE "smartness" server for Elixir. Implements the "Language Server Protocol" standard and provides debugger support via the "Debug Adapter Protocol"]], + homepage = "https://github.com/elixir-lsp/elixir-ls", + languages = { Pkg.Lang.Elixir }, + categories = { Pkg.Cat.LSP, Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "elixir-lsp/elixir-ls", + asset_file = "elixir-ls.zip", + }) + .with_receipt() + end, +} diff --git a/lua/mason-registry/elm-format/init.lua b/lua/mason-registry/elm-format/init.lua new file mode 100644 index 00000000..e162ffdc --- /dev/null +++ b/lua/mason-registry/elm-format/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "elm-format", + desc = [[elm-format formats Elm source code according to a standard set of rules based on the official Elm Style Guide]], + homepage = "https://github.com/avh4/elm-format", + languages = { Pkg.Lang.Elm }, + categories = { Pkg.Cat.Formatter }, + install = npm.packages { "elm-format", bin = { "elm-format" } }, +} diff --git a/lua/mason-registry/elm-language-server/init.lua b/lua/mason-registry/elm-language-server/init.lua new file mode 100644 index 00000000..847bed49 --- /dev/null +++ b/lua/mason-registry/elm-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "elm-language-server", + desc = [[Language server implementation for Elm]], + homepage = "https://github.com/elm-tooling/elm-language-server", + languages = { Pkg.Lang.Elm }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@elm-tooling/elm-language-server", bin = { "elm-language-server" } }, +} diff --git a/lua/mason-registry/ember-language-server/init.lua b/lua/mason-registry/ember-language-server/init.lua new file mode 100644 index 00000000..62bd701b --- /dev/null +++ b/lua/mason-registry/ember-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "ember-language-server", + desc = [[Language Server Protocol implementation for Ember.js and Glimmer projects]], + homepage = "https://github.com/lifeart/ember-language-server", + languages = { Pkg.Lang.Ember }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@lifeart/ember-language-server", bin = { "ember-language-server" } }, +} diff --git a/lua/mason-registry/emmet-ls/init.lua b/lua/mason-registry/emmet-ls/init.lua new file mode 100644 index 00000000..6f9e3058 --- /dev/null +++ b/lua/mason-registry/emmet-ls/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "emmet-ls", + desc = [[Emmet support based on LSP.]], + homepage = "https://github.com/aca/emmet-ls", + languages = { Pkg.Lang.Emmet }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "emmet-ls", bin = { "emmet-ls" } }, +} diff --git a/lua/mason-registry/erlang-ls/init.lua b/lua/mason-registry/erlang-ls/init.lua new file mode 100644 index 00000000..a6a22e0f --- /dev/null +++ b/lua/mason-registry/erlang-ls/init.lua @@ -0,0 +1,34 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local std = require "mason.core.managers.std" +local git = require "mason.core.managers.git" +local github = require "mason.core.managers.github" +local Optional = require "mason.core.optional" +local path = require "mason.core.path" + +local rebar3 = platform.is_win and "rebar3.cmd" or "rebar3" + +return Pkg.new { + name = "erlang-ls", + desc = [[Implementing features such as auto-complete or go-to-definition for a programming language is not trivial. Traditionally, this work had to be repeated for each development tool and it required a mix of expertise in both the targeted programming language and the programming language internally used by the development tool of choice.]], + languages = { Pkg.Lang.Erlang }, + categories = { Pkg.Cat.LSP }, + homepage = "https://erlang-ls.github.io/", + ---@async + ---@param ctx InstallContext + install = function(ctx) + std.ensure_executable(rebar3, { help_url = "http://rebar3.org/docs/" }) + + local repo = "erlang-ls/erlang_ls" + local source = github.tag { repo = repo } + source.with_receipt() + git.clone { ("https://github.com/%s.git"):format(repo), version = Optional.of(source.tag) } + + ctx.spawn[rebar3] { "escriptize" } + ctx.spawn[rebar3] { "as", "dap", "escriptize" } + ctx:link_bin( + "erlang_ls", + path.concat { "_build", "default", "bin", platform.is.win and "erlang_ls.bat" or "erlang_ls" } + ) + end, +} diff --git a/lua/mason-registry/esbonio/init.lua b/lua/mason-registry/esbonio/init.lua new file mode 100644 index 00000000..278f100a --- /dev/null +++ b/lua/mason-registry/esbonio/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local pip3 = require "mason.core.managers.pip3" + +return Pkg.new { + name = "esbonio", + desc = [[A Language Server for Sphinx projects.]], + homepage = "https://pypi.org/project/esbonio/", + languages = { Pkg.Lang.Sphinx }, + categories = { Pkg.Cat.LSP }, + install = pip3.packages { "esbonio", bin = { "esbonio" } }, +} diff --git a/lua/mason-registry/eslint-lsp/init.lua b/lua/mason-registry/eslint-lsp/init.lua new file mode 100644 index 00000000..b1d22e84 --- /dev/null +++ b/lua/mason-registry/eslint-lsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "eslint-lsp", + desc = [[Language Server Protocol implementation for ESLint. The server uses the ESLint library installed in the opened workspace folder. If the folder doesn't provide one the extension looks for a global install version.]], + homepage = "https://github.com/Microsoft/vscode-eslint", + languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "vscode-langservers-extracted", bin = { "vscode-eslint-language-server" } }, +} diff --git a/lua/mason-registry/firefox-debug-adapter/init.lua b/lua/mason-registry/firefox-debug-adapter/init.lua new file mode 100644 index 00000000..20345dff --- /dev/null +++ b/lua/mason-registry/firefox-debug-adapter/init.lua @@ -0,0 +1,29 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local git = require "mason.core.managers.git" +local _ = require "mason.core.functional" +local path = require "mason.core.path" +local Optional = require "mason.core.optional" + +return Pkg.new { + name = "firefox-debug-adapter", + desc = [[Debug your web application or browser extension in Firefox]], + homepage = "https://github.com/firefox-devtools/vscode-firefox-debug", + languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local source = github.tag { repo = "firefox-devtools/vscode-firefox-debug" } + source.with_receipt() + git.clone { "https://github.com/firefox-devtools/vscode-firefox-debug", version = Optional.of(source.tag) } + ctx:apply_patches(require "mason-registry.firefox-debug-adapter.patches") + ctx.spawn.npm { "install" } + ctx.spawn.npm { "run", "build" } + ctx.spawn.npm { "install", "--production" } + ctx:link_bin( + "firefox-debug-adapter", + ctx:write_node_exec_wrapper("firefox-debug-adapter", path.concat { "dist", "adapter.bundle.js" }) + ) + end, +} diff --git a/lua/mason-registry/firefox-debug-adapter/patches.lua b/lua/mason-registry/firefox-debug-adapter/patches.lua new file mode 100644 index 00000000..09896fdf --- /dev/null +++ b/lua/mason-registry/firefox-debug-adapter/patches.lua @@ -0,0 +1,32 @@ +local fix_macos_build = [=====[ +--- a/webpack.config.js ++++ b/webpack.config.js +@@ -1,6 +1,14 @@ + const path = require('path'); + const CopyPlugin = require('copy-webpack-plugin'); + ++const externals = { ++ vscode: 'commonjs vscode', ++}; ++ ++if (process.platform === "darwin") { ++ externals["fsevents"] = 'commonjs fsevents'; ++} ++ + module.exports = { + context: path.resolve(__dirname, 'src'), + entry: { +@@ -19,9 +27,7 @@ module.exports = { + } + ] + }, +- externals: { +- vscode: 'commonjs vscode' +- }, ++ externals, + output: { + path: path.resolve(__dirname, 'dist'), + filename: '[name].bundle.js', +]=====] + +return { fix_macos_build } diff --git a/lua/mason-registry/flux-lsp/init.lua b/lua/mason-registry/flux-lsp/init.lua new file mode 100644 index 00000000..fb757b47 --- /dev/null +++ b/lua/mason-registry/flux-lsp/init.lua @@ -0,0 +1,14 @@ +local Pkg = require "mason.core.package" +local cargo = require "mason.core.managers.cargo" + +return Pkg.new { + name = "flux-lsp", + desc = [[Implementation of Language Server Protocol for the Flux language]], + homepage = "https://github.com/influxdata/flux-lsp", + languages = { Pkg.Lang.Flux }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("https://github.com/influxdata/flux-lsp", { + git = true, + bin = { "flux-lsp" }, + }), +} diff --git a/lua/mason-registry/foam-language-server/init.lua b/lua/mason-registry/foam-language-server/init.lua new file mode 100644 index 00000000..6ff1b44c --- /dev/null +++ b/lua/mason-registry/foam-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "foam-language-server", + desc = [[A language server for OpenFOAM case files]], + homepage = "https://github.com/FoamScience/foam-language-server", + languages = { Pkg.Lang.OpenFOAM }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "foam-language-server", bin = { "foam-ls" } }, +} diff --git a/lua/mason-registry/fortls/init.lua b/lua/mason-registry/fortls/init.lua new file mode 100644 index 00000000..befd8cd3 --- /dev/null +++ b/lua/mason-registry/fortls/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local pip3 = require "mason.core.managers.pip3" + +return Pkg.new { + name = "fortls", + desc = [[fortls - Fortran Language Server]], + homepage = "https://github.com/gnikit/fortls", + languages = { Pkg.Lang.Fortran }, + categories = { Pkg.Cat.LSP }, + install = pip3.packages { "fortls", bin = { "fortls" } }, +} diff --git a/lua/mason-registry/fsautocomplete/init.lua b/lua/mason-registry/fsautocomplete/init.lua new file mode 100644 index 00000000..824aef7a --- /dev/null +++ b/lua/mason-registry/fsautocomplete/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason.core.package" +local dotnet = require "mason.core.managers.dotnet" + +return Pkg.new { + name = "fsautocomplete", + desc = [[F# language server using Language Server Protocol]], + languages = { Pkg.Lang["F#"] }, + categories = { Pkg.Cat.LSP }, + homepage = "https://github.com/fsharp/FsAutoComplete", + install = dotnet.package("fsautocomplete", { + bin = { "fsautocomplete" }, + }), +} diff --git a/lua/mason-registry/go-debug-adapter/init.lua b/lua/mason-registry/go-debug-adapter/init.lua new file mode 100644 index 00000000..762506f8 --- /dev/null +++ b/lua/mason-registry/go-debug-adapter/init.lua @@ -0,0 +1,28 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local _ = require "mason.core.functional" +local path = require "mason.core.path" +local platform = require "mason.core.platform" + +return Pkg.new { + name = "go-debug-adapter", + desc = [[Go debug adapter sourced from the VSCode Go extension.]], + homepage = "https://github.com/golang/vscode-go", + languages = { Pkg.Lang.Go }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "golang/vscode-go", + asset_file = _.compose(_.format "go-%s.vsix", _.gsub("^v", "")), + }) + .with_receipt() + + ctx:link_bin( + "go-debug-adapter", + ctx:write_node_exec_wrapper("go-debug-adapter", path.concat { "extension", "dist", "debugAdapter.js" }) + ) + end, +} diff --git a/lua/mason-registry/golangci-lint-langserver/init.lua b/lua/mason-registry/golangci-lint-langserver/init.lua new file mode 100644 index 00000000..94445679 --- /dev/null +++ b/lua/mason-registry/golangci-lint-langserver/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local go = require "mason.core.managers.go" + +return Pkg.new { + name = "golangci-lint-langserver", + desc = [[golangci-lint language server]], + homepage = "https://github.com/nametake/golangci-lint-langserver", + languages = { Pkg.Lang.Go }, + categories = { Pkg.Cat.LSP }, + install = go.packages { "github.com/nametake/golangci-lint-langserver", bin = { "golangci-lint-langserver" } }, +} diff --git a/lua/mason-registry/golangci-lint/init.lua b/lua/mason-registry/golangci-lint/init.lua new file mode 100644 index 00000000..2948858d --- /dev/null +++ b/lua/mason-registry/golangci-lint/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local go = require "mason.core.managers.go" + +return Pkg.new { + name = "golangci-lint", + desc = [[golangci-lint is a fast Go linters runner. It runs linters in parallel, uses caching, supports yaml config, has integrations with all major IDE and has dozens of linters included.]], + homepage = "https://golangci-lint.run/", + languages = { Pkg.Lang.Go }, + categories = { Pkg.Cat.Linter }, + install = go.packages { "github.com/golangci/golangci-lint/cmd/golangci-lint", bin = { "golangci-lint" } }, +} diff --git a/lua/mason-registry/gopls/init.lua b/lua/mason-registry/gopls/init.lua new file mode 100644 index 00000000..39c4c74e --- /dev/null +++ b/lua/mason-registry/gopls/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local go = require "mason.core.managers.go" + +return Pkg.new { + name = "gopls", + desc = [[gopls (pronounced "Go please") is the official Go language server developed by the Go team. It provides IDE features to any LSP-compatible editor.]], + homepage = "https://pkg.go.dev/golang.org/x/tools/gopls", + languages = { Pkg.Lang.Go }, + categories = { Pkg.Cat.LSP }, + install = go.packages { "golang.org/x/tools/gopls", bin = { "gopls" } }, +} diff --git a/lua/mason-registry/grammarly-languageserver/init.lua b/lua/mason-registry/grammarly-languageserver/init.lua new file mode 100644 index 00000000..2135a330 --- /dev/null +++ b/lua/mason-registry/grammarly-languageserver/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "grammarly-languageserver", + desc = [[A language server implementation on top of Grammarly's SDK.]], + homepage = "https://github.com/znck/grammarly", + languages = { Pkg.Lang.Markdown, Pkg.Lang.Text }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "grammarly-languageserver", bin = { "grammarly-languageserver" } }, +} diff --git a/lua/mason-registry/graphql-language-service-cli/init.lua b/lua/mason-registry/graphql-language-service-cli/init.lua new file mode 100644 index 00000000..d01fec0c --- /dev/null +++ b/lua/mason-registry/graphql-language-service-cli/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "graphql-language-service-cli", + desc = [[GraphQL Language Service provides an interface for building GraphQL language services for IDEs.]], + homepage = "https://www.npmjs.com/package/graphql-language-service-cli", + languages = { Pkg.Lang.GraphQL }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "graphql-language-service-cli", "graphql", bin = { "graphql-lsp" } }, +} diff --git a/lua/mason-registry/groovy-language-server/init.lua b/lua/mason-registry/groovy-language-server/init.lua new file mode 100644 index 00000000..d6dc84d2 --- /dev/null +++ b/lua/mason-registry/groovy-language-server/init.lua @@ -0,0 +1,22 @@ +local Pkg = require "mason.core.package" +local std = require "mason.core.managers.std" +local git = require "mason.core.managers.git" + +return Pkg.new { + name = "groovy-language-server", + desc = [[A language server for Groovy]], + homepage = "https://github.com/GroovyLanguageServer/groovy-language-server", + languages = { Pkg.Lang.Groovy }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + std.ensure_executable "javac" + git.clone({ "https://github.com/GroovyLanguageServer/groovy-language-server" }).with_receipt() + ctx:promote_cwd() + ctx.spawn.gradlew { + "build", + with_paths = { ctx.cwd:get() }, + } + end, +} diff --git a/lua/mason-registry/haskell-language-server/init.lua b/lua/mason-registry/haskell-language-server/init.lua new file mode 100644 index 00000000..7282386a --- /dev/null +++ b/lua/mason-registry/haskell-language-server/init.lua @@ -0,0 +1,66 @@ +local a = require "mason.core.async" +local _ = require "mason.core.functional" +local Pkg = require "mason.core.package" +local std = require "mason.core.managers.std" +local github_client = require "mason.core.managers.github.client" +local path = require "mason.core.path" +local platform = require "mason.core.platform" + +return Pkg.new { + name = "haskell-language-server", + desc = [[Official Haskell Language Server implementation.]], + homepage = "https://haskell-language-server.readthedocs.io/en/latest/", + languages = { Pkg.Lang.Haskell }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "haskell/haskell-language-server" + local release = ctx.requested_version:or_else_get(function() + return github_client + .fetch_latest_release(repo) + :map( + ---@param release GitHubRelease + function(release) + return release.tag_name + end + ) + :get_or_throw() + end) + + std.ensure_executable("ghcup", { help_url = "https://www.haskell.org/ghcup/" }) + ctx:promote_cwd() + ctx.spawn.ghcup { "install", "hls", release, "-i", ctx.cwd:get() } + + ctx.receipt:with_primary_source(ctx.receipt.github_release(repo, release)) + platform.when { + unix = function() + ctx:link_bin( + "haskell-language-server-wrapper", + path.concat { "bin", "haskell-language-server-wrapper" } + ) + + a.scheduler() + for _, executable_abs_path in + ipairs( + vim.fn.glob(path.concat { ctx.cwd:get(), "bin", "haskell-language-server-[0-9]*" }, true, true) + ) + do + local executable = vim.fn.fnamemodify(executable_abs_path, ":t") + ctx:link_bin(executable, path.concat { "bin", executable }) + end + end, + win = function() + ctx:link_bin("haskell-language-server-wrapper", "haskell-language-server-wrapper.exe") + + a.scheduler() + for _, executable_abs_path in + ipairs(vim.fn.glob(path.concat { ctx.cwd:get(), "haskell-language-server-[0-9]*" }, true, true)) + do + local executable = vim.fn.fnamemodify(executable_abs_path, ":t:r") + ctx:link_bin(executable, ("%s.exe"):format(executable)) + end + end, + } + end, +} diff --git a/lua/mason-registry/haxe-language-server/init.lua b/lua/mason-registry/haxe-language-server/init.lua new file mode 100644 index 00000000..22f6b5be --- /dev/null +++ b/lua/mason-registry/haxe-language-server/init.lua @@ -0,0 +1,25 @@ +local Pkg = require "mason.core.package" +local std = require "mason.core.managers.std" +local git = require "mason.core.managers.git" +local npm = require "mason.core.managers.npm" +local path = require "mason.core.path" + +return Pkg.new { + name = "haxe-language-server", + desc = [[Language Server Protocol implementation for the Haxe language]], + homepage = "https://github.com/vshaxe/haxe-language-server", + languages = { Pkg.Lang.Haxe }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + std.ensure_executable("haxelib", { help_url = "https://haxe.org" }) + git.clone({ "https://github.com/vshaxe/haxe-language-server" }).with_receipt() + ctx.spawn.npm { "install" } + npm.exec { "lix", "run", "vshaxe-build", "-t", "language-server" } + ctx:link_bin( + "haxe-language-server", + ctx:write_node_exec_wrapper("haxe-language-server", path.concat { "bin", "server.js" }) + ) + end, +} diff --git a/lua/mason-registry/hoon-language-server/init.lua b/lua/mason-registry/hoon-language-server/init.lua new file mode 100644 index 00000000..c9fbbcbc --- /dev/null +++ b/lua/mason-registry/hoon-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "hoon-language-server", + desc = [[Language Server for Hoon. Middleware to translate between the Language Server Protocol and your Urbit.]], + homepage = "https://github.com/urbit/hoon-language-server", + languages = { Pkg.Lang.Hoon }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@urbit/hoon-language-server", bin = { "hoon-language-server" } }, +} diff --git a/lua/mason-registry/html-lsp/init.lua b/lua/mason-registry/html-lsp/init.lua new file mode 100644 index 00000000..40e41bdb --- /dev/null +++ b/lua/mason-registry/html-lsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "html-lsp", + desc = [[Language Server Protocol implementation for HTML.]], + homepage = "https://github.com/microsoft/vscode-html-languageservice", + languages = { Pkg.Lang.HTML }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "vscode-langservers-extracted", bin = { "vscode-html-language-server" } }, +} diff --git a/lua/mason-registry/index.lua b/lua/mason-registry/index.lua new file mode 100644 index 00000000..ca029e8a --- /dev/null +++ b/lua/mason-registry/index.lua @@ -0,0 +1,139 @@ +-- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY. +-- stylua: ignore start +return { + ["angular-language-server"] = "mason-registry.angular-language-server", + ["ansible-language-server"] = "mason-registry.ansible-language-server", + ["apex-language-server"] = "mason-registry.apex-language-server", + ["arduino-language-server"] = "mason-registry.arduino-language-server", + ["asm-lsp"] = "mason-registry.asm-lsp", + ["astro-language-server"] = "mason-registry.astro-language-server", + ["awk-language-server"] = "mason-registry.awk-language-server", + ["bash-language-server"] = "mason-registry.bash-language-server", + ["beancount-language-server"] = "mason-registry.beancount-language-server", + ["bicep-lsp"] = "mason-registry.bicep-lsp", + ["bsl-language-server"] = "mason-registry.bsl-language-server", + ccls = "mason-registry.ccls", + ["chrome-debug-adapter"] = "mason-registry.chrome-debug-adapter", + clangd = "mason-registry.clangd", + ["clarity-lsp"] = "mason-registry.clarity-lsp", + ["clojure-lsp"] = "mason-registry.clojure-lsp", + ["cmake-language-server"] = "mason-registry.cmake-language-server", + codelldb = "mason-registry.codelldb", + codeql = "mason-registry.codeql", + cpptools = "mason-registry.cpptools", + crystalline = "mason-registry.crystalline", + ["csharp-language-server"] = "mason-registry.csharp-language-server", + ["css-lsp"] = "mason-registry.css-lsp", + ["cssmodules-language-server"] = "mason-registry.cssmodules-language-server", + ["cucumber-language-server"] = "mason-registry.cucumber-language-server", + debugpy = "mason-registry.debugpy", + delve = "mason-registry.delve", + deno = "mason-registry.deno", + ["dhall-lsp"] = "mason-registry.dhall-lsp", + ["diagnostic-languageserver"] = "mason-registry.diagnostic-languageserver", + ["dockerfile-language-server"] = "mason-registry.dockerfile-language-server", + ["dot-language-server"] = "mason-registry.dot-language-server", + efm = "mason-registry.efm", + ["elixir-ls"] = "mason-registry.elixir-ls", + ["elm-format"] = "mason-registry.elm-format", + ["elm-language-server"] = "mason-registry.elm-language-server", + ["ember-language-server"] = "mason-registry.ember-language-server", + ["emmet-ls"] = "mason-registry.emmet-ls", + ["erlang-ls"] = "mason-registry.erlang-ls", + esbonio = "mason-registry.esbonio", + ["eslint-lsp"] = "mason-registry.eslint-lsp", + ["firefox-debug-adapter"] = "mason-registry.firefox-debug-adapter", + ["flux-lsp"] = "mason-registry.flux-lsp", + ["foam-language-server"] = "mason-registry.foam-language-server", + fortls = "mason-registry.fortls", + fsautocomplete = "mason-registry.fsautocomplete", + ["go-debug-adapter"] = "mason-registry.go-debug-adapter", + ["golangci-lint"] = "mason-registry.golangci-lint", + ["golangci-lint-langserver"] = "mason-registry.golangci-lint-langserver", + gopls = "mason-registry.gopls", + ["grammarly-languageserver"] = "mason-registry.grammarly-languageserver", + ["graphql-language-service-cli"] = "mason-registry.graphql-language-service-cli", + ["groovy-language-server"] = "mason-registry.groovy-language-server", + ["haskell-language-server"] = "mason-registry.haskell-language-server", + ["haxe-language-server"] = "mason-registry.haxe-language-server", + ["hoon-language-server"] = "mason-registry.hoon-language-server", + ["html-lsp"] = "mason-registry.html-lsp", + intelephense = "mason-registry.intelephense", + jdtls = "mason-registry.jdtls", + ["jedi-language-server"] = "mason-registry.jedi-language-server", + ["json-lsp"] = "mason-registry.json-lsp", + ["jsonnet-language-server"] = "mason-registry.jsonnet-language-server", + ["julia-lsp"] = "mason-registry.julia-lsp", + ["kotlin-language-server"] = "mason-registry.kotlin-language-server", + ktlint = "mason-registry.ktlint", + lelwel = "mason-registry.lelwel", + lemminx = "mason-registry.lemminx", + ["lemmy-help"] = "mason-registry.lemmy-help", + ["ltex-ls"] = "mason-registry.ltex-ls", + ["lua-language-server"] = "mason-registry.lua-language-server", + marksman = "mason-registry.marksman", + ["metamath-zero-lsp"] = "mason-registry.metamath-zero-lsp", + mockdebug = "mason-registry.mockdebug", + netcoredbg = "mason-registry.netcoredbg", + ["nickel-lang-lsp"] = "mason-registry.nickel-lang-lsp", + nimlsp = "mason-registry.nimlsp", + ["node-debug2-adapter"] = "mason-registry.node-debug2-adapter", + ["ocaml-lsp"] = "mason-registry.ocaml-lsp", + ["omnisharp-roslyn"] = "mason-registry.omnisharp-roslyn", + ["opencl-language-server"] = "mason-registry.opencl-language-server", + perlnavigator = "mason-registry.perlnavigator", + ["php-debug-adapter"] = "mason-registry.php-debug-adapter", + phpactor = "mason-registry.phpactor", + ["powershell-editor-services"] = "mason-registry.powershell-editor-services", + ["prisma-language-server"] = "mason-registry.prisma-language-server", + ["prosemd-lsp"] = "mason-registry.prosemd-lsp", + psalm = "mason-registry.psalm", + ["puppet-editor-services"] = "mason-registry.puppet-editor-services", + ["purescript-language-server"] = "mason-registry.purescript-language-server", + pyright = "mason-registry.pyright", + ["python-lsp-server"] = "mason-registry.python-lsp-server", + ["quick-lint-js"] = "mason-registry.quick-lint-js", + ["r-languageserver"] = "mason-registry.r-languageserver", + ["reason-language-server"] = "mason-registry.reason-language-server", + ["remark-language-server"] = "mason-registry.remark-language-server", + ["rescript-lsp"] = "mason-registry.rescript-lsp", + ["rnix-lsp"] = "mason-registry.rnix-lsp", + ["robotframework-lsp"] = "mason-registry.robotframework-lsp", + rome = "mason-registry.rome", + ["rust-analyzer"] = "mason-registry.rust-analyzer", + ["salt-lsp"] = "mason-registry.salt-lsp", + ["serve-d"] = "mason-registry.serve-d", + shellcheck = "mason-registry.shellcheck", + ["shopify-theme-check"] = "mason-registry.shopify-theme-check", + ["slint-lsp"] = "mason-registry.slint-lsp", + solang = "mason-registry.solang", + solargraph = "mason-registry.solargraph", + solidity = "mason-registry.solidity", + sorbet = "mason-registry.sorbet", + sourcery = "mason-registry.sourcery", + sqlls = "mason-registry.sqlls", + sqls = "mason-registry.sqls", + ["stylelint-lsp"] = "mason-registry.stylelint-lsp", + stylua = "mason-registry.stylua", + ["svelte-language-server"] = "mason-registry.svelte-language-server", + svlangserver = "mason-registry.svlangserver", + svls = "mason-registry.svls", + ["tailwindcss-language-server"] = "mason-registry.tailwindcss-language-server", + taplo = "mason-registry.taplo", + ["teal-language-server"] = "mason-registry.teal-language-server", + ["terraform-ls"] = "mason-registry.terraform-ls", + texlab = "mason-registry.texlab", + tflint = "mason-registry.tflint", + ["typescript-language-server"] = "mason-registry.typescript-language-server", + ["vala-language-server"] = "mason-registry.vala-language-server", + verible = "mason-registry.verible", + ["vetur-vls"] = "mason-registry.vetur-vls", + ["vim-language-server"] = "mason-registry.vim-language-server", + ["visualforce-language-server"] = "mason-registry.visualforce-language-server", + vls = "mason-registry.vls", + ["vue-language-server"] = "mason-registry.vue-language-server", + ["wgsl-analyzer"] = "mason-registry.wgsl-analyzer", + ["yaml-language-server"] = "mason-registry.yaml-language-server", + zk = "mason-registry.zk", + zls = "mason-registry.zls" +} \ No newline at end of file diff --git a/lua/mason-registry/init.lua b/lua/mason-registry/init.lua new file mode 100644 index 00000000..1c87735e --- /dev/null +++ b/lua/mason-registry/init.lua @@ -0,0 +1,90 @@ +local log = require "mason.log" +local fs = require "mason.core.fs" +local _ = require "mason.core.functional" +local Optional = require "mason.core.optional" +local path = require "mason.core.path" +local EventEmitter = require "mason.core.EventEmitter" + +local index = require "mason-registry.index" + +local M = setmetatable({}, { __index = EventEmitter }) +EventEmitter.init(M) + +local scan_install_root + +do + ---@type table + local cached_dirs + + local get_directories = _.compose( + _.set_of, + _.filter_map(function(entry) + if entry.type == "directory" and index[entry.name] then + return Optional.of(entry.name) + else + return Optional.empty() + end + end) + ) + + ---@return table + scan_install_root = function() + if cached_dirs then + return cached_dirs + end + log.trace "Scanning installation root dir" + ---@type string[] + local ok, entries = pcall(fs.sync.readdir, path.package_prefix()) + if not ok then + log.debug("Failed to scan installation root dir", entries) + -- presume installation root dir has not been created yet (i.e., no packages installed) + return {} + end + cached_dirs = get_directories(entries) + vim.schedule(function() + cached_dirs = nil + end) + log.trace("Resolved installation root dirs", cached_dirs) + return cached_dirs + end +end + +---@param package_name string +function M.is_installed(package_name) + return scan_install_root()[package_name] == true +end + +---@param package_name string +---@return Package +function M.get_package(package_name) + local ok, pkg = pcall(require, index[package_name]) + if not ok then + log.error(pkg) + error(("Cannot find package %q."):format(package_name)) + end + return pkg +end + +local get_packages = _.map(M.get_package) + +---@return string[] +function M.get_installed_package_names() + return _.keys(scan_install_root()) +end + +---@return Package[] +function M.get_installed_packages() + return get_packages(M.get_installed_package_names()) +end + +---@return string[] +function M.get_all_package_names() + return _.keys(index) +end + +---@return Package[] +function M.get_all_packages() + return get_packages(M.get_all_package_names()) +end + +return M diff --git a/lua/mason-registry/intelephense/init.lua b/lua/mason-registry/intelephense/init.lua new file mode 100644 index 00000000..4f0fc2fc --- /dev/null +++ b/lua/mason-registry/intelephense/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "intelephense", + desc = [[Professional PHP tooling for any Language Server Protocol capable editor.]], + homepage = "https://intelephense.com", + languages = { Pkg.Lang.PHP }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "intelephense", bin = { "intelephense" } }, +} diff --git a/lua/mason-registry/jdtls/init.lua b/lua/mason-registry/jdtls/init.lua new file mode 100644 index 00000000..e3bf7e65 --- /dev/null +++ b/lua/mason-registry/jdtls/init.lua @@ -0,0 +1,44 @@ +local Pkg = require "mason.core.package" +local path = require "mason.core.path" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local installer = require "mason.core.installer" +local eclipse = require "mason.core.clients.eclipse" +local std = require "mason.core.managers.std" + +---@async +local function download_jdtls() + local ctx = installer.context() + local version = ctx.requested_version:or_else_get(function() + return eclipse.fetch_latest_jdtls_version():get_or_throw() + end) + + std.download_file( + ("https://download.eclipse.org/jdtls/snapshots/jdt-language-server-%s.tar.gz"):format(version), + "archive.tar.gz" + ) + std.untar "archive.tar.gz" + + ctx.receipt:with_primary_source { + type = "jdtls", + version = version, + } +end + +---@async +local function download_lombok() + std.download_file("https://projectlombok.org/downloads/lombok.jar", "lombok.jar") +end + +return Pkg.new { + name = "jdtls", + desc = [[Java language server]], + homepage = "https://github.com/eclipse/eclipse.jdt.ls", + languages = { Pkg.Lang.Java }, + categories = { Pkg.Cat.LSP }, + ---@async + install = function() + std.ensure_executable "java" + installer.run_concurrently { download_jdtls, download_lombok } + end, +} diff --git a/lua/mason-registry/jedi-language-server/init.lua b/lua/mason-registry/jedi-language-server/init.lua new file mode 100644 index 00000000..7c7d2e25 --- /dev/null +++ b/lua/mason-registry/jedi-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local pip3 = require "mason.core.managers.pip3" + +return Pkg.new { + name = "jedi-language-server", + desc = [[A Python language server exclusively for Jedi. If Jedi supports it well, this language server should too.]], + homepage = "https://github.com/pappasam/jedi-language-server", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.LSP }, + install = pip3.packages { "jedi-language-server", bin = { "jedi-language-server" } }, +} diff --git a/lua/mason-registry/json-lsp/init.lua b/lua/mason-registry/json-lsp/init.lua new file mode 100644 index 00000000..c6be908b --- /dev/null +++ b/lua/mason-registry/json-lsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "json-lsp", + desc = [[Language Server Protocol implementation for JSON.]], + homepage = "https://github.com/microsoft/vscode-json-languageservice", + languages = { Pkg.Lang.JSON }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "vscode-langservers-extracted", bin = { "vscode-json-language-server" } }, +} diff --git a/lua/mason-registry/jsonnet-language-server/init.lua b/lua/mason-registry/jsonnet-language-server/init.lua new file mode 100644 index 00000000..04c2516a --- /dev/null +++ b/lua/mason-registry/jsonnet-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local go = require "mason.core.managers.go" + +return Pkg.new { + name = "jsonnet-language-server", + desc = [[A Language Server Protocol (LSP) server for Jsonnet (https://jsonnet.org)]], + homepage = "https://github.com/grafana/jsonnet-language-server", + languages = { Pkg.Lang.Jsonnet }, + categories = { Pkg.Cat.LSP }, + install = go.packages { "github.com/grafana/jsonnet-language-server", bin = { "jsonnet-language-server" } }, +} diff --git a/lua/mason-registry/julia-lsp/init.lua b/lua/mason-registry/julia-lsp/init.lua new file mode 100644 index 00000000..e8aaee6a --- /dev/null +++ b/lua/mason-registry/julia-lsp/init.lua @@ -0,0 +1,59 @@ +local Pkg = require "mason.core.package" +local path = require "mason.core.path" +local std = require "mason.core.managers.std" +local github = require "mason.core.managers.github" + +local server_script = [[ +using LanguageServer, SymbolServer, Pkg + +OLD_DEPOT_PATH = ARGS[1] +SYMBOLSTORE_PATH = ARGS[2] +ENV_PATH = ARGS[3] + +runserver( + stdin, + stdout, + ENV_PATH, + OLD_DEPOT_PATH, + nothing, + SYMBOLSTORE_PATH +) +]] + +return Pkg.new { + name = "julia-lsp", + desc = [[An implementation of the Microsoft Language Server Protocol for the Julia language.]], + homepage = "https://github.com/julia-vscode/LanguageServer.jl", + languages = { Pkg.Lang.Julia }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + std.ensure_executable("julia", { help_url = "https://julialang.org/downloads/" }) + + ctx.fs:mkdir "vscode-package" + ctx:chdir("vscode-package", function() + github + .unzip_release_file({ + repo = "julia-vscode/julia-vscode", + asset_file = function(version) + local version_number = version:gsub("^v", "") + return ("language-julia-%s.vsix"):format(version_number) + end, + }) + .with_receipt() + end) + + ctx.fs:rename( + path.concat { + "vscode-package", + "extension", + "scripts", + }, + "scripts" + ) + ctx.fs:rmrf "vscode-package" + + ctx.fs:write_file("nvim-lsp.jl", server_script) + end, +} diff --git a/lua/mason-registry/kotlin-language-server/init.lua b/lua/mason-registry/kotlin-language-server/init.lua new file mode 100644 index 00000000..eb04b990 --- /dev/null +++ b/lua/mason-registry/kotlin-language-server/init.lua @@ -0,0 +1,30 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local platform = require "mason.core.platform" +local path = require "mason.core.path" + +return Pkg.new { + name = "kotlin-language-server", + desc = [[Kotlin code completion, linting and more for any editor/IDE using the Language Server Protocol]], + homepage = "https://github.com/fwcd/kotlin-language-server", + languages = { Pkg.Lang.Kotlin }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "fwcd/kotlin-language-server", + asset_file = "server.zip", + }) + .with_receipt() + ctx:link_bin( + "kotlin-language-server", + path.concat { + "server", + "bin", + platform.is.win and "kotlin-language-server.bat" or "kotlin-language-server", + } + ) + end, +} diff --git a/lua/mason-registry/ktlint/init.lua b/lua/mason-registry/ktlint/init.lua new file mode 100644 index 00000000..0bcdf236 --- /dev/null +++ b/lua/mason-registry/ktlint/init.lua @@ -0,0 +1,40 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" +local path = require "mason.core.path" +local platform = require "mason.core.platform" + +return Pkg.new { + name = "ktlint", + desc = [[An anti-bikeshedding Kotlin linter with built-in formatter]], + homepage = "https://github.com/pinterest/ktlint", + languages = { Pkg.Lang.Kotlin }, + categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "pinterest/ktlint", + asset_file = "ktlint", + out_file = "ktlint", + }) + .with_receipt() + + platform.when { + unix = function() + std.chmod("+x", { "ktlint" }) + ctx:link_bin("ktlint", "ktlint") + end, + win = function() + ctx:link_bin( + "ktlint", + ctx:write_shell_exec_wrapper( + "ktlint", + ("java -jar %q"):format(path.concat { ctx.package:get_install_path(), "ktlint" }) + ) + ) + end, + } + end, +} diff --git a/lua/mason-registry/lelwel/init.lua b/lua/mason-registry/lelwel/init.lua new file mode 100644 index 00000000..6bb326e1 --- /dev/null +++ b/lua/mason-registry/lelwel/init.lua @@ -0,0 +1,14 @@ +local Pkg = require "mason.core.package" +local cargo = require "mason.core.managers.cargo" + +return Pkg.new { + name = "lelwel", + desc = [[LL(1) parser generator for Rust]], + homepage = "https://github.com/0x2a-42/lelwel", + languages = { Pkg.Lang.Lelwel }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("lelwel", { + features = "lsp,cli", + bin = { "lelwel-ls", "llw" }, + }), +} diff --git a/lua/mason-registry/lemminx/init.lua b/lua/mason-registry/lemminx/init.lua new file mode 100644 index 00000000..be094e14 --- /dev/null +++ b/lua/mason-registry/lemminx/init.lua @@ -0,0 +1,41 @@ +local Pkg = require "mason.core.package" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local std = require "mason.core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "lemminx", + desc = [[XML Language Server]], + homepage = "https://github.com/eclipse/lemminx", + languages = { Pkg.Lang.XML }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local unzipped_file = assert( + coalesce( + when(platform.is.mac, "lemminx-osx-x86_64"), + when(platform.is.linux_x64, "lemminx-linux"), + when(platform.is.win, "lemminx-win32") + ), + ("Your operating system or architecture (%q) is not yet supported."):format(platform.arch) + ) + + std.download_file( + ("https://download.jboss.org/jbosstools/vscode/snapshots/lemminx-binary/%s/%s.zip"):format( + ctx.requested_version:or_else "0.19.2-655", -- TODO: resolve latest version dynamically + unzipped_file + ), + "lemminx.zip" + ) + std.unzip("lemminx.zip", ".") + ctx.fs:rename( + platform.is.win and ("%s.exe"):format(unzipped_file) or unzipped_file, + platform.is.win and "lemminx.exe" or "lemminx" + ) + ctx.receipt:with_primary_source(ctx.receipt.unmanaged) + ctx:link_bin("lemminx", platform.is.win and "lemminx.exe" or "lemminx") + end, +} diff --git a/lua/mason-registry/lemmy-help/init.lua b/lua/mason-registry/lemmy-help/init.lua new file mode 100644 index 00000000..1cd04e61 --- /dev/null +++ b/lua/mason-registry/lemmy-help/init.lua @@ -0,0 +1,14 @@ +local Pkg = require "mason.core.package" +local cargo = require "mason.core.managers.cargo" + +return Pkg.new { + name = "lemmy-help", + desc = [[Every one needs help, so lemmy-help you! A CLI to generate vim/nvim help doc from emmylua]], + homepage = "https://github.com/numToStr/lemmy-help", + categories = {}, + languages = { Pkg.Lang.Lua }, + install = cargo.crate("lemmy-help", { + features = "cli", + bin = { "lemmy-help" }, + }), +} diff --git a/lua/mason-registry/ltex-ls/init.lua b/lua/mason-registry/ltex-ls/init.lua new file mode 100644 index 00000000..ba5e2bbc --- /dev/null +++ b/lua/mason-registry/ltex-ls/init.lua @@ -0,0 +1,72 @@ +local Pkg = require "mason.core.package" +local a = require "mason.core.async" +local installer = require "mason.core.installer" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local github = require "mason.core.managers.github" +local path = require "mason.core.path" + +local coalesce, when = _.coalesce, _.when + +local repo = "valentjn/ltex-ls" +---@async +local function download_platform_dependent() + local ctx = installer.context() + local source = platform.when { + unix = function() + return github.untargz_release_file { + repo = repo, + asset_file = function(version) + local target = coalesce( + when(platform.is_mac, "ltex-ls-%s-mac-x64.tar.gz"), + when(platform.is_linux, "ltex-ls-%s-linux-x64.tar.gz"), + when(platform.is_win, "ltex-ls-%s-windows-x64.zip") + ) + return target:format(version) + end, + } + end, + win = function() + return github.unzip_release_file { + repo = repo, + asset_file = function(version) + return ("ltex-ls-%s-windows-x64.zip"):format(version) + end, + } + end, + } + source.with_receipt() + ctx.fs:rename(("ltex-ls-%s"):format(source.release), "ltex-ls") +end + +local function download_platform_independent() + local ctx = installer.context() + local source = github.untargz_release_file { + repo = repo, + asset_file = _.format "ltex-ls-%s.tar.gz", + } + source.with_receipt() + ctx.fs:rename(("ltex-ls-%s"):format(source.release), "ltex-ls") +end + +return Pkg.new { + name = "ltex-ls", + desc = [[LTeX Language Server: LSP language server for LanguageTool 🔍✔️ with support for LaTeX 🎓, Markdown 📝, and others]], + homepage = "https://valentjn.github.io/ltex/", + languages = { Pkg.Lang.Text, Pkg.Lang.Markdown, Pkg.Lang.LaTeX }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + if vim.in_fast_event() then + a.scheduler() + end + if vim.fn.executable "java" == 1 then + download_platform_independent() + else + download_platform_dependent() + end + ctx:link_bin("ltex-ls", path.concat { "ltex-ls", "bin", platform.is.win and "ltex-ls.bat" or "ltex-ls" }) + ctx:link_bin("ltex-cli", path.concat { "ltex-ls", "bin", platform.is.win and "ltex-cli.bat" or "ltex-cli" }) + end, +} diff --git a/lua/mason-registry/lua-language-server/init.lua b/lua/mason-registry/lua-language-server/init.lua new file mode 100644 index 00000000..cb23e344 --- /dev/null +++ b/lua/mason-registry/lua-language-server/init.lua @@ -0,0 +1,64 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" +local path = require "mason.core.path" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "lua-language-server", + desc = [[Lua Language Server]], + languages = { Pkg.Lang.Lua }, + categories = { Pkg.Cat.LSP }, + homepage = "https://github.com/sumneko/lua-language-server", + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "sumneko/vscode-lua", + asset_file = function(version) + local target = coalesce( + when(platform.is.mac_x64, "vscode-lua-%s-darwin-x64.vsix"), + when(platform.is.mac_arm64, "vscode-lua-%s-darwin-arm64.vsix"), + when(platform.is.linux_x64, "vscode-lua-%s-linux-x64.vsix"), + when(platform.is.linux_arm64, "vscode-lua-%s-linux-arm64.vsix"), + when(platform.is.win_x64, "vscode-lua-%s-win32-x64.vsix"), + when(platform.is.win_x86, "vscode-lua-%s-win32-ia32.vsix") + ) + + return target and target:format(version) + end, + }) + .with_receipt() + + platform.when { + unix = function() + ctx:link_bin( + "lua-language-server", + ctx:write_exec_wrapper( + "lua-language-server", + path.concat { + "extension", + "server", + "bin", + "lua-language-server", + } + ) + ) + end, + win = function() + ctx:link_bin( + "lua-language-server", + path.concat { + "extension", + "server", + "bin", + "lua-language-server.exe", + } + ) + end, + } + end, +} diff --git a/lua/mason-registry/marksman/init.lua b/lua/mason-registry/marksman/init.lua new file mode 100644 index 00000000..f4efbe71 --- /dev/null +++ b/lua/mason-registry/marksman/init.lua @@ -0,0 +1,32 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "marksman", + desc = [[Markdown LSP server providing completion, cross-references, diagnostics, and more.]], + homepage = "https://github.com/artempyanykh/marksman", + languages = { Pkg.Lang.Markdown }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "artempyanykh/marksman", + out_file = platform.is.win and "marksman.exe" or "marksman", + asset_file = coalesce( + when(platform.is.mac, "marksman-macos"), + when(platform.is.linux_x64, "marksman-linux"), + when(platform.is.win_x64, "marksman.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "marksman" }) + ctx:link_bin("marksman", platform.is.win and "marksman.exe" or "marksman") + end, +} diff --git a/lua/mason-registry/metamath-zero-lsp/init.lua b/lua/mason-registry/metamath-zero-lsp/init.lua new file mode 100644 index 00000000..97272fbb --- /dev/null +++ b/lua/mason-registry/metamath-zero-lsp/init.lua @@ -0,0 +1,24 @@ +local Pkg = require "mason.core.package" +local git = require "mason.core.managers.git" +local platform = require "mason.core.platform" +local path = require "mason.core.path" + +return Pkg.new { + name = "metamath-zero-lsp", + desc = [[An MM0/MM1 server written in Rust.]], + homepage = "https://github.com/digama0/mm0", + languages = { Pkg.Lang["Metamath Zero"] }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + git.clone({ "https://github.com/digama0/mm0" }).with_receipt() + ctx:chdir("mm0-rs", function() + ctx.spawn.cargo { "build", "--release" } + end) + ctx:link_bin( + "mm0-rs", + path.concat { "mm0-rs", "target", "release", platform.is.win and "mm0-rs.exe" or "mm0-rs" } + ) + end, +} diff --git a/lua/mason-registry/mockdebug/init.lua b/lua/mason-registry/mockdebug/init.lua new file mode 100644 index 00000000..9898b2df --- /dev/null +++ b/lua/mason-registry/mockdebug/init.lua @@ -0,0 +1,23 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local git = require "mason.core.managers.git" +local _ = require "mason.core.functional" +local Optional = require "mason.core.optional" + +return Pkg.new { + name = "mockdebug", + desc = [[Mock Debug simulates a debug adapter. It supports step, continue, breakpoints, exceptions, and variable access but it is not connected to any real debugger.]], + homepage = "https://github.com/microsoft/vscode-mock-debug", + languages = {}, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local source = github.tag { repo = "microsoft/vscode-mock-debug" } + source.with_receipt() + git.clone { "https://github.com/microsoft/vscode-mock-debug", version = Optional.of(source.tag) } + ctx.spawn.npm { "install" } + ctx.spawn.npm { "run", "compile" } + ctx.spawn.npm { "install", "--production" } + end, +} diff --git a/lua/mason-registry/netcoredbg/init.lua b/lua/mason-registry/netcoredbg/init.lua new file mode 100644 index 00000000..81255ec2 --- /dev/null +++ b/lua/mason-registry/netcoredbg/init.lua @@ -0,0 +1,42 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local _ = require "mason.core.functional" +local path = require "mason.core.path" +local platform = require "mason.core.platform" + +return Pkg.new { + name = "netcoredbg", + desc = [[NetCoreDbg is a managed code debugger with MI interface for CoreCLR.]], + homepage = "https://github.com/Samsung/netcoredbg", + languages = { Pkg.Lang[".NET"], Pkg.Lang["C#"] }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + platform.when { + unix = function() + github + .untargz_release_file({ + repo = "Samsung/netcoredbg", + asset_file = _.coalesce( + _.when(platform.is.mac, "netcoredbg-osx-amd64.tar.gz"), + _.when(platform.is.linux_x64, "netcoredbg-linux-amd64.tar.gz"), + _.when(platform.is.linux_arm64, "netcoredbg-linux-arm64.tar.gz") + ), + }) + .with_receipt() + ctx.fs:rename("netcoredbg", "build") + ctx:link_bin("netcoredbg", ctx:write_exec_wrapper("netcoredbg", path.concat { "build", "netcoredbg" })) + end, + win = function() + github + .unzip_release_file({ + repo = "Samsung/netcoredbg", + asset_file = _.when(platform.is.win_x64, "netcoredbg-win64.zip"), + }) + .with_receipt() + ctx:link_bin("netcoredbg", path.concat { "netcoredbg", "netcoredbg.exe" }) + end, + } + end, +} diff --git a/lua/mason-registry/nickel-lang-lsp/init.lua b/lua/mason-registry/nickel-lang-lsp/init.lua new file mode 100644 index 00000000..104162ba --- /dev/null +++ b/lua/mason-registry/nickel-lang-lsp/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason.core.package" +local path = require "mason.core.path" +local cargo = require "mason.core.managers.cargo" +local git = require "mason.core.managers.git" + +return Pkg.new { + name = "nickel-lang-lsp", + desc = [[The Nickel Language Server (NLS) is a language server for the Nickel programming language. NLS offers error messages, type hints, and auto-completion right in your favorite LSP-enabled editor.]], + homepage = "https://nickel-lang.org/", + languages = { Pkg.Lang.Nickel }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("nickel-lang-lsp", { + bin = { "nls" }, + }), +} diff --git a/lua/mason-registry/nimlsp/init.lua b/lua/mason-registry/nimlsp/init.lua new file mode 100644 index 00000000..75dd0752 --- /dev/null +++ b/lua/mason-registry/nimlsp/init.lua @@ -0,0 +1,22 @@ +local Pkg = require "mason.core.package" +local git = require "mason.core.managers.git" +local github = require "mason.core.managers.github" +local platform = require "mason.core.platform" +local Optional = require "mason.core.optional" + +return Pkg.new { + name = "nimlsp", + desc = [[Language Server Protocol implementation for Nim]], + homepage = "https://github.com/PMunch/nimlsp", + languages = { Pkg.Lang.Nim }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local source = github.tag { repo = "PMunch/nimlsp" } + source.with_receipt() + git.clone { "https://github.com/PMunch/nimlsp", version = Optional.of(source.tag) } + ctx.spawn.nimble { "build", "-y", "--localdeps" } + ctx:link_bin("nimlsp", platform.is.win and "nimlsp.exe" or "nimlsp") + end, +} diff --git a/lua/mason-registry/node-debug2-adapter/init.lua b/lua/mason-registry/node-debug2-adapter/init.lua new file mode 100644 index 00000000..44b96c2d --- /dev/null +++ b/lua/mason-registry/node-debug2-adapter/init.lua @@ -0,0 +1,28 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local git = require "mason.core.managers.git" +local _ = require "mason.core.functional" +local path = require "mason.core.path" +local Optional = require "mason.core.optional" + +return Pkg.new { + name = "node-debug2-adapter", + desc = [[A debug adapter that supports debugging Node via the Chrome Debugging Protocol. No longer maintained.]], + homepage = "https://github.com/microsoft/vscode-node-debug2", + languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local source = github.tag { repo = "microsoft/vscode-node-debug2" } + source.with_receipt() + git.clone { "https://github.com/microsoft/vscode-node-debug2", version = Optional.of(source.tag) } + ctx.spawn.npm { "install" } + ctx.spawn.npm { "run", "build" } + ctx.spawn.npm { "install", "--production" } + ctx:link_bin( + "node-debug2-adapter", + ctx:write_node_exec_wrapper("node-debug2-adapter", path.concat { "out", "src", "nodeDebug.js" }) + ) + end, +} diff --git a/lua/mason-registry/ocaml-lsp/init.lua b/lua/mason-registry/ocaml-lsp/init.lua new file mode 100644 index 00000000..b13f0f38 --- /dev/null +++ b/lua/mason-registry/ocaml-lsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local opam = require "mason.core.managers.opam" + +return Pkg.new { + name = "ocaml-lsp", + desc = [[OCaml Language Server Protocol implementation]], + homepage = "https://github.com/ocaml/ocaml-lsp", + languages = { Pkg.Lang.OCaml }, + categories = { Pkg.Cat.LSP }, + install = opam.packages { "ocaml-lsp-server", bin = { "ocamllsp" } }, +} diff --git a/lua/mason-registry/omnisharp-roslyn/init.lua b/lua/mason-registry/omnisharp-roslyn/init.lua new file mode 100644 index 00000000..95a91fe5 --- /dev/null +++ b/lua/mason-registry/omnisharp-roslyn/init.lua @@ -0,0 +1,43 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "omnisharp-roslyn", + desc = [[OmniSharp server (HTTP, STDIO) based on Roslyn workspaces]], + homepage = "https://github.com/OmniSharp/omnisharp-roslyn", + languages = { Pkg.Lang["C#"] }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + ctx.fs:mkdir "omnisharp" + ctx:chdir("omnisharp", function() + github.unzip_release_file { + repo = "OmniSharp/omnisharp-roslyn", + asset_file = coalesce( + when(platform.is.mac_x64, "omnisharp-osx-x64-net6.0.zip"), + when(platform.is.mac_arm64, "omnisharp-osx-arm64-net6.0.zip"), + when(platform.is.linux_x64, "omnisharp-linux-x64-net6.0.zip"), + when(platform.is.linux_arm64, "omnisharp-linux-arm64-net6.0.zip"), + when(platform.is.win_x64, "omnisharp-win-x64-net6.0.zip"), + when(platform.is.win_arm64, "omnisharp-win-arm64-net6.0.zip") + ), + } + end) + + ctx.fs:mkdir "omnisharp-mono" + ctx:chdir("omnisharp-mono", function() + github + .unzip_release_file({ + repo = "OmniSharp/omnisharp-roslyn", + asset_file = "omnisharp-mono.zip", + }) + .with_receipt() + end) + end, +} diff --git a/lua/mason-registry/opencl-language-server/init.lua b/lua/mason-registry/opencl-language-server/init.lua new file mode 100644 index 00000000..7bb41a91 --- /dev/null +++ b/lua/mason-registry/opencl-language-server/init.lua @@ -0,0 +1,44 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "opencl-language-server", + desc = [[Provides an OpenCL kernel diagnostics]], + homepage = "https://github.com/Galarius/opencl-language-server", + languages = { Pkg.Lang.OpenCL }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + platform.when { + unix = function() + local asset_file = coalesce( + when(platform.is.mac, "opencl-language-server-darwin-x86_64.tar.gz"), + when(platform.is.linux_x64, "opencl-language-server-linux-x86_64.tar.gz") + ) + github + .untargz_release_file({ + repo = "Galarius/opencl-language-server", + asset_file = asset_file, + }) + .with_receipt() + end, + win = function() + github + .unzip_release_file({ + repo = "Galarius/opencl-language-server", + asset_file = "opencl-language-server-win32-x86_64.zip", + }) + .with_receipt() + end, + } + ctx:link_bin( + "opencl-language-server", + platform.is.win and "opencl-language-server.exe" or "opencl-language-server" + ) + end, +} diff --git a/lua/mason-registry/perlnavigator/init.lua b/lua/mason-registry/perlnavigator/init.lua new file mode 100644 index 00000000..5825406f --- /dev/null +++ b/lua/mason-registry/perlnavigator/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "perlnavigator", + desc = [[Perl Language Server that includes perl critic and code navigation]], + homepage = "https://github.com/bscan/PerlNavigator", + languages = { Pkg.Lang.Perl }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "perlnavigator-server" }, +} diff --git a/lua/mason-registry/php-debug-adapter/init.lua b/lua/mason-registry/php-debug-adapter/init.lua new file mode 100644 index 00000000..cdd11074 --- /dev/null +++ b/lua/mason-registry/php-debug-adapter/init.lua @@ -0,0 +1,27 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local _ = require "mason.core.functional" +local path = require "mason.core.path" + +return Pkg.new { + name = "php-debug-adapter", + desc = [[PHP Debug Adapter 🐞⛔]], + homepage = "https://github.com/xdebug/vscode-php-debug", + languages = { Pkg.Lang.PHP }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "xdebug/vscode-php-debug", + asset_file = _.compose(_.format "php-debug-%s.vsix", _.gsub("^v", "")), + }) + .with_receipt() + ctx.fs:rmrf(path.concat { "extension", "images" }) + ctx:link_bin( + "php-debug-adapter", + ctx:write_node_exec_wrapper("php-debug-adapter", path.concat { "extension", "out", "phpDebug.js" }) + ) + end, +} diff --git a/lua/mason-registry/phpactor/init.lua b/lua/mason-registry/phpactor/init.lua new file mode 100644 index 00000000..b01eed50 --- /dev/null +++ b/lua/mason-registry/phpactor/init.lua @@ -0,0 +1,25 @@ +local Pkg = require "mason.core.package" +local composer = require "mason.core.managers.composer" +local git = require "mason.core.managers.git" +local github = require "mason.core.managers.github" +local platform = require "mason.core.platform" +local Optional = require "mason.core.optional" +local path = require "mason.core.path" + +return Pkg.new { + name = "phpactor", + desc = [[Phpactor is an intelligent Completion and Refactoring tool for PHP which is available over it’s own RPC protocol and as a Language Server.]], + homepage = "https://phpactor.readthedocs.io/en/master/", + languages = { Pkg.Lang.PHP }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + assert(platform.is.unix, "phpactor only supports UNIX environments.") + local source = github.tag { repo = "phpactor/phpactor" } + source.with_receipt() + git.clone { "https://github.com/phpactor/phpactor", version = Optional.of(source.tag) } + composer.install() + ctx:link_bin("phpactor", path.concat { "bin", "phpactor" }) + end, +} diff --git a/lua/mason-registry/powershell-editor-services/init.lua b/lua/mason-registry/powershell-editor-services/init.lua new file mode 100644 index 00000000..706077dc --- /dev/null +++ b/lua/mason-registry/powershell-editor-services/init.lua @@ -0,0 +1,21 @@ +local Pkg = require "mason.core.package" +local std = require "mason.core.managers.std" +local github = require "mason.core.managers.github" + +return Pkg.new { + name = "powershell-editor-services", + desc = [[A common platform for PowerShell development support in any editor or application!]], + homepage = "https://github.com/PowerShell/PowerShellEditorServices", + languages = { Pkg.Lang.PowerShell }, + categories = { Pkg.Cat.LSP }, + ---@async + install = function() + std.ensure_executable("pwsh", { help_url = "https://github.com/PowerShell/PowerShell#get-powershell" }) + github + .unzip_release_file({ + repo = "PowerShell/PowerShellEditorServices", + asset_file = "PowerShellEditorServices.zip", + }) + .with_receipt() + end, +} diff --git a/lua/mason-registry/prisma-language-server/init.lua b/lua/mason-registry/prisma-language-server/init.lua new file mode 100644 index 00000000..0ca4ac61 --- /dev/null +++ b/lua/mason-registry/prisma-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "prisma-language-server", + desc = [[Any editor that is compatible with the Language Server Protocol can create clients that can use the features provided by this language server.]], + homepage = "https://github.com/prisma/language-tools", + languages = { Pkg.Lang.Prisma }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@prisma/language-server", bin = { "prisma-language-server" } }, +} diff --git a/lua/mason-registry/prosemd-lsp/init.lua b/lua/mason-registry/prosemd-lsp/init.lua new file mode 100644 index 00000000..4ffd9e06 --- /dev/null +++ b/lua/mason-registry/prosemd-lsp/init.lua @@ -0,0 +1,32 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "prosemd-lsp", + desc = [[An experimental proofreading and linting language server for markdown files ✍️]], + homepage = "https://github.com/kitten/prosemd-lsp", + languages = { Pkg.Lang.Markdown }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "kitten/prosemd-lsp", + out_file = platform.is_win and "prosemd-lsp.exe" or "prosemd-lsp", + asset_file = coalesce( + when(platform.is_mac, "prosemd-lsp-macos"), + when(platform.is_linux and platform.arch == "x64", "prosemd-lsp-linux"), + when(platform.is_win and platform.arch == "x64", "prosemd-lsp-windows.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "prosemd-lsp" }) + ctx:link_bin("prosemd-lsp", platform.is.win and "prosemd-lsp.exe" or "prosemd-lsp") + end, +} diff --git a/lua/mason-registry/psalm/init.lua b/lua/mason-registry/psalm/init.lua new file mode 100644 index 00000000..fd9a9c6d --- /dev/null +++ b/lua/mason-registry/psalm/init.lua @@ -0,0 +1,20 @@ +local Pkg = require "mason.core.package" +local composer = require "mason.core.managers.composer" + +return Pkg.new { + name = "psalm", + desc = [[A static analysis tool for finding errors in PHP applications]], + homepage = "https://psalm.dev/", + languages = { Pkg.Lang.PHP }, + categories = { Pkg.Cat.LSP }, + install = composer.packages { + "vimeo/psalm", + bin = { + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter", + }, + }, +} diff --git a/lua/mason-registry/puppet-editor-services/init.lua b/lua/mason-registry/puppet-editor-services/init.lua new file mode 100644 index 00000000..c9d8db55 --- /dev/null +++ b/lua/mason-registry/puppet-editor-services/init.lua @@ -0,0 +1,26 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local platform = require "mason.core.platform" + +return Pkg.new { + name = "puppet-editor-services", + desc = [[Puppet Language Server for editors]], + homepage = "https://github.com/puppetlabs/puppet-editor-services", + languages = { Pkg.Lang.Puppet }, + categories = { Pkg.Cat.LSP, Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + assert(platform.is.unix, "puppet-editor-services only supports UNIX environments.") + github + .unzip_release_file({ + repo = "puppetlabs/puppet-editor-services", + asset_file = function(version) + return ("puppet_editor_services_%s.zip"):format(version) + end, + }) + .with_receipt() + ctx:link_bin("puppet-languageserver", "puppet-languageserver") + ctx:link_bin("puppet-debugserver", "puppet-debugserver") + end, +} diff --git a/lua/mason-registry/purescript-language-server/init.lua b/lua/mason-registry/purescript-language-server/init.lua new file mode 100644 index 00000000..86a4de25 --- /dev/null +++ b/lua/mason-registry/purescript-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "purescript-language-server", + desc = [[Node-based Language Server Protocol server for PureScript based on the PureScript IDE server (aka psc-ide / purs ide server). Used as the vscode plugin backend but should be compatible with other Language Server Client implementations.]], + languages = { Pkg.Lang.PureScript }, + categories = { Pkg.Cat.LSP }, + homepage = "https://github.com/nwolverson/purescript-language-server", + install = npm.packages { "purescript-language-server", bin = { "purescript-language-server" } }, +} diff --git a/lua/mason-registry/pyright/init.lua b/lua/mason-registry/pyright/init.lua new file mode 100644 index 00000000..b03bbd5a --- /dev/null +++ b/lua/mason-registry/pyright/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "pyright", + desc = [[Static type checker for Python]], + homepage = "https://github.com/microsoft/pyright", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "pyright", bin = { "pyright", "pyright-langserver" } }, +} diff --git a/lua/mason-registry/python-lsp-server/init.lua b/lua/mason-registry/python-lsp-server/init.lua new file mode 100644 index 00000000..2ba0e8d6 --- /dev/null +++ b/lua/mason-registry/python-lsp-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local pip3 = require "mason.core.managers.pip3" + +return Pkg.new { + name = "python-lsp-server", + desc = [[Fork of the python-language-server project, maintained by the Spyder IDE team and the community]], + homepage = "https://github.com/python-lsp/python-lsp-server", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.LSP }, + install = pip3.packages { "python-lsp-server[all]", bin = { "pylsp" } }, +} diff --git a/lua/mason-registry/quick-lint-js/init.lua b/lua/mason-registry/quick-lint-js/init.lua new file mode 100644 index 00000000..8719a835 --- /dev/null +++ b/lua/mason-registry/quick-lint-js/init.lua @@ -0,0 +1,50 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local std = require "mason.core.managers.std" +local github = require "mason.core.managers.github" +local path = require "mason.core.path" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "quick-lint-js", + desc = [[Over 130× faster than ESLint, quick-lint-js gives you instant feedback as you code. Find bugs in your JavaScript before your finger leaves the keyboard. Lint any JavaScript file with no configuration.]], + homepage = "https://quick-lint-js.com/", + languages = { Pkg.Lang.JavaScript }, + categories = { Pkg.Cat.LSP, Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "quick-lint/quick-lint-js" + local release_file = assert( + coalesce( + when(platform.is.mac_x64, "macos.tar.gz"), + when(platform.is.mac_arm64, "macos-aarch64.tar.gz"), + when(platform.is.linux_x64, "linux.tar.gz"), + when(platform.is.linux_arm64, "linux-aarch64.tar.gz"), + when(platform.is.linux_arm, "linux-armhf.tar.gz"), + when(platform.is.win_x64, "windows.zip"), + when(platform.is.win_arm64, "windows-arm64.zip"), + when(platform.is.win_arm, "windows-arm.zip") + ), + "Current platform is not supported." + ) + + local source = github.tag { repo = repo } + source.with_receipt() + + local url = ("https://c.quick-lint-js.com/releases/%s/manual/%s"):format(source.tag, release_file) + platform.when { + unix = function() + std.download_file(url, "archive.tar.gz") + std.untar("archive.tar.gz", { strip_components = 1 }) + end, + win = function() + std.download_file(url, "archive.zip") + std.unzip("archive.zip", ".") + end, + } + ctx:link_bin("quick-lint-js", path.concat { "bin", platform.is.win and "quick-lint-js.exe" or "quick-lint-js" }) + end, +} diff --git a/lua/mason-registry/r-languageserver/init.lua b/lua/mason-registry/r-languageserver/init.lua new file mode 100644 index 00000000..508c6c72 --- /dev/null +++ b/lua/mason-registry/r-languageserver/init.lua @@ -0,0 +1,71 @@ +local Pkg = require "mason.core.package" + +---@param install_dir string +local function create_install_script(install_dir) + return ([[ +options(langserver_library = %q); +options(langserver_quiet = FALSE); +options(repos = list(CRAN = "http://cran.rstudio.com/")); +rlsLib <- getOption("langserver_library"); +.libPaths(new = rlsLib); + +didInstallRemotes <- FALSE; +tryCatch( + expr = { library("remotes") }, + error = function (e) { + install.packages("remotes", lib = rlsLib); + loadNamespace("remotes", lib.loc = rlsLib); + didInstallRemotes <- TRUE; + } +); + +# We set force = TRUE because this command will error if languageserversetup is already installed (even if it's at a +# different library location). +remotes::install_github("jozefhajnala/languageserversetup", lib = rlsLib, force = TRUE); + +if (didInstallRemotes) { + remove.packages("remotes", lib = rlsLib); +} + +loadNamespace("languageserversetup", lib.loc = rlsLib); +languageserversetup::languageserver_install( + fullReinstall = FALSE, + confirmBeforeInstall = FALSE, + strictLibrary = TRUE +); +library("languageserver", lib.loc = rlsLib); +]]):format(install_dir) +end + +---@param install_dir string +local function create_server_script(install_dir) + return ([[ +options("langserver_library" = %q); +rlsLib <- getOption("langserver_library"); +.libPaths(new = c(rlsLib, .libPaths())); +loadNamespace("languageserver", lib.loc = rlsLib); +languageserver::run(); + ]]):format(install_dir) +end + +return Pkg.new { + name = "r-languageserver", + desc = [[An implementation of the Language Server Protocol for R]], + homepage = "https://github.com/REditorSupport/languageserver", + languages = { Pkg.Lang.R }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + ctx.spawn.R { + "--no-save", + on_spawn = function(_, stdio) + local stdin = stdio[1] + stdin:write(create_install_script(ctx.cwd:get())) + stdin:close() + end, + } + ctx.fs:write_file("server.R", create_server_script(ctx.handle.package:get_install_path())) + ctx.receipt:with_primary_source(ctx.receipt.r_package "languageserver") + end, +} diff --git a/lua/mason-registry/reason-language-server/init.lua b/lua/mason-registry/reason-language-server/init.lua new file mode 100644 index 00000000..ef9fd2f6 --- /dev/null +++ b/lua/mason-registry/reason-language-server/init.lua @@ -0,0 +1,38 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" +local path = require "mason.core.path" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "reason-language-server", + desc = [[A language server for reason, in reason]], + homepage = "https://github.com/jaredly/reason-language-server", + languages = { Pkg.Lang.Reason }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local archive_name = coalesce( + when(platform.is.mac, "rls-macos"), + when(platform.is.linux_x64, "rls-linux"), + when(platform.is.win_x64, "rls-windows") + ) + github + .unzip_release_file({ + repo = "jaredly/reason-language-server", + asset_file = ("%s.zip"):format(archive_name), + }) + .with_receipt() + ctx.fs:rename(archive_name, "reason") + ctx:link_bin( + "reason-language-server", + path.concat { + "reason", + platform.is.win and "reason-language-server.exe" or "reason-language-server", + } + ) + end, +} diff --git a/lua/mason-registry/remark-language-server/init.lua b/lua/mason-registry/remark-language-server/init.lua new file mode 100644 index 00000000..24d7d8f7 --- /dev/null +++ b/lua/mason-registry/remark-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "remark-language-server", + desc = [[A language server to lint and format markdown files with remark]], + homepage = "https://github.com/remarkjs/remark-language-server", + languages = { Pkg.Lang.Markdown }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "remark-language-server", bin = { "remark-language-server" } }, +} diff --git a/lua/mason-registry/rescript-lsp/init.lua b/lua/mason-registry/rescript-lsp/init.lua new file mode 100644 index 00000000..8cf39adb --- /dev/null +++ b/lua/mason-registry/rescript-lsp/init.lua @@ -0,0 +1,21 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" + +return Pkg.new { + name = "rescript-lsp", + desc = [[Language Server for ReScript.]], + homepage = "https://github.com/rescript-lang/rescript-vscode", + languages = { Pkg.Lang.ReScript }, + categories = { Pkg.Cat.LSP }, + ---@async + install = function() + github + .unzip_release_file({ + repo = "rescript-lang/rescript-vscode", + asset_file = function(version) + return ("rescript-vscode-%s.vsix"):format(version) + end, + }) + .with_receipt() + end, +} diff --git a/lua/mason-registry/rnix-lsp/init.lua b/lua/mason-registry/rnix-lsp/init.lua new file mode 100644 index 00000000..d97e9bef --- /dev/null +++ b/lua/mason-registry/rnix-lsp/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason.core.package" +local cargo = require "mason.core.managers.cargo" + +return Pkg.new { + name = "rnix-lsp", + desc = [[Language Server for Nix]], + homepage = "https://github.com/nix-community/rnix-lsp", + languages = { Pkg.Lang.Nix }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("rnix-lsp", { + bin = { "rnix-lsp" }, + }), +} diff --git a/lua/mason-registry/robotframework-lsp/init.lua b/lua/mason-registry/robotframework-lsp/init.lua new file mode 100644 index 00000000..13f2f2b9 --- /dev/null +++ b/lua/mason-registry/robotframework-lsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local pip3 = require "mason.core.managers.pip3" + +return Pkg.new { + name = "robotframework-lsp", + desc = [[Language Server Protocol implementation for Robot Framework]], + homepage = "https://github.com/robocorp/robotframework-lsp", + languages = { Pkg.Lang["Robot Framework"] }, + categories = { Pkg.Cat.LSP }, + install = pip3.packages { "robotframework-lsp", bin = { "robotframework_ls" } }, +} diff --git a/lua/mason-registry/rome/init.lua b/lua/mason-registry/rome/init.lua new file mode 100644 index 00000000..d0f1b59d --- /dev/null +++ b/lua/mason-registry/rome/init.lua @@ -0,0 +1,19 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" +local Optional = require "mason.core.optional" + +return Pkg.new { + name = "rome", + desc = [[Rome is a formatter, linter, bundler, and more for JavaScript, TypeScript, JSON, HTML, Markdown, and CSS.]], + homepage = "https://rome.tools", + languages = { Pkg.Lang.TypeScript, Pkg.Lang.JavaScript }, + categories = { Pkg.Cat.LSP, Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + ctx.requested_version = ctx.requested_version:or_(function() + return Optional.of "10.0.7-nightly.2021.7.27" + end) + npm.install({ "rome", bin = { "rome" } }).with_receipt() + end, +} diff --git a/lua/mason-registry/rust-analyzer/init.lua b/lua/mason-registry/rust-analyzer/init.lua new file mode 100644 index 00000000..8aa3b23f --- /dev/null +++ b/lua/mason-registry/rust-analyzer/init.lua @@ -0,0 +1,53 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "rust-analyzer", + desc = [[rust-analyzer is an implementation of Language Server Protocol for the Rust programming language. It provides features like completion and goto definition for many code editors, including VS Code, Emacs and Vim.]], + homepage = "https://rust-analyzer.github.io", + languages = { Pkg.Lang.Rust }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local libc = platform.get_libc() + + local asset_file = coalesce( + when(platform.is.mac_arm64, "rust-analyzer-aarch64-apple-darwin.gz"), + when(platform.is.mac_x64, "rust-analyzer-x86_64-apple-darwin.gz"), + when( + platform.is.linux, + coalesce( + when( + libc == "glibc", + coalesce( + when(platform.arch == "arm64", "rust-analyzer-aarch64-unknown-linux-gnu.gz"), + when(platform.arch == "x64", "rust-analyzer-x86_64-unknown-linux-gnu.gz") + ) + ), + when( + libc == "musl", + coalesce(when(platform.arch == "x64", "rust-analyzer-x86_64-unknown-linux-musl.gz")) + ) + ) + ), + when(platform.is.win_arm64, "rust-analyzer-aarch64-pc-windows-msvc.gz"), + when(platform.is.win_x64, "rust-analyzer-x86_64-pc-windows-msvc.gz") + ) + + github + .gunzip_release_file({ + repo = "rust-lang/rust-analyzer", + asset_file = asset_file, + out_file = platform.is.win and "rust-analyzer.exe" or "rust-analyzer", + }) + .with_receipt() + std.chmod("+x", { "rust-analyzer" }) + ctx:link_bin("rust-analyzer", platform.is.win and "rust-analyzer.exe" or "rust-analyzer") + end, +} diff --git a/lua/mason-registry/salt-lsp/init.lua b/lua/mason-registry/salt-lsp/init.lua new file mode 100644 index 00000000..3bb7d09c --- /dev/null +++ b/lua/mason-registry/salt-lsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local pip3 = require "mason.core.managers.pip3" + +return Pkg.new { + name = "salt-lsp", + desc = [[Salt Language Server Protocol Server]], + languages = { Pkg.Lang.Salt }, + categories = { Pkg.Cat.LSP }, + homepage = "https://github.com/dcermak/salt-lsp", + install = pip3.packages { "salt-lsp", bin = { "salt_lsp_server" } }, +} diff --git a/lua/mason-registry/serve-d/init.lua b/lua/mason-registry/serve-d/init.lua new file mode 100644 index 00000000..fc57719b --- /dev/null +++ b/lua/mason-registry/serve-d/init.lua @@ -0,0 +1,51 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "serve-d", + desc = [[Microsoft language server protocol implementation for D using workspace-d]], + homepage = "https://github.com/Pure-D/serve-d", + languages = { Pkg.Lang.D }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "Pure-D/serve-d" + platform.when { + unix = function() + github + .untarxz_release_file({ + repo = repo, + asset_file = function(release) + local target = coalesce( + when(platform.is.mac, "serve-d_%s-osx-x86_64.tar.xz"), + when(platform.is.linux_x64, "serve-d_%s-linux-x86_64.tar.xz") + ) + return target and target:format(release:gsub("^v", "")) + end, + }) + .with_receipt() + ctx:link_bin("serve-d", "serve-d") + end, + win = function() + github + .unzip_release_file({ + repo = repo, + asset_file = function(release) + local target = coalesce( + when(platform.arch == "x64", "serve-d_%s-windows-x86_64.zip"), + when(platform.arch == "x86", "serve-d_%s-windows-x86.zip") + ) + return target and target:format(release:gsub("^v", "")) + end, + }) + .with_receipt() + ctx:link_bin("serve-d", "serve-d.exe") + end, + } + end, +} diff --git a/lua/mason-registry/shellcheck/init.lua b/lua/mason-registry/shellcheck/init.lua new file mode 100644 index 00000000..634e42f1 --- /dev/null +++ b/lua/mason-registry/shellcheck/init.lua @@ -0,0 +1,42 @@ +local Pkg = require "mason.core.package" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" +local platform = require "mason.core.platform" + +return Pkg.new { + name = "shellcheck", + desc = [[ShellCheck, a static analysis tool for shell scripts]], + homepage = "https://www.shellcheck.net/", + categories = { Pkg.Cat.Linter }, + languages = { Pkg.Lang.Bash }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + platform.when { + unix = function() + github + .untarxz_release_file({ + strip_components = 1, + repo = "koalaman/shellcheck", + asset_file = _.coalesce( + _.when(platform.is.mac, _.format "shellcheck-%s.darwin.x86_64.tar.xz"), + _.when(platform.is.linux_x64, _.format "shellcheck-%s.linux.x86_64.tar.xz"), + _.when(platform.is.linux_arm64, _.format "shellcheck-%s.linux.aarch64.tar.xz"), + _.when(platform.is.linux_arm, _.format "shellcheck-%s.linux.armv6hf.tar.xz") + ), + }) + .with_receipt() + ctx:link_bin("shellcheck", "shellcheck") + end, + win = function() + github + .unzip_release_file({ + repo = "koalaman/shellcheck", + asset_file = _.coalesce(_.when(platform.is.win_x64, _.format "shellcheck-%s.zip")), + }) + .with_receipt() + ctx:link_bin("shellcheck", "shellcheck.exe") + end, + } + end, +} diff --git a/lua/mason-registry/shopify-theme-check/init.lua b/lua/mason-registry/shopify-theme-check/init.lua new file mode 100644 index 00000000..df945530 --- /dev/null +++ b/lua/mason-registry/shopify-theme-check/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local gem = require "mason.core.managers.gem" + +return Pkg.new { + name = "shopify-theme-check", + desc = [[The Ultimate Shopify Theme Linter]], + homepage = "https://github.com/Shopify/theme-check", + languages = { Pkg.Lang.Liquid }, + categories = { Pkg.Cat.LSP, Pkg.Cat.Linter }, + install = gem.packages { "theme-check", bin = { "theme-check-language-server" } }, +} diff --git a/lua/mason-registry/slint-lsp/init.lua b/lua/mason-registry/slint-lsp/init.lua new file mode 100644 index 00000000..93973e4b --- /dev/null +++ b/lua/mason-registry/slint-lsp/init.lua @@ -0,0 +1,36 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local github = require "mason.core.managers.github" +local path = require "mason.core.path" + +return Pkg.new { + name = "slint-lsp", + desc = [[A LSP Server that adds features like auto-complete and live preview of the .slint files to many editors.]], + homepage = "https://slint-ui.com/", + languages = { Pkg.Lang.Slint }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "slint-ui/slint" + platform.when { + win = function() + github + .unzip_release_file({ + repo = repo, + asset_file = "slint-lsp-windows.zip", + }) + .with_receipt() + end, + linux = function() + github + .untargz_release_file({ + repo = repo, + asset_file = "slint-lsp-linux.tar.gz", + }) + .with_receipt() + end, + } + ctx:link_bin("slint-lsp", path.concat { "slint-lsp", platform.is.win and "slint-lsp.exe" or "slint-lsp" }) + end, +} diff --git a/lua/mason-registry/solang/init.lua b/lua/mason-registry/solang/init.lua new file mode 100644 index 00000000..bcfc54f3 --- /dev/null +++ b/lua/mason-registry/solang/init.lua @@ -0,0 +1,63 @@ +local Pkg = require "mason.core.package" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local installer = require "mason.core.installer" +local std = require "mason.core.managers.std" +local github = require "mason.core.managers.github" + +local coalesce, when = _.coalesce, _.when + +---@async +local function download_solang() + local source = github + .download_release_file({ + repo = "hyperledger-labs/solang", + out_file = platform.is.win and "solang.exe" or "solang", + asset_file = coalesce( + when(platform.is.mac_x64, "solang-mac-intel"), + when(platform.is.mac_arm64, "solang-mac-arm"), + when(platform.is.linux_arm64, "solang-linux-arm64"), + when(platform.is.linux_x64, "solang-linux-x86-64"), + when(platform.is.win_x64, "solang.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "solang" }) + return source +end + +---@async +---Solang needs a build of llvm with some extra patches. +local function download_llvm() + local source = github.release_file { + repo = "hyperledger-labs/solang", + asset_file = coalesce( + when(platform.is.mac_x64, "llvm13.0-mac-intel.tar.xz"), + when(platform.is.mac_arm64, "llvm13.0-mac-arm.tar.xz"), + when(platform.is.linux_x64, "llvm13.0-linux-x86-64.tar.xz"), + when(platform.is.linux_arm64, "llvm13.0-linux-arm64.tar.xz"), + when(platform.is.win_x64, "llvm13.0-win.zip") + ), + } + if platform.is.win then + std.download_file(source.download_url, "llvm.zip") + std.unzip("llvm.zip", ".") + else + std.download_file(source.download_url, "llvm.tar.xz") + std.untar "llvm.tar.xz" + end +end + +return Pkg.new { + name = "solang", + desc = [[Solidity Compiler for Solana, Substrate, and ewasm]], + homepage = "https://solang.readthedocs.io/en/latest/", + languages = { Pkg.Lang.Solidity }, + categories = { Pkg.Cat.LSP, Pkg.Cat.Compiler }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + installer.run_concurrently { download_solang, download_llvm } + ctx:link_bin("solang", platform.is.win and "solang.exe" or "solang") + end, +} diff --git a/lua/mason-registry/solargraph/init.lua b/lua/mason-registry/solargraph/init.lua new file mode 100644 index 00000000..88bf3c19 --- /dev/null +++ b/lua/mason-registry/solargraph/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local gem = require "mason.core.managers.gem" + +return Pkg.new { + name = "solargraph", + desc = [[Solargraph is a Ruby gem that provides intellisense features through the language server protocol.]], + homepage = "https://solargraph.org", + languages = { Pkg.Lang.Ruby }, + categories = { Pkg.Cat.LSP }, + install = gem.packages { "solargraph", bin = { "solargraph" } }, +} diff --git a/lua/mason-registry/solidity/init.lua b/lua/mason-registry/solidity/init.lua new file mode 100644 index 00000000..b6c04188 --- /dev/null +++ b/lua/mason-registry/solidity/init.lua @@ -0,0 +1,32 @@ +local Pkg = require "mason.core.package" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "solidity", + desc = [[Solidity, the Smart Contract Programming Language]], + homepage = "https://github.com/ethereum/solidity", + categories = { Pkg.Cat.Compiler, Pkg.Cat.LSP }, + languages = { Pkg.Lang.Solidity }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "ethereum/solidity", + out_file = platform.is_win and "solc.exe" or "solc", + asset_file = coalesce( + when(platform.is.mac, "solc-macos"), + when(platform.is.linux, "solc-static-linux"), + when(platform.is.win, "solc-windows.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "solc" }) + ctx:link_bin("solc", platform.is.win and "solc.exe" or "solc") + end, +} diff --git a/lua/mason-registry/sorbet/init.lua b/lua/mason-registry/sorbet/init.lua new file mode 100644 index 00000000..d013bb82 --- /dev/null +++ b/lua/mason-registry/sorbet/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local gem = require "mason.core.managers.gem" + +return Pkg.new { + name = "sorbet", + desc = [[Sorbet is a fast, powerful type checker designed for Ruby.]], + homepage = "https://sorbet.org/", + languages = { Pkg.Lang.Ruby }, + categories = { Pkg.Cat.LSP }, + install = gem.packages { "sorbet", bin = { "srb" } }, +} diff --git a/lua/mason-registry/sourcery/init.lua b/lua/mason-registry/sourcery/init.lua new file mode 100644 index 00000000..c0085044 --- /dev/null +++ b/lua/mason-registry/sourcery/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local pip3 = require "mason.core.managers.pip3" + +return Pkg.new { + name = "sourcery", + desc = [[Sourcery is a tool available in your IDE, GitHub, or as a CLI that suggests refactoring improvements to help make your code more readable and generally higher quality.]], + homepage = "https://docs.sourcery.ai/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.LSP }, + install = pip3.packages { "sourcery-cli", bin = { "sourcery" } }, +} diff --git a/lua/mason-registry/sqlls/init.lua b/lua/mason-registry/sqlls/init.lua new file mode 100644 index 00000000..f954bce8 --- /dev/null +++ b/lua/mason-registry/sqlls/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "sqlls", + desc = [[SQL Language Server]], + homepage = "https://github.com/joe-re/sql-language-server", + languages = { Pkg.Lang.SQL }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "sql-language-server", bin = { "sql-language-server" } }, +} diff --git a/lua/mason-registry/sqls/init.lua b/lua/mason-registry/sqls/init.lua new file mode 100644 index 00000000..e22ab013 --- /dev/null +++ b/lua/mason-registry/sqls/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local go = require "mason.core.managers.go" + +return Pkg.new { + name = "sqls", + desc = [[SQL language server written in Go.]], + homepage = "https://github.com/lighttiger2505/sqls", + languages = { Pkg.Lang.SQL }, + categories = { Pkg.Cat.LSP }, + install = go.packages { "github.com/lighttiger2505/sqls", bin = { "sqls" } }, +} diff --git a/lua/mason-registry/stylelint-lsp/init.lua b/lua/mason-registry/stylelint-lsp/init.lua new file mode 100644 index 00000000..95420625 --- /dev/null +++ b/lua/mason-registry/stylelint-lsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "stylelint-lsp", + desc = [[A stylelint Language Server]], + homepage = "https://github.com/bmatcuk/stylelint-lsp", + languages = { Pkg.Lang.Stylelint }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "stylelint-lsp", bin = { "stylelint-lsp" } }, +} diff --git a/lua/mason-registry/stylua/init.lua b/lua/mason-registry/stylua/init.lua new file mode 100644 index 00000000..227b637c --- /dev/null +++ b/lua/mason-registry/stylua/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason.core.package" +local cargo = require "mason.core.managers.cargo" + +return Pkg.new { + name = "stylua", + desc = [[An opinionated Lua code formatter]], + homepage = "https://github.com/JohnnyMorganz/StyLua", + languages = { Pkg.Lang.Lua }, + categories = { Pkg.Cat.Formatter }, + install = cargo.crate("stylua", { + bin = { "stylua" }, + }), +} diff --git a/lua/mason-registry/svelte-language-server/init.lua b/lua/mason-registry/svelte-language-server/init.lua new file mode 100644 index 00000000..763c1b36 --- /dev/null +++ b/lua/mason-registry/svelte-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "svelte-language-server", + desc = [[A language server (implementing the language server protocol) for Svelte.]], + languages = { Pkg.Lang.Svelte }, + categories = { Pkg.Cat.LSP }, + homepage = "https://github.com/sveltejs/language-tools", + install = npm.packages { "svelte-language-server", bin = { "svelteserver" } }, +} diff --git a/lua/mason-registry/svlangserver/init.lua b/lua/mason-registry/svlangserver/init.lua new file mode 100644 index 00000000..2ed6888c --- /dev/null +++ b/lua/mason-registry/svlangserver/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "svlangserver", + desc = [[A language server for systemverilog that has been tested to work with coc.nvim, VSCode, Sublime Text 4, emacs, and Neovim]], + homepage = "https://github.com/imc-trading/svlangserver", + languages = { Pkg.Lang.SystemVerilog }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@imc-trading/svlangserver", bin = { "svlangserver" } }, +} diff --git a/lua/mason-registry/svls/init.lua b/lua/mason-registry/svls/init.lua new file mode 100644 index 00000000..f7b8088c --- /dev/null +++ b/lua/mason-registry/svls/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason.core.package" +local cargo = require "mason.core.managers.cargo" + +return Pkg.new { + name = "svls", + desc = [[SystemVerilog language server]], + homepage = "https://github.com/dalance/svls", + languages = { Pkg.Lang.SystemVerilog }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("svls", { + bin = { "svls" }, + }), +} diff --git a/lua/mason-registry/tailwindcss-language-server/init.lua b/lua/mason-registry/tailwindcss-language-server/init.lua new file mode 100644 index 00000000..d074ba84 --- /dev/null +++ b/lua/mason-registry/tailwindcss-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "tailwindcss-language-server", + desc = [[Language Server Protocol implementation for Tailwind CSS.]], + homepage = "https://github.com/tailwindlabs/tailwindcss-intellisense", + languages = { Pkg.Lang.CSS }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@tailwindcss/language-server", bin = { "tailwindcss-language-server" } }, +} diff --git a/lua/mason-registry/taplo/init.lua b/lua/mason-registry/taplo/init.lua new file mode 100644 index 00000000..4909aec5 --- /dev/null +++ b/lua/mason-registry/taplo/init.lua @@ -0,0 +1,14 @@ +local Pkg = require "mason.core.package" +local cargo = require "mason.core.managers.cargo" + +return Pkg.new { + name = "taplo", + desc = [[A versatile, feature-rich TOML toolkit.]], + homepage = "https://taplo.tamasfe.dev/", + languages = { Pkg.Lang.TOML }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("taplo-cli", { + features = "lsp", + bin = { "taplo" }, + }), +} diff --git a/lua/mason-registry/teal-language-server/init.lua b/lua/mason-registry/teal-language-server/init.lua new file mode 100644 index 00000000..3911869f --- /dev/null +++ b/lua/mason-registry/teal-language-server/init.lua @@ -0,0 +1,14 @@ +local Pkg = require "mason.core.package" +local luarocks = require "mason.core.managers.luarocks" + +return Pkg.new { + name = "teal-language-server", + desc = [[A language server for Teal, a typed dialect of Lua]], + homepage = "https://github.com/teal-language/teal-language-server", + languages = { Pkg.Lang.Teal }, + categories = { Pkg.Cat.LSP }, + install = luarocks.package("teal-language-server", { + dev = true, + bin = { "teal-language-server" }, + }), +} diff --git a/lua/mason-registry/terraform-ls/init.lua b/lua/mason-registry/terraform-ls/init.lua new file mode 100644 index 00000000..9588b094 --- /dev/null +++ b/lua/mason-registry/terraform-ls/init.lua @@ -0,0 +1,35 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "terraform-ls", + desc = [[Terraform Language Server]], + homepage = "https://github.com/hashicorp/terraform-ls", + languages = { Pkg.Lang.Terraform }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "hashicorp/terraform-ls", + asset_file = function(version) + local target = coalesce( + when(platform.is.mac_arm64, "terraform-ls_%s_darwin_arm64.zip"), + when(platform.is.mac_x64, "terraform-ls_%s_darwin_amd64.zip"), + when(platform.is.linux_arm64, "terraform-ls_%s_linux_arm64.zip"), + when(platform.is.linux_arm, "terraform-ls_%s_linux_arm.zip"), + when(platform.is.linux_x64, "terraform-ls_%s_linux_amd64.zip"), + when(platform.is.win_x64, "terraform-ls_%s_windows_amd64.zip") + ) + return target and target:format(version:gsub("^v", "")) + end, + }) + .with_receipt() + ctx:link_bin("terraform-ls", platform.is.win and "terraform-ls.exe" or "terraform-ls") + end, +} diff --git a/lua/mason-registry/texlab/init.lua b/lua/mason-registry/texlab/init.lua new file mode 100644 index 00000000..c777a5f6 --- /dev/null +++ b/lua/mason-registry/texlab/init.lua @@ -0,0 +1,43 @@ +local Pkg = require "mason.core.package" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local github = require "mason.core.managers.github" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "texlab", + desc = [[An implementation of the Language Server Protocol for LaTeX]], + homepage = "https://github.com/latex-lsp/texlab", + categories = { Pkg.Cat.LSP }, + languages = { Pkg.Lang.LaTeX }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "latex-lsp/texlab" + platform.when { + unix = function() + github + .untargz_release_file({ + repo = repo, + asset_file = coalesce( + when(platform.is.mac_arm64, "texlab-aarch64-macos.tar.gz"), + when(platform.is.mac_x64, "texlab-x86_64-macos.tar.gz"), + when(platform.is.linux_x64, "texlab-x86_64-linux.tar.gz") + ), + }) + .with_receipt() + ctx:link_bin("texlab", "texlab") + end, + win = function() + github + .unzip_release_file({ + repo = repo, + asset_file = coalesce(when(platform.arch == "x64", "texlab-x86_64-windows.zip")), + }) + .with_receipt() + ctx:link_bin("texlab", "texlab.exe") + end, + } + end, +} diff --git a/lua/mason-registry/tflint/init.lua b/lua/mason-registry/tflint/init.lua new file mode 100644 index 00000000..cc910da1 --- /dev/null +++ b/lua/mason-registry/tflint/init.lua @@ -0,0 +1,32 @@ +local Pkg = require "mason.core.package" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local github = require "mason.core.managers.github" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "tflint", + desc = [[A Pluggable Terraform Linter]], + homepage = "https://github.com/terraform-linters/tflint", + languages = { Pkg.Lang.Terraform }, + categories = { Pkg.Cat.LSP, Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "terraform-linters/tflint", + asset_file = coalesce( + when(platform.is.mac_x64, "tflint_darwin_amd64.zip"), + when(platform.is.mac_arm64, "tflint_darwin_arm64.zip"), + when(platform.is.linux_x64, "tflint_linux_amd64.zip"), + when(platform.is.linux_arm64, "tflint_linux_arm64.zip"), + when(platform.is.linux_x86, "tflint_linux_386.zip"), + when(platform.is.win_x64, "tflint_windows_amd64.zip") + ), + }) + .with_receipt() + ctx:link_bin("tflint", platform.is.win and "tflint.exe" or "tflint") + end, +} diff --git a/lua/mason-registry/typescript-language-server/init.lua b/lua/mason-registry/typescript-language-server/init.lua new file mode 100644 index 00000000..f6bf3faa --- /dev/null +++ b/lua/mason-registry/typescript-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "typescript-language-server", + desc = [[TypeScript & JavaScript Language Server]], + homepage = "https://github.com/typescript-language-server/typescript-language-server", + categories = { Pkg.Cat.LSP }, + languages = { Pkg.Lang.TypeScript, Pkg.Lang.JavaScript }, + install = npm.packages { "typescript-language-server", "typescript", bin = { "typescript-language-server" } }, +} diff --git a/lua/mason-registry/vala-language-server/init.lua b/lua/mason-registry/vala-language-server/init.lua new file mode 100644 index 00000000..65ea9e61 --- /dev/null +++ b/lua/mason-registry/vala-language-server/init.lua @@ -0,0 +1,40 @@ +local Pkg = require "mason.core.package" +local std = require "mason.core.managers.std" +local github = require "mason.core.managers.github" +local platform = require "mason.core.platform" +local path = require "mason.core.path" + +return Pkg.new { + name = "vala-language-server", + desc = [[Code Intelligence for Vala & Genie]], + homepage = "https://github.com/vala-lang/vala-language-server", + languages = { Pkg.Lang.Vala }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + std.ensure_executable("meson", { help_url = "https://mesonbuild.com/Getting-meson.html" }) + std.ensure_executable("ninja", { help_url = "https://ninja-build.org/" }) + std.ensure_executable("valac", { help_url = "https://wiki.gnome.org/Projects/Vala" }) + + local release_source = github.untarxz_release_file { + repo = "vala-lang/vala-language-server", + asset_file = function(version) + return ("vala-language-server-%s.tar.xz"):format(version) + end, + } + release_source.with_receipt() + + local vala_dirname = ("vala-language-server-%s"):format(release_source.release) + local install_dir = ctx.cwd:get() + ctx:chdir(vala_dirname, function() + ctx.spawn.meson { ("-Dprefix=%s"):format(install_dir), "build" } + ctx.spawn.ninja { "-C", "build", "install" } + end) + ctx.fs:rmrf(vala_dirname) + ctx:link_bin( + "vala-language-server", + path.concat { "bin", platform.is.win and "vala-language-server.exe" or "vala-language-server" } + ) + end, +} diff --git a/lua/mason-registry/verible/init.lua b/lua/mason-registry/verible/init.lua new file mode 100644 index 00000000..a681c4f7 --- /dev/null +++ b/lua/mason-registry/verible/init.lua @@ -0,0 +1,85 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" +local path = require "mason.core.path" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "verible", + desc = [[Verible is a suite of SystemVerilog developer tools, including a parser, style-linter, and formatter.]], + homepage = "https://chipsalliance.github.io/verible/", + languages = { Pkg.Lang.SystemVerilog }, + categories = { Pkg.Cat.LSP, Pkg.Cat.Linter, Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "chipsalliance/verible" + platform.when { + linux = function() + local os_dist = platform.os_distribution() + local source = github.untarxz_release_file { + repo = repo, + asset_file = function(release) + if os_dist.id == "ubuntu" then + local target_file = when( + platform.arch == "x64", + coalesce( + when(os_dist.version.major == 16, "verible-%s-Ubuntu-16.04-xenial-x86_64.tar.gz"), + when(os_dist.version.major == 18, "verible-%s-Ubuntu-18.04-bionic-x86_64.tar.gz"), + when(os_dist.version.major == 20, "verible-%s-Ubuntu-20.04-focal-x86_64.tar.gz"), + when(os_dist.version.major == 22, "verible-%s-Ubuntu-22.04-jammy-x86_64.tar.gz") + ) + ) + return target_file and target_file:format(release) + end + end, + } + source.with_receipt() + ctx.fs:rename(("verible-%s"):format(source.release), "verible") + for executable, rel_path in pairs { + ["git-verible-verilog-format.sh"] = { "verible", "bin", "git-verible-verilog-format.sh" }, + ["verible-patch-tool"] = { "verible", "bin", "verible-patch-tool" }, + ["verible-transform-interactive.sh"] = { "verible", "bin", "verible-transform-interactive.sh" }, + ["verible-verilog-diff"] = { "verible", "bin", "verible-verilog-ls" }, + ["verible-verilog-format"] = { "verible", "bin", "verible-verilog-format" }, + ["verible-verilog-kythe-extractor"] = { "verible", "bin", "verible-verilog-kythe-extractor" }, + ["verible-verilog-lint"] = { "verible", "bin", "verible-verilog-lint" }, + ["verible-verilog-ls"] = { "verible", "bin", "verible-verilog-ls" }, + ["verible-verilog-obfuscate"] = { "verible", "bin", "verible-verilog-obfuscate" }, + ["verible-verilog-preprocessor"] = { "verible", "bin", "verible-verilog-preprocessor" }, + ["verible-verilog-project"] = { "verible", "bin", "verible-verilog-project" }, + ["verible-verilog-syntax"] = { "verible", "bin", "verible-verilog-syntax" }, + } do + ctx:link_bin(executable, path.concat(rel_path)) + end + end, + win = function() + local source = github.unzip_release_file { + repo = repo, + asset_file = function(release) + local target_file = coalesce(when(platform.arch == "x64", "verible-%s-win64.zip")) + return target_file and target_file:format(release) + end, + } + source.with_receipt() + ctx.fs:rename(("verible-%s-win64"):format(source.release), "verible") + for executable, rel_path in pairs { + ["verible-patch-tool"] = { "verible", "verible-patch-tool.exe" }, + ["verible-verilog-diff"] = { "verible", "verible-verilog-ls.exe" }, + ["verible-verilog-format"] = { "verible", "verible-verilog-format.exe" }, + ["verible-verilog-kythe-extractor"] = { "verible", "verible-verilog-kythe-extractor.exe" }, + ["verible-verilog-lint"] = { "verible", "verible-verilog-lint.exe" }, + ["verible-verilog-ls"] = { "verible", "verible-verilog-ls.exe" }, + ["verible-verilog-obfuscate"] = { "verible", "verible-verilog-obfuscate.exe" }, + ["verible-verilog-preprocessor"] = { "verible", "verible-verilog-preprocessor.exe" }, + ["verible-verilog-project"] = { "verible", "verible-verilog-project.exe" }, + ["verible-verilog-syntax"] = { "verible", "verible-verilog-syntax.exe" }, + } do + ctx:link_bin(executable, path.concat(rel_path)) + end + end, + } + end, +} diff --git a/lua/mason-registry/vetur-vls/init.lua b/lua/mason-registry/vetur-vls/init.lua new file mode 100644 index 00000000..07503fad --- /dev/null +++ b/lua/mason-registry/vetur-vls/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "vetur-vls", + desc = [[VLS (Vue Language Server) is a language server implementation compatible with Language Server Protocol.]], + homepage = "https://github.com/vuejs/vetur", + languages = { Pkg.Lang.Vue }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "vls", bin = { "vls" } }, +} diff --git a/lua/mason-registry/vim-language-server/init.lua b/lua/mason-registry/vim-language-server/init.lua new file mode 100644 index 00000000..7e555644 --- /dev/null +++ b/lua/mason-registry/vim-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "vim-language-server", + desc = [[VimScript language server.]], + homepage = "https://github.com/iamcco/vim-language-server", + languages = { Pkg.Lang.VimScript }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "vim-language-server", bin = { "vim-language-server" } }, +} diff --git a/lua/mason-registry/visualforce-language-server/init.lua b/lua/mason-registry/visualforce-language-server/init.lua new file mode 100644 index 00000000..0bc422b9 --- /dev/null +++ b/lua/mason-registry/visualforce-language-server/init.lua @@ -0,0 +1,34 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local github_client = require "mason.core.managers.github.client" +local Optional = require "mason.core.optional" +local _ = require "mason.core.functional" + +return Pkg.new { + name = "visualforce-language-server", + desc = [[Visualforce language server]], + homepage = "https://github.com/forcedotcom/salesforcedx-vscode", + languages = { Pkg.Lang.Visualforce }, + categories = { Pkg.Cat.LSP }, + ---@async + install = function() + local repo = "forcedotcom/salesforcedx-vscode" + + -- See https://github.com/forcedotcom/salesforcedx-vscode/issues/4184#issuecomment-1146052086 + ---@type GitHubRelease + local release = github_client + .fetch_releases(repo) + :map(_.find_first(_.prop_satisfies(_.compose(_.gt(0), _.length), "assets"))) + :map(Optional.of_nilable) + :get_or_throw() -- Result unwrap + :or_else_throw "Failed to find release with assets." -- Optional unwrap + + github + .unzip_release_file({ + version = Optional.of(release.tag_name), + asset_file = _.compose(_.format "salesforcedx-vscode-visualforce-%s.vsix", _.gsub("^v", "")), + repo = repo, + }) + .with_receipt() + end, +} diff --git a/lua/mason-registry/vls/init.lua b/lua/mason-registry/vls/init.lua new file mode 100644 index 00000000..110605ab --- /dev/null +++ b/lua/mason-registry/vls/init.lua @@ -0,0 +1,38 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local github_client = require "mason.core.managers.github.client" +local std = require "mason.core.managers.std" +local _ = require "mason.core.functional" +local platform = require "mason.core.platform" +local Optional = require "mason.core.optional" + +return Pkg.new { + name = "vls", + desc = [[V language server]], + homepage = "https://github.com/vlang/vls", + languages = { Pkg.Lang.V }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "vlang/vls" + + ---@type GitHubRelease + local latest_dev_build = github_client.fetch_latest_release(repo, { include_prerelease = true }):get_or_throw() + + github + .download_release_file({ + version = Optional.of(latest_dev_build.tag_name), + repo = repo, + out_file = platform.is.win and "vls.exe" or "vls", + asset_file = _.coalesce( + _.when(platform.is.linux_x64, "vls_linux_x64"), + _.when(platform.is.mac, "vls_macos_x64"), + _.when(platform.is.win_x64, "vls_windows_x64.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "vls" }) + ctx:link_bin("vls", platform.is.win and "vls.exe" or "vls") + end, +} diff --git a/lua/mason-registry/vue-language-server/init.lua b/lua/mason-registry/vue-language-server/init.lua new file mode 100644 index 00000000..3c3b181a --- /dev/null +++ b/lua/mason-registry/vue-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "vue-language-server", + desc = [[⚡ Explore high-performance tooling for Vue]], + homepage = "https://github.com/johnsoncodehk/volar", + languages = { Pkg.Lang.Vue }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@volar/vue-language-server", "typescript", bin = { "vue-language-server" } }, +} diff --git a/lua/mason-registry/wgsl-analyzer/init.lua b/lua/mason-registry/wgsl-analyzer/init.lua new file mode 100644 index 00000000..68dc25ad --- /dev/null +++ b/lua/mason-registry/wgsl-analyzer/init.lua @@ -0,0 +1,16 @@ +local Pkg = require "mason.core.package" +local cargo = require "mason.core.managers.cargo" + +local github_url = "https://github.com/wgsl-analyzer/wgsl-analyzer" + +return Pkg.new { + name = "wgsl-analyzer", + desc = [[A language server implementation for the WGSL shading language]], + homepage = github_url, + languages = { Pkg.Lang.WGSL }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("wgsl_analyzer", { + git = github_url, + bin = { "wgsl_analyzer" }, + }), +} diff --git a/lua/mason-registry/yaml-language-server/init.lua b/lua/mason-registry/yaml-language-server/init.lua new file mode 100644 index 00000000..4bf15a76 --- /dev/null +++ b/lua/mason-registry/yaml-language-server/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason.core.package" +local npm = require "mason.core.managers.npm" + +return Pkg.new { + name = "yaml-language-server", + desc = [[Language Server for YAML Files]], + homepage = "https://github.com/redhat-developer/yaml-language-server", + languages = { Pkg.Lang.YAML }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "yaml-language-server", bin = { "yaml-language-server" } }, +} diff --git a/lua/mason-registry/zk/init.lua b/lua/mason-registry/zk/init.lua new file mode 100644 index 00000000..4250f2c4 --- /dev/null +++ b/lua/mason-registry/zk/init.lua @@ -0,0 +1,55 @@ +local Pkg = require "mason.core.package" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "zk", + desc = [[A plain text note-taking assistant]], + homepage = "https://github.com/mickael-menu/zk", + languages = { Pkg.Lang.Markdown }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "mickael-menu/zk" + platform.when { + mac = function() + github + .unzip_release_file({ + repo = repo, + asset_file = coalesce( + when(platform.arch == "arm64", function(version) + return ("zk-%s-macos-arm64.zip"):format(version) + end), + when(platform.arch == "x64", function(version) + return ("zk-%s-macos-x86_64.zip"):format(version) + end) + ), + }) + :with_receipt() + end, + linux = function() + github + .untargz_release_file({ + repo = repo, + asset_file = coalesce( + when(platform.arch == "arm64", function(version) + return ("zk-%s-linux-arm64.tar.gz"):format(version) + end), + when(platform.arch == "x64", function(version) + return ("zk-%s-linux-amd64.tar.gz"):format(version) + end), + when(platform.arch == "x86", function(version) + return ("zk-%s-linux-i386.tar.gz"):format(version) + end) + ), + }) + .with_receipt() + end, + } + ctx:link_bin("zk", "zk") + end, +} diff --git a/lua/mason-registry/zls/init.lua b/lua/mason-registry/zls/init.lua new file mode 100644 index 00000000..beef3948 --- /dev/null +++ b/lua/mason-registry/zls/init.lua @@ -0,0 +1,34 @@ +local Pkg = require "mason.core.package" +local path = require "mason.core.path" +local platform = require "mason.core.platform" +local _ = require "mason.core.functional" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "zls", + desc = [[Zig LSP implementation + Zig Language Server]], + homepage = "https://github.com/zigtools/zls", + languages = { Pkg.Lang.Zig }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local asset_file = coalesce( + when(platform.is.mac, "x86_64-macos.tar.xz"), + when(platform.is.linux_x64, "x86_64-linux.tar.xz"), + when(platform.is.linux_x86, "i386-linux.tar.xz"), + when(platform.is.win_x64, "x86_64-windows.tar.xz") + ) + github + .untarxz_release_file({ + repo = "zigtools/zls", + asset_file = asset_file, + }) + .with_receipt() + std.chmod("+x", { path.concat { "bin", "zls" } }) + ctx:link_bin("zls", path.concat { "bin", platform.is.win and "zls.exe" or "zls" }) + end, +} diff --git a/lua/mason/_generated/package_index.lua b/lua/mason/_generated/package_index.lua deleted file mode 100644 index bfbb7a9b..00000000 --- a/lua/mason/_generated/package_index.lua +++ /dev/null @@ -1,139 +0,0 @@ --- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY. --- stylua: ignore start -return { - ["angular-language-server"] = "mason.packages.angular-language-server", - ["ansible-language-server"] = "mason.packages.ansible-language-server", - ["apex-language-server"] = "mason.packages.apex-language-server", - ["arduino-language-server"] = "mason.packages.arduino-language-server", - ["asm-lsp"] = "mason.packages.asm-lsp", - ["astro-language-server"] = "mason.packages.astro-language-server", - ["awk-language-server"] = "mason.packages.awk-language-server", - ["bash-language-server"] = "mason.packages.bash-language-server", - ["beancount-language-server"] = "mason.packages.beancount-language-server", - ["bicep-lsp"] = "mason.packages.bicep-lsp", - ["bsl-language-server"] = "mason.packages.bsl-language-server", - ccls = "mason.packages.ccls", - ["chrome-debug-adapter"] = "mason.packages.chrome-debug-adapter", - clangd = "mason.packages.clangd", - ["clarity-lsp"] = "mason.packages.clarity-lsp", - ["clojure-lsp"] = "mason.packages.clojure-lsp", - ["cmake-language-server"] = "mason.packages.cmake-language-server", - codelldb = "mason.packages.codelldb", - codeql = "mason.packages.codeql", - cpptools = "mason.packages.cpptools", - crystalline = "mason.packages.crystalline", - ["csharp-language-server"] = "mason.packages.csharp-language-server", - ["css-lsp"] = "mason.packages.css-lsp", - ["cssmodules-language-server"] = "mason.packages.cssmodules-language-server", - ["cucumber-language-server"] = "mason.packages.cucumber-language-server", - debugpy = "mason.packages.debugpy", - delve = "mason.packages.delve", - deno = "mason.packages.deno", - ["dhall-lsp"] = "mason.packages.dhall-lsp", - ["diagnostic-languageserver"] = "mason.packages.diagnostic-languageserver", - ["dockerfile-language-server"] = "mason.packages.dockerfile-language-server", - ["dot-language-server"] = "mason.packages.dot-language-server", - efm = "mason.packages.efm", - ["elixir-ls"] = "mason.packages.elixir-ls", - ["elm-format"] = "mason.packages.elm-format", - ["elm-language-server"] = "mason.packages.elm-language-server", - ["ember-language-server"] = "mason.packages.ember-language-server", - ["emmet-ls"] = "mason.packages.emmet-ls", - ["erlang-ls"] = "mason.packages.erlang-ls", - esbonio = "mason.packages.esbonio", - ["eslint-lsp"] = "mason.packages.eslint-lsp", - ["firefox-debug-adapter"] = "mason.packages.firefox-debug-adapter", - ["flux-lsp"] = "mason.packages.flux-lsp", - ["foam-language-server"] = "mason.packages.foam-language-server", - fortls = "mason.packages.fortls", - fsautocomplete = "mason.packages.fsautocomplete", - ["go-debug-adapter"] = "mason.packages.go-debug-adapter", - ["golangci-lint"] = "mason.packages.golangci-lint", - ["golangci-lint-langserver"] = "mason.packages.golangci-lint-langserver", - gopls = "mason.packages.gopls", - ["grammarly-languageserver"] = "mason.packages.grammarly-languageserver", - ["graphql-language-service-cli"] = "mason.packages.graphql-language-service-cli", - ["groovy-language-server"] = "mason.packages.groovy-language-server", - ["haskell-language-server"] = "mason.packages.haskell-language-server", - ["haxe-language-server"] = "mason.packages.haxe-language-server", - ["hoon-language-server"] = "mason.packages.hoon-language-server", - ["html-lsp"] = "mason.packages.html-lsp", - intelephense = "mason.packages.intelephense", - jdtls = "mason.packages.jdtls", - ["jedi-language-server"] = "mason.packages.jedi-language-server", - ["json-lsp"] = "mason.packages.json-lsp", - ["jsonnet-language-server"] = "mason.packages.jsonnet-language-server", - ["julia-lsp"] = "mason.packages.julia-lsp", - ["kotlin-language-server"] = "mason.packages.kotlin-language-server", - ktlint = "mason.packages.ktlint", - lelwel = "mason.packages.lelwel", - lemminx = "mason.packages.lemminx", - ["lemmy-help"] = "mason.packages.lemmy-help", - ["ltex-ls"] = "mason.packages.ltex-ls", - ["lua-language-server"] = "mason.packages.lua-language-server", - marksman = "mason.packages.marksman", - ["metamath-zero-lsp"] = "mason.packages.metamath-zero-lsp", - mockdebug = "mason.packages.mockdebug", - netcoredbg = "mason.packages.netcoredbg", - ["nickel-lang-lsp"] = "mason.packages.nickel-lang-lsp", - nimlsp = "mason.packages.nimlsp", - ["node-debug2-adapter"] = "mason.packages.node-debug2-adapter", - ["ocaml-lsp"] = "mason.packages.ocaml-lsp", - ["omnisharp-roslyn"] = "mason.packages.omnisharp-roslyn", - ["opencl-language-server"] = "mason.packages.opencl-language-server", - perlnavigator = "mason.packages.perlnavigator", - ["php-debug-adapter"] = "mason.packages.php-debug-adapter", - phpactor = "mason.packages.phpactor", - ["powershell-editor-services"] = "mason.packages.powershell-editor-services", - ["prisma-language-server"] = "mason.packages.prisma-language-server", - ["prosemd-lsp"] = "mason.packages.prosemd-lsp", - psalm = "mason.packages.psalm", - ["puppet-editor-services"] = "mason.packages.puppet-editor-services", - ["purescript-language-server"] = "mason.packages.purescript-language-server", - pyright = "mason.packages.pyright", - ["python-lsp-server"] = "mason.packages.python-lsp-server", - ["quick-lint-js"] = "mason.packages.quick-lint-js", - ["r-languageserver"] = "mason.packages.r-languageserver", - ["reason-language-server"] = "mason.packages.reason-language-server", - ["remark-language-server"] = "mason.packages.remark-language-server", - ["rescript-lsp"] = "mason.packages.rescript-lsp", - ["rnix-lsp"] = "mason.packages.rnix-lsp", - ["robotframework-lsp"] = "mason.packages.robotframework-lsp", - rome = "mason.packages.rome", - ["rust-analyzer"] = "mason.packages.rust-analyzer", - ["salt-lsp"] = "mason.packages.salt-lsp", - ["serve-d"] = "mason.packages.serve-d", - shellcheck = "mason.packages.shellcheck", - ["shopify-theme-check"] = "mason.packages.shopify-theme-check", - ["slint-lsp"] = "mason.packages.slint-lsp", - solang = "mason.packages.solang", - solargraph = "mason.packages.solargraph", - solidity = "mason.packages.solidity", - sorbet = "mason.packages.sorbet", - sourcery = "mason.packages.sourcery", - sqlls = "mason.packages.sqlls", - sqls = "mason.packages.sqls", - ["stylelint-lsp"] = "mason.packages.stylelint-lsp", - stylua = "mason.packages.stylua", - ["svelte-language-server"] = "mason.packages.svelte-language-server", - svlangserver = "mason.packages.svlangserver", - svls = "mason.packages.svls", - ["tailwindcss-language-server"] = "mason.packages.tailwindcss-language-server", - taplo = "mason.packages.taplo", - ["teal-language-server"] = "mason.packages.teal-language-server", - ["terraform-ls"] = "mason.packages.terraform-ls", - texlab = "mason.packages.texlab", - tflint = "mason.packages.tflint", - ["typescript-language-server"] = "mason.packages.typescript-language-server", - ["vala-language-server"] = "mason.packages.vala-language-server", - verible = "mason.packages.verible", - ["vetur-vls"] = "mason.packages.vetur-vls", - ["vim-language-server"] = "mason.packages.vim-language-server", - ["visualforce-language-server"] = "mason.packages.visualforce-language-server", - vls = "mason.packages.vls", - ["vue-language-server"] = "mason.packages.vue-language-server", - ["wgsl-analyzer"] = "mason.packages.wgsl-analyzer", - ["yaml-language-server"] = "mason.packages.yaml-language-server", - zk = "mason.packages.zk", - zls = "mason.packages.zls" -} \ No newline at end of file diff --git a/lua/mason/command-api/init.lua b/lua/mason/command-api/init.lua index 42e0e2fc..685e864f 100644 --- a/lua/mason/command-api/init.lua +++ b/lua/mason/command-api/init.lua @@ -11,11 +11,11 @@ end, { vim.api.nvim_create_user_command("MasonInstall", function(opts) local Package = require "mason.core.package" - local indexer = require "mason.core.package.indexer" + local registry = require "mason-registry" for _, package_specifier in ipairs(opts.fargs) do ---@type string local package_name, version = Package.Parse(package_specifier) - local ok, pkg = pcall(indexer.get_package, package_name) + local ok, pkg = pcall(registry.get_package, package_name) if not ok then notify(("Cannot find package %q."):format(package_name), vim.log.levels.ERROR) return @@ -30,9 +30,9 @@ end, { }) vim.api.nvim_create_user_command("MasonUninstall", function(opts) - local indexer = require "mason.core.package.indexer" + local registry = require "mason-registry" for _, package_name in ipairs(opts.fargs) do - local ok, pkg = pcall(indexer.get_package, package_name) + local ok, pkg = pcall(registry.get_package, package_name) if not ok then notify(("Cannot find package %q."):format(package_name), vim.log.levels.ERROR) return @@ -47,9 +47,9 @@ end, { }) vim.api.nvim_create_user_command("MasonUninstallAll", function() - local indexer = require "mason.core.package.indexer" + local registry = require "mason-registry" require("mason.ui").open() - for _, pkg in ipairs(indexer.get_installed_packages()) do + for _, pkg in ipairs(registry.get_installed_packages()) do pkg:uninstall() end end, { @@ -65,14 +65,14 @@ end, { _G.mason_completion = { available_package_completion = function() - local indexer = require "mason.core.package.indexer" - local package_names = indexer.get_all_package_names() + local registry = require "mason-registry" + local package_names = registry.get_all_package_names() table.sort(package_names) return table.concat(package_names, "\n") end, installed_package_completion = function() - local indexer = require "mason.core.package.indexer" - local package_names = indexer.get_installed_package_names() + local registry = require "mason-registry" + local package_names = registry.get_installed_package_names() table.sort(package_names) return table.concat(package_names, "\n") end, diff --git a/lua/mason/core/package/indexer.lua b/lua/mason/core/package/indexer.lua deleted file mode 100644 index 566c1035..00000000 --- a/lua/mason/core/package/indexer.lua +++ /dev/null @@ -1,89 +0,0 @@ -local log = require "mason.log" -local fs = require "mason.core.fs" -local _ = require "mason.core.functional" -local pkg_index = require "mason._generated.package_index" -local Optional = require "mason.core.optional" -local path = require "mason.core.path" -local EventEmitter = require "mason.core.EventEmitter" - -local M = setmetatable({}, { __index = EventEmitter }) -EventEmitter.init(M) - -local scan_install_root - -do - ---@type table - local cached_dirs - - local get_directories = _.compose( - _.set_of, - _.filter_map(function(entry) - if entry.type == "directory" and pkg_index[entry.name] then - return Optional.of(entry.name) - else - return Optional.empty() - end - end) - ) - - ---@return table - scan_install_root = function() - if cached_dirs then - return cached_dirs - end - log.trace "Scanning installation root dir" - ---@type string[] - local ok, entries = pcall(fs.sync.readdir, path.package_prefix()) - if not ok then - log.debug("Failed to scan installation root dir", entries) - -- presume installation root dir has not been created yet (i.e., no packages installed) - return {} - end - cached_dirs = get_directories(entries) - vim.schedule(function() - cached_dirs = nil - end) - log.trace("Resolved installation root dirs", cached_dirs) - return cached_dirs - end -end - ----@param package_name string -function M.is_installed(package_name) - return scan_install_root()[package_name] == true -end - ----@param package_name string ----@return Package -function M.get_package(package_name) - local ok, pkg = pcall(require, pkg_index[package_name]) - if not ok then - log.error(pkg) - error(("Cannot find package %q."):format(package_name)) - end - return pkg -end - -local get_packages = _.map(M.get_package) - ----@return string[] -function M.get_installed_package_names() - return _.keys(scan_install_root()) -end - ----@return Package[] -function M.get_installed_packages() - return get_packages(M.get_installed_package_names()) -end - ----@return string[] -function M.get_all_package_names() - return _.keys(pkg_index) -end - ----@return Package[] -function M.get_all_packages() - return get_packages(M.get_all_package_names()) -end - -return M diff --git a/lua/mason/core/package/init.lua b/lua/mason/core/package/init.lua index 994a15a9..933e0e96 100644 --- a/lua/mason/core/package/init.lua +++ b/lua/mason/core/package/init.lua @@ -1,3 +1,4 @@ +local registry = require "mason-registry" local a = require "mason.core.async" local _ = require "mason.core.functional" local installer = require "mason.core.installer" @@ -5,7 +6,6 @@ local InstallationHandle = require "mason.core.installer.handle" local Optional = require "mason.core.optional" local log = require "mason.log" local EventEmitter = require "mason.core.EventEmitter" -local indexer = require "mason.core.package.indexer" local receipt = require "mason.core.receipt" local fs = require "mason.core.fs" local path = require "mason.core.path" @@ -113,11 +113,11 @@ function Package:install(opts) result :on_success(function() self:emit("install:success", handle) - indexer:emit("package:install:success", self, handle) + registry:emit("package:install:success", self, handle) end) :on_failure(function() self:emit("install:failed", handle) - indexer:emit("package:install:failed", self, handle) + registry:emit("package:install:failed", self, handle) end) end, handle, @@ -154,7 +154,7 @@ function Package:unlink() end function Package:is_installed() - return indexer.is_installed(self.name) + return registry.is_installed(self.name) end function Package:get_handle() diff --git a/lua/mason/packages/angular-language-server/init.lua b/lua/mason/packages/angular-language-server/init.lua deleted file mode 100644 index 6a7e42fc..00000000 --- a/lua/mason/packages/angular-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "angular-language-server", - desc = [[The Angular Language Service provides code editors with a way to get completions, errors, hints, and navigation inside Angular templates. It works with external templates in separate HTML files, and also with in-line templates.]], - homepage = "https://angular.io/guide/language-service", - languages = { Pkg.Lang.Angular }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@angular/language-server", "typescript", bin = { "ngserver" } }, -} diff --git a/lua/mason/packages/ansible-language-server/init.lua b/lua/mason/packages/ansible-language-server/init.lua deleted file mode 100644 index d1749e71..00000000 --- a/lua/mason/packages/ansible-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "ansible-language-server", - desc = [[Ansible Language Server]], - homepage = "https://github.com/ansible/ansible-language-server", - languages = { Pkg.Lang.Ansible }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@ansible/ansible-language-server", bin = { "ansible-language-server" } }, -} diff --git a/lua/mason/packages/apex-language-server/init.lua b/lua/mason/packages/apex-language-server/init.lua deleted file mode 100644 index 0dad40e6..00000000 --- a/lua/mason/packages/apex-language-server/init.lua +++ /dev/null @@ -1,40 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local github_client = require "mason.core.managers.github.client" -local Optional = require "mason.core.optional" -local path = require "mason.core.path" -local _ = require "mason.core.functional" - -local JAR_FILE = "apex-jorje-lsp.jar" -return Pkg.new { - name = "apex-language-server", - desc = [[The Apex Language Server is an IDE-agnostic way for tools to access code-editing capabilities such as code completion, go to definition, find all usage, and refactoring.]], - homepage = "https://github.com/forcedotcom/salesforcedx-vscode", - languages = { Pkg.Lang.Apex }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "forcedotcom/salesforcedx-vscode" - - -- See https://github.com/forcedotcom/salesforcedx-vscode/issues/4184#issuecomment-1146052086 - ---@type GitHubRelease - local release = github_client - .fetch_releases(repo) - :map(_.find_first(_.prop_satisfies(_.compose(_.gt(0), _.length), "assets"))) - :map(Optional.of_nilable) - :get_or_throw() -- Result unwrap - :or_else_throw "Failed to find release with assets." -- Optional unwrap - - github - .unzip_release_file({ - version = Optional.of(release.tag_name), - asset_file = _.compose(_.format "salesforcedx-vscode-apex-%s.vsix", _.gsub("^v", "")), - repo = repo, - }) - .with_receipt() - - ctx.fs:rename(path.concat { "extension", "out", JAR_FILE }, JAR_FILE) - ctx.fs:rmrf "extension" - end, -} diff --git a/lua/mason/packages/arduino-language-server/init.lua b/lua/mason/packages/arduino-language-server/init.lua deleted file mode 100644 index 7801ae79..00000000 --- a/lua/mason/packages/arduino-language-server/init.lua +++ /dev/null @@ -1,44 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "arduino-language-server", - desc = [[An Arduino Language Server based on Clangd to Arduino code autocompletion]], - homepage = "https://github.com/arduino/arduino-language-server", - languages = { Pkg.Lang.Arduino }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local opts = { - repo = "arduino/arduino-language-server", - asset_file = function(release) - local target = coalesce( - when(platform.is.mac, "arduino-language-server_%s_macOS_64bit.tar.gz"), - when(platform.is.linux_x64, "arduino-language-server_%s_Linux_64bit.tar.gz"), - when(platform.is.linux_x86, "arduino-language-server_%s_Linux_32bit.tar.gz"), - when(platform.is.linux_arm64, "arduino-language-server_%s_Linux_ARM64.tar.gz"), - when(platform.is.win_x64, "arduino-language-server_0.6.0_Windows_64bit.zip"), - when(platform.is.win_x86, "arduino-language-server_0.6.0_Windows_32bit.zip") - ) - - return target and target:format(release) - end, - } - - platform.when { - unix = function() - github.untargz_release_file(opts).with_receipt() - ctx:link_bin("arduino-language-server", "arduino-language-server") - end, - win = function() - github.unzip_release_file(opts).with_receipt() - ctx:link_bin("arduino-language-server", "arduino-language-server.exe") - end, - } - end, -} diff --git a/lua/mason/packages/asm-lsp/init.lua b/lua/mason/packages/asm-lsp/init.lua deleted file mode 100644 index f28afba9..00000000 --- a/lua/mason/packages/asm-lsp/init.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Pkg = require "mason.core.package" -local cargo = require "mason.core.managers.cargo" - -return Pkg.new { - name = "asm-lsp", - desc = [[Language server for NASM/GAS/GO Assembly]], - homepage = "https://github.com/bergercookie/asm-lsp", - languages = { Pkg.Lang.Assembly }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("asm-lsp", { - bin = { "asm-lsp" }, - }), -} diff --git a/lua/mason/packages/astro-language-server/init.lua b/lua/mason/packages/astro-language-server/init.lua deleted file mode 100644 index 03a4cb79..00000000 --- a/lua/mason/packages/astro-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "astro-language-server", - desc = [[The Astro language server, its structure is inspired by the Svelte Language Server.]], - homepage = "https://github.com/withastro/language-tools", - languages = { Pkg.Lang.Astro }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@astrojs/language-server", bin = { "astro-ls" } }, -} diff --git a/lua/mason/packages/awk-language-server/init.lua b/lua/mason/packages/awk-language-server/init.lua deleted file mode 100644 index 39f9cc54..00000000 --- a/lua/mason/packages/awk-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "awk-language-server", - desc = [[Language Server for AWK]], - homepage = "https://github.com/Beaglefoot/awk-language-server", - languages = { Pkg.Lang.AWK }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "awk-language-server", bin = { "awk-language-server" } }, -} diff --git a/lua/mason/packages/bash-language-server/init.lua b/lua/mason/packages/bash-language-server/init.lua deleted file mode 100644 index eb5fb68d..00000000 --- a/lua/mason/packages/bash-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "bash-language-server", - desc = [[A language server for Bash]], - homepage = "https://github.com/bash-lsp/bash-language-server", - languages = { Pkg.Lang.Bash }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "bash-language-server", bin = { "bash-language-server" } }, -} diff --git a/lua/mason/packages/beancount-language-server/init.lua b/lua/mason/packages/beancount-language-server/init.lua deleted file mode 100644 index 579f5777..00000000 --- a/lua/mason/packages/beancount-language-server/init.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Pkg = require "mason.core.package" -local cargo = require "mason.core.managers.cargo" - -return Pkg.new { - name = "beancount-language-server", - desc = [[A Language Server Protocol (LSP) for beancount files]], - homepage = "https://github.com/polarmutex/beancount-language-server", - languages = { Pkg.Lang.Beancount }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("beancount-language-server", { - bin = { "beancount-language-server" }, - }), -} diff --git a/lua/mason/packages/bicep-lsp/init.lua b/lua/mason/packages/bicep-lsp/init.lua deleted file mode 100644 index 0e1eff44..00000000 --- a/lua/mason/packages/bicep-lsp/init.lua +++ /dev/null @@ -1,31 +0,0 @@ -local Pkg = require "mason.core.package" -local path = require "mason.core.path" -local std = require "mason.core.managers.std" -local github = require "mason.core.managers.github" - -return Pkg.new { - name = "bicep-lsp", - desc = [[Bicep is a declarative language for describing and deploying Azure resources]], - homepage = "https://github.com/Azure/bicep", - languages = { Pkg.Lang.Bicep }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - std.ensure_executable("dotnet", { help_url = "https://dotnet.microsoft.com/download" }) - ctx.fs:mkdir "vscode" - ctx:chdir("vscode", function() - -- The bicep-langserver.zip is a bit broken on POSIX systems - so we download it via the VSCode distribution - -- instead. See https://github.com/Azure/bicep/issues/3704. - github - .unzip_release_file({ - repo = "Azure/bicep", - asset_file = "vscode-bicep.vsix", - }) - .with_receipt() - end) - ctx.fs:rename(path.concat { "vscode", "extension", "bicepLanguageServer" }, "langserver") - ctx.fs:rmrf "vscode" - ctx:chdir "langserver" - end, -} diff --git a/lua/mason/packages/bsl-language-server/init.lua b/lua/mason/packages/bsl-language-server/init.lua deleted file mode 100644 index be28e06b..00000000 --- a/lua/mason/packages/bsl-language-server/init.lua +++ /dev/null @@ -1,23 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" - -return Pkg.new { - name = "bsl-language-server", - desc = [[Implementation of Language Server Protocol for Language 1C (BSL)]], - homepage = "https://1c-syntax.github.io/bsl-language-server", - languages = { Pkg.Lang["1С:Enterprise"], Pkg.Lang.OneScript }, - categories = { Pkg.Cat.LSP }, - ---@async - install = function() - github - .download_release_file({ - repo = "1c-syntax/bsl-language-server", - out_file = "bsl-lsp.jar", - asset_file = function(release) - local version = release:gsub("^v", "") - return ("bsl-language-server-%s-exec.jar"):format(version) - end, - }) - .with_receipt() - end, -} diff --git a/lua/mason/packages/ccls/common.lua b/lua/mason/packages/ccls/common.lua deleted file mode 100644 index 728943a9..00000000 --- a/lua/mason/packages/ccls/common.lua +++ /dev/null @@ -1,47 +0,0 @@ -local path = require "mason.core.path" -local platform = require "mason.core.platform" -local installer = require "mason.core.installer" -local git = require "mason.core.managers.git" -local github = require "mason.core.managers.github" -local Optional = require "mason.core.optional" - ----@async ----@param opts {llvm_dir: string} -return function(opts) - local ctx = installer.context() - local clang_resource_dir = path.concat { ctx.package:get_install_path(), "clang-resource" } - local install_prefix = ctx.cwd:get() - - local source = github.tag { repo = "MaskRay/ccls" } - source.with_receipt() - - ctx.fs:mkdir "ccls-git" - ctx:chdir("ccls-git", function() - git.clone { "https://github.com/MaskRay/ccls", recursive = true, version = Optional.of(source.tag) } - ctx.spawn.cmake { - "-DCMAKE_BUILD_TYPE=Release", - "-DUSE_SYSTEM_RAPIDJSON=OFF", - "-DCMAKE_FIND_FRAMEWORK=LAST", - "-Wno-dev", - ("-DCMAKE_INSTALL_PREFIX=%s"):format(install_prefix), - Optional.of_nilable(opts.llvm_dir) - :map(function(llvm_dir) - return { - ("-DCMAKE_PREFIX_PATH=%s"):format(llvm_dir), - -- On Mac we use Homebrew LLVM which will persist after installation. - -- On Linux, and when a custom llvm_dir is provided, its clang resource dir will be the only - -- artifact persisted after installation, as the locally installed llvm installation will be - -- cleaned up after compilation. - not platform.is_mac and ("-DCLANG_RESOURCE_DIR=%s"):format(clang_resource_dir) or vim.NIL, - } - end) - :or_else(vim.NIL), - platform.is_mac and "-DCMAKE_OSX_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" or vim.NIL, - } - - ctx.spawn.make { "install" } - end) - ctx.fs:rmrf "ccls-git" - - ctx:link_bin("ccls", path.concat { "bin", "ccls" }) -end diff --git a/lua/mason/packages/ccls/init.lua b/lua/mason/packages/ccls/init.lua deleted file mode 100644 index 2d42f25d..00000000 --- a/lua/mason/packages/ccls/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" - -return Pkg.new { - name = "ccls", - desc = [[C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting]], - homepage = "https://github.com/MaskRay/ccls", - languages = { Pkg.Lang.C, Pkg.Lang["C++"], Pkg.Lang["Obective-C"] }, - categories = { Pkg.Cat.LSP }, - ---@async - install = function() - platform.when { - mac = require "mason.packages.ccls.mac", - linux = require "mason.packages.ccls.linux", - } - end, -} diff --git a/lua/mason/packages/ccls/linux.lua b/lua/mason/packages/ccls/linux.lua deleted file mode 100644 index 96a1859b..00000000 --- a/lua/mason/packages/ccls/linux.lua +++ /dev/null @@ -1,73 +0,0 @@ -local path = require "mason.core.path" -local platform = require "mason.core.platform" -local installer = require "mason.core.installer" -local github = require "mason.core.managers.github" -local _ = require "mason.core.functional" -local Result = require "mason.core.result" -local Optional = require "mason.core.optional" - -local ccls_installer = require "mason.packages.ccls.common" - -local coalesce, when = _.coalesce, _.when - ----@param release string -local function normalize_llvm_release(release) - -- Strip the "llvmorg-" prefix from tags (llvm releases tags like llvmorg-13.0.0) - local normalized_release = release:gsub("^llvmorg%-", "") - return normalized_release -end - ----@async -local function llvm_installer() - local ctx = installer.context() - local os_dist = platform.os_distribution() - - local asset_name = coalesce( - when( - platform.arch == "x64", - coalesce( - when( - os_dist.id == "ubuntu" and os_dist.version.major >= 20, - "clang+llvm-%s-x86_64-linux-gnu-ubuntu-20.04" - ), - when( - os_dist.id == "ubuntu" and os_dist.version.major >= 16, - "clang+llvm-%s-x86_64-linux-gnu-ubuntu-16.04" - ) - ) - ), - when(platform.arch == "arm64", "clang+llvm-%s-aarch64-linux-gnu"), - when(platform.arch == "armv7", "clang+llvm-%s-armv7a-linux-gnueabihf") - ) - - local source = github.untarxz_release_file { - repo = "llvm/llvm-project", - version = Optional.of "llvmorg-13.0.0", - asset_file = function(release) - local normalized_release = normalize_llvm_release(release) - return asset_name and ("%s.tar.xz"):format(asset_name):format(normalized_release) - end, - } - - ctx.fs:rename(asset_name:format(normalize_llvm_release(source.release)), "llvm") - -- We move the clang headers out, because they need to be persisted - ctx.fs:rename(path.concat { "llvm", "lib", "clang", normalize_llvm_release(source.release) }, "clang-resource") - - return path.concat { ctx.cwd:get(), "llvm" } -end - ----@async -return function() - local ctx = installer.context() - Result.run_catching(llvm_installer) - :map(function(llvm_dir) - ccls_installer { llvm_dir = llvm_dir } - ctx.fs:rmrf "llvm" - end) - :recover(function() - pcall(function() - ctx.fs:rmrf "llvm" - end) - ccls_installer {} - end) -end diff --git a/lua/mason/packages/ccls/mac.lua b/lua/mason/packages/ccls/mac.lua deleted file mode 100644 index 907bd548..00000000 --- a/lua/mason/packages/ccls/mac.lua +++ /dev/null @@ -1,22 +0,0 @@ -local path = require "mason.core.path" -local platform = require "mason.core.platform" -local installer = require "mason.core.installer" -local fs = require "mason.core.fs" - -local ccls_installer = require "mason.packages.ccls.common" - ----@async -return function() - local ctx = installer.context() - local homebrew_prefix = platform.get_homebrew_prefix():get_or_throw() - local llvm_dir = path.concat { homebrew_prefix, "opt", "llvm", "lib", "cmake" } - if not fs.async.dir_exists(llvm_dir) then - ctx.stdio_sink.stderr( - ( - "LLVM does not seem to be installed on this system (looked in %q). Please install LLVM via Homebrew:\n $ brew install llvm\n" - ):format(llvm_dir) - ) - error "Unable to find LLVM." - end - ccls_installer { llvm_dir = llvm_dir } -end diff --git a/lua/mason/packages/chrome-debug-adapter/init.lua b/lua/mason/packages/chrome-debug-adapter/init.lua deleted file mode 100644 index 29085399..00000000 --- a/lua/mason/packages/chrome-debug-adapter/init.lua +++ /dev/null @@ -1,35 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local git = require "mason.core.managers.git" -local _ = require "mason.core.functional" -local path = require "mason.core.path" -local Optional = require "mason.core.optional" - -return Pkg.new { - name = "chrome-debug-adapter", - desc = [[Debug your JavaScript code running in Google Chrome.]], - homepage = "https://github.com/Microsoft/vscode-chrome-debug", - languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local source = github.tag { repo = "Microsoft/vscode-chrome-debug" } - source.with_receipt() - git.clone { "https://github.com/Microsoft/vscode-chrome-debug", version = Optional.of(source.tag) } - ctx.spawn.npm { "install" } - ctx.spawn.npm { "run", "build" } - pcall(function() - -- this errors for some reason - but it effectively reduces the node_modules/ size by ~98% - ctx.spawn.npm { "install", "--production" } - end) - -- vscode-chrome-debug comes with a lot of extra baggage - ctx.fs:rmrf "images" - ctx.fs:rmrf "testdata" - ctx.fs:rmrf ".git" - ctx:link_bin( - "chrome-debug-adapter", - ctx:write_node_exec_wrapper("chrome-debug-adapter", path.concat { "out", "src", "chromeDebug.js" }) - ) - end, -} diff --git a/lua/mason/packages/clangd/init.lua b/lua/mason/packages/clangd/init.lua deleted file mode 100644 index 6f5657b1..00000000 --- a/lua/mason/packages/clangd/init.lua +++ /dev/null @@ -1,40 +0,0 @@ -local Pkg = require "mason.core.package" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local github = require "mason.core.managers.github" -local path = require "mason.core.path" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "clangd", - desc = [[clangd understands your C++ code and adds smart features to your editor: code completion, compile errors, go-to-definition and more.]], - homepage = "https://clangd.llvm.org", - languages = { Pkg.Lang.C, Pkg.Lang["C++"] }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local source = github.unzip_release_file { - repo = "clangd/clangd", - asset_file = function(release) - local target = coalesce( - when(platform.is.mac, "clangd-mac-%s.zip"), - when(platform.is.linux_x64, "clangd-linux-%s.zip"), - when(platform.is.win_x64, "clangd-windows-%s.zip") - ) - return target and target:format(release) - end, - } - source.with_receipt() - ctx.fs:rename(("clangd_%s"):format(source.release), "clangd") - ctx:link_bin( - "clangd", - path.concat { - "clangd", - "bin", - platform.is.win and "clangd.exe" or "clangd", - } - ) - end, -} diff --git a/lua/mason/packages/clarity-lsp/init.lua b/lua/mason/packages/clarity-lsp/init.lua deleted file mode 100644 index 3c2b6da8..00000000 --- a/lua/mason/packages/clarity-lsp/init.lua +++ /dev/null @@ -1,29 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local github = require "mason.core.managers.github" -local _ = require "mason.core.functional" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "clarity-lsp", - desc = [[Language Server Protocol implementation for Clarity.]], - homepage = "https://github.com/hirosystems/clarity-lsp", - languages = { Pkg.Lang.Clarity }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "hirosystems/clarity-lsp", - asset_file = coalesce( - when(platform.is.mac, "clarity-lsp-macos-x64.zip"), - when(platform.is.linux_x64, "clarity-lsp-linux-x64.zip"), - when(platform.is.win_x64, "clarity-lsp-windows-x64.zip") - ), - }) - .with_receipt() - ctx:link_bin("clarity-lsp", platform.is.win and "clarity-lsp.exe" or "clarity-lsp") - end, -} diff --git a/lua/mason/packages/clojure-lsp/init.lua b/lua/mason/packages/clojure-lsp/init.lua deleted file mode 100644 index 78e8461e..00000000 --- a/lua/mason/packages/clojure-lsp/init.lua +++ /dev/null @@ -1,33 +0,0 @@ -local Pkg = require "mason.core.package" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "clojure-lsp", - desc = [[A Language Server for Clojure(script). Taking a Cursive-like approach of statically analyzing code.]], - homepage = "https://clojure-lsp.io", - languages = { Pkg.Lang.Clojure, Pkg.Lang.ClojureScript }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "clojure-lsp/clojure-lsp", - asset_file = coalesce( - when(platform.is.mac_arm64, "clojure-lsp-native-macos-aarch64.zip"), - when(platform.is.mac_x64, "clojure-lsp-native-macos-amd64.zip"), - when(platform.is.linux_x64, "clojure-lsp-native-linux-amd64.zip"), - when(platform.is.linux_arm64, "clojure-lsp-native-linux-aarch64.zip"), - when(platform.is_win, "clojure-lsp-native-windows-amd64.zip") - ), - }) - .with_receipt() - std.chmod("+x", { "clojure-lsp" }) - ctx:link_bin("clojure-lsp", platform.is.win and "clojure-lsp.exe" or "clojure-lsp") - end, -} diff --git a/lua/mason/packages/cmake-language-server/init.lua b/lua/mason/packages/cmake-language-server/init.lua deleted file mode 100644 index 9c5089ad..00000000 --- a/lua/mason/packages/cmake-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local pip3 = require "mason.core.managers.pip3" - -return Pkg.new { - name = "cmake-language-server", - desc = [[CMake LSP Implementation]], - homepage = "https://github.com/regen100/cmake-language-server", - languages = { Pkg.Lang.CMake }, - categories = { Pkg.Cat.LSP }, - install = pip3.packages { "cmake-language-server", bin = { "cmake-language-server" } }, -} diff --git a/lua/mason/packages/codelldb/init.lua b/lua/mason/packages/codelldb/init.lua deleted file mode 100644 index ee12f761..00000000 --- a/lua/mason/packages/codelldb/init.lua +++ /dev/null @@ -1,34 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local path = require "mason.core.path" - -return Pkg.new { - name = "codelldb", - desc = [[A native debugger based on LLDB]], - homepage = "https://github.com/vadimcn/vscode-lldb", - languages = { Pkg.Lang.C, Pkg.Lang["C++"], Pkg.Lang.Rust }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "vadimcn/vscode-lldb", - asset_file = _.coalesce( - _.when(platform.is.mac_x64, "codelldb-x86_64-darwin.vsix"), - _.when(platform.is.mac_arm64, "codelldb-aarch64-darwin.vsix"), - _.when(platform.is.linux_x64, "codelldb-x86_64-linux.vsix"), - _.when(platform.is.linux_arm64, "codelldb-aarch64-linux.vsix"), - _.when(platform.is.linux_arm, "codelldb-arm-linux.vsix"), - _.when(platform.is.win_x64, "codelldb-x86_64-windows.vsix") - ), - }) - .with_receipt() - ctx:link_bin( - "codelldb", - path.concat { "extension", "adapter", platform.is.win and "codelldb.exe" or "codelldb" } - ) - end, -} diff --git a/lua/mason/packages/codeql/init.lua b/lua/mason/packages/codeql/init.lua deleted file mode 100644 index 849c355d..00000000 --- a/lua/mason/packages/codeql/init.lua +++ /dev/null @@ -1,30 +0,0 @@ -local Pkg = require "mason.core.package" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local github = require "mason.core.managers.github" -local path = require "mason.core.path" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "codeql", - desc = [[Discover vulnerabilities across a codebase with CodeQL, our industry-leading semantic code analysis engine. CodeQL lets you query code as though it were data. Write a query to find all variants of a vulnerability, eradicating it forever. Then share your query to help others do the same.]], - homepage = "https://github.com/github/codeql-cli-binaries", - languages = { Pkg.Lang.CodeQL }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "github/codeql-cli-binaries", - asset_file = coalesce( - when(platform.is.mac, "codeql-osx64.zip"), - when(platform.is.linux_x64, "codeql-linux64.zip"), - when(platform.is.win_x64, "codeql-win64.zip") - ), - }) - .with_receipt() - ctx:link_bin("codeql", path.concat { "codeql", platform.is.win and "codeql.cmd" or "codeql" }) - end, -} diff --git a/lua/mason/packages/cpptools/init.lua b/lua/mason/packages/cpptools/init.lua deleted file mode 100644 index 1ef5ffa2..00000000 --- a/lua/mason/packages/cpptools/init.lua +++ /dev/null @@ -1,42 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local path = require "mason.core.path" - -return Pkg.new { - name = "cpptools", - desc = [[Official repository for the Microsoft C/C++ extension for VS Code.]], - homepage = "https://github.com/microsoft/vscode-cpptools", - languages = { Pkg.Lang.C, Pkg.Lang["C++"], Pkg.Lang.Rust }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "microsoft/vscode-cpptools", - asset_file = _.coalesce( - _.when(platform.is.mac_x64, "cpptools-osx.vsix"), - _.when(platform.is.mac_arm64, "cpptools-osx-arm64.vsix"), - _.when(platform.is.linux_x64, "cpptools-linux.vsix"), - _.when(platform.is.linux_arm64, "cpptools-linux-aarch64.vsix"), - _.when(platform.is.linux_arm, "cpptools-linux-armhf.vsix"), - _.when(platform.is.win_x64, "cpptools-win64.vsix"), - _.when(platform.is.win_arm64, "cpptools-win-arm64.vsix"), - _.when(platform.is.win_x86, "cpptools-win32.vsix") - ), - }) - .with_receipt() - - local debug_executable = path.concat { - "extension", - "debugAdapters", - "bin", - platform.is.win and "OpenDebugAD7.exe" or "OpenDebugAD7", - } - std.chmod("+x", debug_executable) - ctx:link_bin("OpenDebugAD7", debug_executable) - end, -} diff --git a/lua/mason/packages/crystalline/init.lua b/lua/mason/packages/crystalline/init.lua deleted file mode 100644 index 22d426fc..00000000 --- a/lua/mason/packages/crystalline/init.lua +++ /dev/null @@ -1,31 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "crystalline", - desc = [[A Language Server Protocol implementation for Crystal. 🔮]], - homepage = "https://github.com/elbywan/crystalline", - languages = { Pkg.Lang.Crystal }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .gunzip_release_file({ - repo = "elbywan/crystalline", - asset_file = coalesce( - when(platform.is.mac_x64, "crystalline_x86_64-apple-darwin.gz"), - when(platform.is.linux_x64, "crystalline_x86_64-unknown-linux-gnu.gz") - ), - out_file = "crystalline", - }) - .with_receipt() - std.chmod("+x", { "crystalline" }) - ctx:link_bin("crystalline", "crystalline") - end, -} diff --git a/lua/mason/packages/csharp-language-server/init.lua b/lua/mason/packages/csharp-language-server/init.lua deleted file mode 100644 index 1147cf28..00000000 --- a/lua/mason/packages/csharp-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local dotnet = require "mason.core.managers.dotnet" - -return Pkg.new { - name = "csharp-language-server", - desc = [[Roslyn-based LSP language server for C#]], - homepage = "https://github.com/razzmatazz/csharp-language-server", - languages = { Pkg.Lang["C#"] }, - categories = { Pkg.Cat.LSP }, - install = dotnet.package("csharp-ls", { bin = { "csharp-ls" } }), -} diff --git a/lua/mason/packages/css-lsp/init.lua b/lua/mason/packages/css-lsp/init.lua deleted file mode 100644 index c1562aec..00000000 --- a/lua/mason/packages/css-lsp/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "css-lsp", - desc = [[Language Server Protocol implementation for CSS, SCSS & LESS.]], - homepage = "https://github.com/microsoft/vscode-css-languageservice", - languages = { Pkg.Lang.CSS, Pkg.Lang.SCSS, Pkg.Lang.LESS }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "vscode-langservers-extracted", bin = { "vscode-css-language-server" } }, -} diff --git a/lua/mason/packages/cssmodules-language-server/init.lua b/lua/mason/packages/cssmodules-language-server/init.lua deleted file mode 100644 index 098a167f..00000000 --- a/lua/mason/packages/cssmodules-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "cssmodules-language-server", - desc = [[autocompletion and go-to-defintion for cssmodules]], - homepage = "https://github.com/antonk52/cssmodules-language-server", - languages = { Pkg.Lang.CSS }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "cssmodules-language-server", bin = { "cssmodules-language-server" } }, -} diff --git a/lua/mason/packages/cucumber-language-server/init.lua b/lua/mason/packages/cucumber-language-server/init.lua deleted file mode 100644 index 7e6cd44c..00000000 --- a/lua/mason/packages/cucumber-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "cucumber-language-server", - desc = [[Cucumber Language Server]], - homepage = "https://github.com/cucumber/language-server", - languages = { Pkg.Lang.Cucumber }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@cucumber/language-server", bin = { "cucumber-language-server" } }, -} diff --git a/lua/mason/packages/debugpy/init.lua b/lua/mason/packages/debugpy/init.lua deleted file mode 100644 index 79e71825..00000000 --- a/lua/mason/packages/debugpy/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local pip3 = require "mason.core.managers.pip3" - -return Pkg.new { - name = "debugpy", - desc = [[An implementation of the Debug Adapter Protocol for Python]], - homepage = "https://github.com/microsoft/debugpy", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.DAP }, - install = pip3.packages { "debugpy" }, -} diff --git a/lua/mason/packages/delve/init.lua b/lua/mason/packages/delve/init.lua deleted file mode 100644 index eb6c9e59..00000000 --- a/lua/mason/packages/delve/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local go = require "mason.core.managers.go" - -return Pkg.new { - name = "delve", - desc = [[Delve is a debugger for the Go programming language.]], - homepage = "https://github.com/go-delve/delve", - languages = { Pkg.Lang.Go }, - categories = { Pkg.Cat.DAP }, - install = go.packages { "github.com/go-delve/delve/cmd/dlv", bin = { "dlv" } }, -} diff --git a/lua/mason/packages/deno/init.lua b/lua/mason/packages/deno/init.lua deleted file mode 100644 index 1ec24302..00000000 --- a/lua/mason/packages/deno/init.lua +++ /dev/null @@ -1,30 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "deno", - desc = [[Deno (/ˈdiːnoʊ/, pronounced dee-no) is a JavaScript, TypeScript, and WebAssembly runtime with secure defaults and a great developer experience.]], - homepage = "https://deno.land/manual/language_server/overview", - languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, - categories = { Pkg.Cat.LSP, Pkg.Cat.Runtime }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "denoland/deno", - asset_file = coalesce( - when(platform.is.mac_arm64, "deno-aarch64-apple-darwin.zip"), - when(platform.is.mac_x64, "deno-x86_64-apple-darwin.zip"), - when(platform.is.linux_x64, "deno-x86_64-unknown-linux-gnu.zip"), - when(platform.is.win_x64, "deno-x86_64-pc-windows-msvc.zip") - ), - }) - .with_receipt() - ctx:link_bin("deno", platform.is.win and "deno.exe" or "deno") - end, -} diff --git a/lua/mason/packages/dhall-lsp/init.lua b/lua/mason/packages/dhall-lsp/init.lua deleted file mode 100644 index 85f7ac23..00000000 --- a/lua/mason/packages/dhall-lsp/init.lua +++ /dev/null @@ -1,65 +0,0 @@ -local Pkg = require "mason.core.package" -local path = require "mason.core.path" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local std = require "mason.core.managers.std" -local github_client = require "mason.core.managers.github.client" -local Optional = require "mason.core.optional" - -return Pkg.new { - name = "dhall-lsp", - desc = [[LSP server implementation for Dhall.]], - homepage = "https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-lsp-server", - languages = { Pkg.Lang.Dhall }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "dhall-lang/dhall-haskell" - ---@type GitHubRelease - local gh_release = ctx.requested_version - :map(function(version) - return github_client.fetch_release(repo, version) - end) - :or_else_get(function() - return github_client.fetch_latest_release(repo) - end) - :get_or_throw() - - local asset_name_pattern = assert( - _.coalesce( - _.when(platform.is.mac, "dhall%-lsp%-server%-.+%-x86_64%-macos.tar.bz2"), - _.when(platform.is.linux_x64, "dhall%-lsp%-server%-.+%-x86_64%-linux.tar.bz2"), - _.when(platform.is.win_x64, "dhall%-lsp%-server%-.+%-x86_64%-windows.zip") - ) - ) - local dhall_lsp_server_asset = - _.find_first(_.prop_satisfies(_.matches(asset_name_pattern), "name"), gh_release.assets) - Optional.of_nilable(dhall_lsp_server_asset) - :if_present( - ---@param asset GitHubReleaseAsset - function(asset) - if platform.is.win then - std.download_file(asset.browser_download_url, "dhall-lsp-server.zip") - std.unzip("dhall-lsp-server.zip", ".") - else - std.download_file(asset.browser_download_url, "dhall-lsp-server.tar.bz2") - std.untar "dhall-lsp-server.tar.bz2" - std.chmod("+x", { path.concat { "bin", "dhall-lsp-server" } }) - end - ctx.receipt:with_primary_source { - type = "github_release_file", - repo = repo, - file = asset.browser_download_url, - release = gh_release.tag_name, - } - end - ) - :or_else_throw "Unable to find the dhall-lsp-server release asset in the GitHub release." - - ctx:link_bin( - "dhall-lsp-server", - path.concat { "bin", platform.is.win and "dhall-lsp-server.exe" or "dhall-lsp-server" } - ) - end, -} diff --git a/lua/mason/packages/diagnostic-languageserver/init.lua b/lua/mason/packages/diagnostic-languageserver/init.lua deleted file mode 100644 index af69a0a4..00000000 --- a/lua/mason/packages/diagnostic-languageserver/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "diagnostic-languageserver", - desc = [[Diagnostic language server that integrates with linters.]], - homepage = "https://github.com/iamcco/diagnostic-languageserver", - languages = {}, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "diagnostic-languageserver", bin = { "diagnostic-languageserver" } }, -} diff --git a/lua/mason/packages/dockerfile-language-server/init.lua b/lua/mason/packages/dockerfile-language-server/init.lua deleted file mode 100644 index b81b6197..00000000 --- a/lua/mason/packages/dockerfile-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "dockerfile-language-server", - desc = [[A language server for Dockerfiles powered by Node.js, TypeScript, and VSCode technologies.]], - homepage = "https://github.com/rcjsuen/dockerfile-language-server-nodejs", - languages = { Pkg.Lang.Dockerfile }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "dockerfile-language-server-nodejs", bin = { "docker-langserver" } }, -} diff --git a/lua/mason/packages/dot-language-server/init.lua b/lua/mason/packages/dot-language-server/init.lua deleted file mode 100644 index 32520c85..00000000 --- a/lua/mason/packages/dot-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "dot-language-server", - desc = [[A language server for the DOT language]], - homepage = "https://github.com/nikeee/dot-language-server", - languages = { Pkg.Lang.DOT }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "dot-language-server", bin = { "dot-language-server" } }, -} diff --git a/lua/mason/packages/efm/init.lua b/lua/mason/packages/efm/init.lua deleted file mode 100644 index b91e375e..00000000 --- a/lua/mason/packages/efm/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local go = require "mason.core.managers.go" - -return Pkg.new { - name = "efm", - desc = [[General purpose Language Server]], - homepage = "https://github.com/mattn/efm-langserver", - languages = {}, - categories = { Pkg.Cat.LSP }, - install = go.packages { "github.com/mattn/efm-langserver", bin = { "efm-langserver" } }, -} diff --git a/lua/mason/packages/elixir-ls/init.lua b/lua/mason/packages/elixir-ls/init.lua deleted file mode 100644 index 8e164fed..00000000 --- a/lua/mason/packages/elixir-ls/init.lua +++ /dev/null @@ -1,21 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" - -return Pkg.new { - name = "elixir-ls", - desc = [[A frontend-independent IDE "smartness" server for Elixir. Implements the "Language Server Protocol" standard and provides debugger support via the "Debug Adapter Protocol"]], - homepage = "https://github.com/elixir-lsp/elixir-ls", - languages = { Pkg.Lang.Elixir }, - categories = { Pkg.Cat.LSP, Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "elixir-lsp/elixir-ls", - asset_file = "elixir-ls.zip", - }) - .with_receipt() - end, -} diff --git a/lua/mason/packages/elm-format/init.lua b/lua/mason/packages/elm-format/init.lua deleted file mode 100644 index e162ffdc..00000000 --- a/lua/mason/packages/elm-format/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "elm-format", - desc = [[elm-format formats Elm source code according to a standard set of rules based on the official Elm Style Guide]], - homepage = "https://github.com/avh4/elm-format", - languages = { Pkg.Lang.Elm }, - categories = { Pkg.Cat.Formatter }, - install = npm.packages { "elm-format", bin = { "elm-format" } }, -} diff --git a/lua/mason/packages/elm-language-server/init.lua b/lua/mason/packages/elm-language-server/init.lua deleted file mode 100644 index 847bed49..00000000 --- a/lua/mason/packages/elm-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "elm-language-server", - desc = [[Language server implementation for Elm]], - homepage = "https://github.com/elm-tooling/elm-language-server", - languages = { Pkg.Lang.Elm }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@elm-tooling/elm-language-server", bin = { "elm-language-server" } }, -} diff --git a/lua/mason/packages/ember-language-server/init.lua b/lua/mason/packages/ember-language-server/init.lua deleted file mode 100644 index 62bd701b..00000000 --- a/lua/mason/packages/ember-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "ember-language-server", - desc = [[Language Server Protocol implementation for Ember.js and Glimmer projects]], - homepage = "https://github.com/lifeart/ember-language-server", - languages = { Pkg.Lang.Ember }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@lifeart/ember-language-server", bin = { "ember-language-server" } }, -} diff --git a/lua/mason/packages/emmet-ls/init.lua b/lua/mason/packages/emmet-ls/init.lua deleted file mode 100644 index 6f9e3058..00000000 --- a/lua/mason/packages/emmet-ls/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "emmet-ls", - desc = [[Emmet support based on LSP.]], - homepage = "https://github.com/aca/emmet-ls", - languages = { Pkg.Lang.Emmet }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "emmet-ls", bin = { "emmet-ls" } }, -} diff --git a/lua/mason/packages/erlang-ls/init.lua b/lua/mason/packages/erlang-ls/init.lua deleted file mode 100644 index a6a22e0f..00000000 --- a/lua/mason/packages/erlang-ls/init.lua +++ /dev/null @@ -1,34 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local std = require "mason.core.managers.std" -local git = require "mason.core.managers.git" -local github = require "mason.core.managers.github" -local Optional = require "mason.core.optional" -local path = require "mason.core.path" - -local rebar3 = platform.is_win and "rebar3.cmd" or "rebar3" - -return Pkg.new { - name = "erlang-ls", - desc = [[Implementing features such as auto-complete or go-to-definition for a programming language is not trivial. Traditionally, this work had to be repeated for each development tool and it required a mix of expertise in both the targeted programming language and the programming language internally used by the development tool of choice.]], - languages = { Pkg.Lang.Erlang }, - categories = { Pkg.Cat.LSP }, - homepage = "https://erlang-ls.github.io/", - ---@async - ---@param ctx InstallContext - install = function(ctx) - std.ensure_executable(rebar3, { help_url = "http://rebar3.org/docs/" }) - - local repo = "erlang-ls/erlang_ls" - local source = github.tag { repo = repo } - source.with_receipt() - git.clone { ("https://github.com/%s.git"):format(repo), version = Optional.of(source.tag) } - - ctx.spawn[rebar3] { "escriptize" } - ctx.spawn[rebar3] { "as", "dap", "escriptize" } - ctx:link_bin( - "erlang_ls", - path.concat { "_build", "default", "bin", platform.is.win and "erlang_ls.bat" or "erlang_ls" } - ) - end, -} diff --git a/lua/mason/packages/esbonio/init.lua b/lua/mason/packages/esbonio/init.lua deleted file mode 100644 index 278f100a..00000000 --- a/lua/mason/packages/esbonio/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local pip3 = require "mason.core.managers.pip3" - -return Pkg.new { - name = "esbonio", - desc = [[A Language Server for Sphinx projects.]], - homepage = "https://pypi.org/project/esbonio/", - languages = { Pkg.Lang.Sphinx }, - categories = { Pkg.Cat.LSP }, - install = pip3.packages { "esbonio", bin = { "esbonio" } }, -} diff --git a/lua/mason/packages/eslint-lsp/init.lua b/lua/mason/packages/eslint-lsp/init.lua deleted file mode 100644 index b1d22e84..00000000 --- a/lua/mason/packages/eslint-lsp/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "eslint-lsp", - desc = [[Language Server Protocol implementation for ESLint. The server uses the ESLint library installed in the opened workspace folder. If the folder doesn't provide one the extension looks for a global install version.]], - homepage = "https://github.com/Microsoft/vscode-eslint", - languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "vscode-langservers-extracted", bin = { "vscode-eslint-language-server" } }, -} diff --git a/lua/mason/packages/firefox-debug-adapter/init.lua b/lua/mason/packages/firefox-debug-adapter/init.lua deleted file mode 100644 index fe5e4a44..00000000 --- a/lua/mason/packages/firefox-debug-adapter/init.lua +++ /dev/null @@ -1,29 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local git = require "mason.core.managers.git" -local _ = require "mason.core.functional" -local path = require "mason.core.path" -local Optional = require "mason.core.optional" - -return Pkg.new { - name = "firefox-debug-adapter", - desc = [[Debug your web application or browser extension in Firefox]], - homepage = "https://github.com/firefox-devtools/vscode-firefox-debug", - languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local source = github.tag { repo = "firefox-devtools/vscode-firefox-debug" } - source.with_receipt() - git.clone { "https://github.com/firefox-devtools/vscode-firefox-debug", version = Optional.of(source.tag) } - ctx:apply_patches(require "mason.packages.firefox-debug-adapter.patches") - ctx.spawn.npm { "install" } - ctx.spawn.npm { "run", "build" } - ctx.spawn.npm { "install", "--production" } - ctx:link_bin( - "firefox-debug-adapter", - ctx:write_node_exec_wrapper("firefox-debug-adapter", path.concat { "dist", "adapter.bundle.js" }) - ) - end, -} diff --git a/lua/mason/packages/firefox-debug-adapter/patches.lua b/lua/mason/packages/firefox-debug-adapter/patches.lua deleted file mode 100644 index 09896fdf..00000000 --- a/lua/mason/packages/firefox-debug-adapter/patches.lua +++ /dev/null @@ -1,32 +0,0 @@ -local fix_macos_build = [=====[ ---- a/webpack.config.js -+++ b/webpack.config.js -@@ -1,6 +1,14 @@ - const path = require('path'); - const CopyPlugin = require('copy-webpack-plugin'); - -+const externals = { -+ vscode: 'commonjs vscode', -+}; -+ -+if (process.platform === "darwin") { -+ externals["fsevents"] = 'commonjs fsevents'; -+} -+ - module.exports = { - context: path.resolve(__dirname, 'src'), - entry: { -@@ -19,9 +27,7 @@ module.exports = { - } - ] - }, -- externals: { -- vscode: 'commonjs vscode' -- }, -+ externals, - output: { - path: path.resolve(__dirname, 'dist'), - filename: '[name].bundle.js', -]=====] - -return { fix_macos_build } diff --git a/lua/mason/packages/flux-lsp/init.lua b/lua/mason/packages/flux-lsp/init.lua deleted file mode 100644 index fb757b47..00000000 --- a/lua/mason/packages/flux-lsp/init.lua +++ /dev/null @@ -1,14 +0,0 @@ -local Pkg = require "mason.core.package" -local cargo = require "mason.core.managers.cargo" - -return Pkg.new { - name = "flux-lsp", - desc = [[Implementation of Language Server Protocol for the Flux language]], - homepage = "https://github.com/influxdata/flux-lsp", - languages = { Pkg.Lang.Flux }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("https://github.com/influxdata/flux-lsp", { - git = true, - bin = { "flux-lsp" }, - }), -} diff --git a/lua/mason/packages/foam-language-server/init.lua b/lua/mason/packages/foam-language-server/init.lua deleted file mode 100644 index 6ff1b44c..00000000 --- a/lua/mason/packages/foam-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "foam-language-server", - desc = [[A language server for OpenFOAM case files]], - homepage = "https://github.com/FoamScience/foam-language-server", - languages = { Pkg.Lang.OpenFOAM }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "foam-language-server", bin = { "foam-ls" } }, -} diff --git a/lua/mason/packages/fortls/init.lua b/lua/mason/packages/fortls/init.lua deleted file mode 100644 index befd8cd3..00000000 --- a/lua/mason/packages/fortls/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local pip3 = require "mason.core.managers.pip3" - -return Pkg.new { - name = "fortls", - desc = [[fortls - Fortran Language Server]], - homepage = "https://github.com/gnikit/fortls", - languages = { Pkg.Lang.Fortran }, - categories = { Pkg.Cat.LSP }, - install = pip3.packages { "fortls", bin = { "fortls" } }, -} diff --git a/lua/mason/packages/fsautocomplete/init.lua b/lua/mason/packages/fsautocomplete/init.lua deleted file mode 100644 index 824aef7a..00000000 --- a/lua/mason/packages/fsautocomplete/init.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Pkg = require "mason.core.package" -local dotnet = require "mason.core.managers.dotnet" - -return Pkg.new { - name = "fsautocomplete", - desc = [[F# language server using Language Server Protocol]], - languages = { Pkg.Lang["F#"] }, - categories = { Pkg.Cat.LSP }, - homepage = "https://github.com/fsharp/FsAutoComplete", - install = dotnet.package("fsautocomplete", { - bin = { "fsautocomplete" }, - }), -} diff --git a/lua/mason/packages/go-debug-adapter/init.lua b/lua/mason/packages/go-debug-adapter/init.lua deleted file mode 100644 index 762506f8..00000000 --- a/lua/mason/packages/go-debug-adapter/init.lua +++ /dev/null @@ -1,28 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local _ = require "mason.core.functional" -local path = require "mason.core.path" -local platform = require "mason.core.platform" - -return Pkg.new { - name = "go-debug-adapter", - desc = [[Go debug adapter sourced from the VSCode Go extension.]], - homepage = "https://github.com/golang/vscode-go", - languages = { Pkg.Lang.Go }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "golang/vscode-go", - asset_file = _.compose(_.format "go-%s.vsix", _.gsub("^v", "")), - }) - .with_receipt() - - ctx:link_bin( - "go-debug-adapter", - ctx:write_node_exec_wrapper("go-debug-adapter", path.concat { "extension", "dist", "debugAdapter.js" }) - ) - end, -} diff --git a/lua/mason/packages/golangci-lint-langserver/init.lua b/lua/mason/packages/golangci-lint-langserver/init.lua deleted file mode 100644 index 94445679..00000000 --- a/lua/mason/packages/golangci-lint-langserver/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local go = require "mason.core.managers.go" - -return Pkg.new { - name = "golangci-lint-langserver", - desc = [[golangci-lint language server]], - homepage = "https://github.com/nametake/golangci-lint-langserver", - languages = { Pkg.Lang.Go }, - categories = { Pkg.Cat.LSP }, - install = go.packages { "github.com/nametake/golangci-lint-langserver", bin = { "golangci-lint-langserver" } }, -} diff --git a/lua/mason/packages/golangci-lint/init.lua b/lua/mason/packages/golangci-lint/init.lua deleted file mode 100644 index 2948858d..00000000 --- a/lua/mason/packages/golangci-lint/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local go = require "mason.core.managers.go" - -return Pkg.new { - name = "golangci-lint", - desc = [[golangci-lint is a fast Go linters runner. It runs linters in parallel, uses caching, supports yaml config, has integrations with all major IDE and has dozens of linters included.]], - homepage = "https://golangci-lint.run/", - languages = { Pkg.Lang.Go }, - categories = { Pkg.Cat.Linter }, - install = go.packages { "github.com/golangci/golangci-lint/cmd/golangci-lint", bin = { "golangci-lint" } }, -} diff --git a/lua/mason/packages/gopls/init.lua b/lua/mason/packages/gopls/init.lua deleted file mode 100644 index 39c4c74e..00000000 --- a/lua/mason/packages/gopls/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local go = require "mason.core.managers.go" - -return Pkg.new { - name = "gopls", - desc = [[gopls (pronounced "Go please") is the official Go language server developed by the Go team. It provides IDE features to any LSP-compatible editor.]], - homepage = "https://pkg.go.dev/golang.org/x/tools/gopls", - languages = { Pkg.Lang.Go }, - categories = { Pkg.Cat.LSP }, - install = go.packages { "golang.org/x/tools/gopls", bin = { "gopls" } }, -} diff --git a/lua/mason/packages/grammarly-languageserver/init.lua b/lua/mason/packages/grammarly-languageserver/init.lua deleted file mode 100644 index 2135a330..00000000 --- a/lua/mason/packages/grammarly-languageserver/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "grammarly-languageserver", - desc = [[A language server implementation on top of Grammarly's SDK.]], - homepage = "https://github.com/znck/grammarly", - languages = { Pkg.Lang.Markdown, Pkg.Lang.Text }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "grammarly-languageserver", bin = { "grammarly-languageserver" } }, -} diff --git a/lua/mason/packages/graphql-language-service-cli/init.lua b/lua/mason/packages/graphql-language-service-cli/init.lua deleted file mode 100644 index d01fec0c..00000000 --- a/lua/mason/packages/graphql-language-service-cli/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "graphql-language-service-cli", - desc = [[GraphQL Language Service provides an interface for building GraphQL language services for IDEs.]], - homepage = "https://www.npmjs.com/package/graphql-language-service-cli", - languages = { Pkg.Lang.GraphQL }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "graphql-language-service-cli", "graphql", bin = { "graphql-lsp" } }, -} diff --git a/lua/mason/packages/groovy-language-server/init.lua b/lua/mason/packages/groovy-language-server/init.lua deleted file mode 100644 index d6dc84d2..00000000 --- a/lua/mason/packages/groovy-language-server/init.lua +++ /dev/null @@ -1,22 +0,0 @@ -local Pkg = require "mason.core.package" -local std = require "mason.core.managers.std" -local git = require "mason.core.managers.git" - -return Pkg.new { - name = "groovy-language-server", - desc = [[A language server for Groovy]], - homepage = "https://github.com/GroovyLanguageServer/groovy-language-server", - languages = { Pkg.Lang.Groovy }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - std.ensure_executable "javac" - git.clone({ "https://github.com/GroovyLanguageServer/groovy-language-server" }).with_receipt() - ctx:promote_cwd() - ctx.spawn.gradlew { - "build", - with_paths = { ctx.cwd:get() }, - } - end, -} diff --git a/lua/mason/packages/haskell-language-server/init.lua b/lua/mason/packages/haskell-language-server/init.lua deleted file mode 100644 index 7282386a..00000000 --- a/lua/mason/packages/haskell-language-server/init.lua +++ /dev/null @@ -1,66 +0,0 @@ -local a = require "mason.core.async" -local _ = require "mason.core.functional" -local Pkg = require "mason.core.package" -local std = require "mason.core.managers.std" -local github_client = require "mason.core.managers.github.client" -local path = require "mason.core.path" -local platform = require "mason.core.platform" - -return Pkg.new { - name = "haskell-language-server", - desc = [[Official Haskell Language Server implementation.]], - homepage = "https://haskell-language-server.readthedocs.io/en/latest/", - languages = { Pkg.Lang.Haskell }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "haskell/haskell-language-server" - local release = ctx.requested_version:or_else_get(function() - return github_client - .fetch_latest_release(repo) - :map( - ---@param release GitHubRelease - function(release) - return release.tag_name - end - ) - :get_or_throw() - end) - - std.ensure_executable("ghcup", { help_url = "https://www.haskell.org/ghcup/" }) - ctx:promote_cwd() - ctx.spawn.ghcup { "install", "hls", release, "-i", ctx.cwd:get() } - - ctx.receipt:with_primary_source(ctx.receipt.github_release(repo, release)) - platform.when { - unix = function() - ctx:link_bin( - "haskell-language-server-wrapper", - path.concat { "bin", "haskell-language-server-wrapper" } - ) - - a.scheduler() - for _, executable_abs_path in - ipairs( - vim.fn.glob(path.concat { ctx.cwd:get(), "bin", "haskell-language-server-[0-9]*" }, true, true) - ) - do - local executable = vim.fn.fnamemodify(executable_abs_path, ":t") - ctx:link_bin(executable, path.concat { "bin", executable }) - end - end, - win = function() - ctx:link_bin("haskell-language-server-wrapper", "haskell-language-server-wrapper.exe") - - a.scheduler() - for _, executable_abs_path in - ipairs(vim.fn.glob(path.concat { ctx.cwd:get(), "haskell-language-server-[0-9]*" }, true, true)) - do - local executable = vim.fn.fnamemodify(executable_abs_path, ":t:r") - ctx:link_bin(executable, ("%s.exe"):format(executable)) - end - end, - } - end, -} diff --git a/lua/mason/packages/haxe-language-server/init.lua b/lua/mason/packages/haxe-language-server/init.lua deleted file mode 100644 index 22f6b5be..00000000 --- a/lua/mason/packages/haxe-language-server/init.lua +++ /dev/null @@ -1,25 +0,0 @@ -local Pkg = require "mason.core.package" -local std = require "mason.core.managers.std" -local git = require "mason.core.managers.git" -local npm = require "mason.core.managers.npm" -local path = require "mason.core.path" - -return Pkg.new { - name = "haxe-language-server", - desc = [[Language Server Protocol implementation for the Haxe language]], - homepage = "https://github.com/vshaxe/haxe-language-server", - languages = { Pkg.Lang.Haxe }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - std.ensure_executable("haxelib", { help_url = "https://haxe.org" }) - git.clone({ "https://github.com/vshaxe/haxe-language-server" }).with_receipt() - ctx.spawn.npm { "install" } - npm.exec { "lix", "run", "vshaxe-build", "-t", "language-server" } - ctx:link_bin( - "haxe-language-server", - ctx:write_node_exec_wrapper("haxe-language-server", path.concat { "bin", "server.js" }) - ) - end, -} diff --git a/lua/mason/packages/hoon-language-server/init.lua b/lua/mason/packages/hoon-language-server/init.lua deleted file mode 100644 index c9fbbcbc..00000000 --- a/lua/mason/packages/hoon-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "hoon-language-server", - desc = [[Language Server for Hoon. Middleware to translate between the Language Server Protocol and your Urbit.]], - homepage = "https://github.com/urbit/hoon-language-server", - languages = { Pkg.Lang.Hoon }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@urbit/hoon-language-server", bin = { "hoon-language-server" } }, -} diff --git a/lua/mason/packages/html-lsp/init.lua b/lua/mason/packages/html-lsp/init.lua deleted file mode 100644 index 40e41bdb..00000000 --- a/lua/mason/packages/html-lsp/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "html-lsp", - desc = [[Language Server Protocol implementation for HTML.]], - homepage = "https://github.com/microsoft/vscode-html-languageservice", - languages = { Pkg.Lang.HTML }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "vscode-langservers-extracted", bin = { "vscode-html-language-server" } }, -} diff --git a/lua/mason/packages/intelephense/init.lua b/lua/mason/packages/intelephense/init.lua deleted file mode 100644 index 4f0fc2fc..00000000 --- a/lua/mason/packages/intelephense/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "intelephense", - desc = [[Professional PHP tooling for any Language Server Protocol capable editor.]], - homepage = "https://intelephense.com", - languages = { Pkg.Lang.PHP }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "intelephense", bin = { "intelephense" } }, -} diff --git a/lua/mason/packages/jdtls/init.lua b/lua/mason/packages/jdtls/init.lua deleted file mode 100644 index e3bf7e65..00000000 --- a/lua/mason/packages/jdtls/init.lua +++ /dev/null @@ -1,44 +0,0 @@ -local Pkg = require "mason.core.package" -local path = require "mason.core.path" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local installer = require "mason.core.installer" -local eclipse = require "mason.core.clients.eclipse" -local std = require "mason.core.managers.std" - ----@async -local function download_jdtls() - local ctx = installer.context() - local version = ctx.requested_version:or_else_get(function() - return eclipse.fetch_latest_jdtls_version():get_or_throw() - end) - - std.download_file( - ("https://download.eclipse.org/jdtls/snapshots/jdt-language-server-%s.tar.gz"):format(version), - "archive.tar.gz" - ) - std.untar "archive.tar.gz" - - ctx.receipt:with_primary_source { - type = "jdtls", - version = version, - } -end - ----@async -local function download_lombok() - std.download_file("https://projectlombok.org/downloads/lombok.jar", "lombok.jar") -end - -return Pkg.new { - name = "jdtls", - desc = [[Java language server]], - homepage = "https://github.com/eclipse/eclipse.jdt.ls", - languages = { Pkg.Lang.Java }, - categories = { Pkg.Cat.LSP }, - ---@async - install = function() - std.ensure_executable "java" - installer.run_concurrently { download_jdtls, download_lombok } - end, -} diff --git a/lua/mason/packages/jedi-language-server/init.lua b/lua/mason/packages/jedi-language-server/init.lua deleted file mode 100644 index 7c7d2e25..00000000 --- a/lua/mason/packages/jedi-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local pip3 = require "mason.core.managers.pip3" - -return Pkg.new { - name = "jedi-language-server", - desc = [[A Python language server exclusively for Jedi. If Jedi supports it well, this language server should too.]], - homepage = "https://github.com/pappasam/jedi-language-server", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.LSP }, - install = pip3.packages { "jedi-language-server", bin = { "jedi-language-server" } }, -} diff --git a/lua/mason/packages/json-lsp/init.lua b/lua/mason/packages/json-lsp/init.lua deleted file mode 100644 index c6be908b..00000000 --- a/lua/mason/packages/json-lsp/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "json-lsp", - desc = [[Language Server Protocol implementation for JSON.]], - homepage = "https://github.com/microsoft/vscode-json-languageservice", - languages = { Pkg.Lang.JSON }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "vscode-langservers-extracted", bin = { "vscode-json-language-server" } }, -} diff --git a/lua/mason/packages/jsonnet-language-server/init.lua b/lua/mason/packages/jsonnet-language-server/init.lua deleted file mode 100644 index 04c2516a..00000000 --- a/lua/mason/packages/jsonnet-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local go = require "mason.core.managers.go" - -return Pkg.new { - name = "jsonnet-language-server", - desc = [[A Language Server Protocol (LSP) server for Jsonnet (https://jsonnet.org)]], - homepage = "https://github.com/grafana/jsonnet-language-server", - languages = { Pkg.Lang.Jsonnet }, - categories = { Pkg.Cat.LSP }, - install = go.packages { "github.com/grafana/jsonnet-language-server", bin = { "jsonnet-language-server" } }, -} diff --git a/lua/mason/packages/julia-lsp/init.lua b/lua/mason/packages/julia-lsp/init.lua deleted file mode 100644 index e8aaee6a..00000000 --- a/lua/mason/packages/julia-lsp/init.lua +++ /dev/null @@ -1,59 +0,0 @@ -local Pkg = require "mason.core.package" -local path = require "mason.core.path" -local std = require "mason.core.managers.std" -local github = require "mason.core.managers.github" - -local server_script = [[ -using LanguageServer, SymbolServer, Pkg - -OLD_DEPOT_PATH = ARGS[1] -SYMBOLSTORE_PATH = ARGS[2] -ENV_PATH = ARGS[3] - -runserver( - stdin, - stdout, - ENV_PATH, - OLD_DEPOT_PATH, - nothing, - SYMBOLSTORE_PATH -) -]] - -return Pkg.new { - name = "julia-lsp", - desc = [[An implementation of the Microsoft Language Server Protocol for the Julia language.]], - homepage = "https://github.com/julia-vscode/LanguageServer.jl", - languages = { Pkg.Lang.Julia }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - std.ensure_executable("julia", { help_url = "https://julialang.org/downloads/" }) - - ctx.fs:mkdir "vscode-package" - ctx:chdir("vscode-package", function() - github - .unzip_release_file({ - repo = "julia-vscode/julia-vscode", - asset_file = function(version) - local version_number = version:gsub("^v", "") - return ("language-julia-%s.vsix"):format(version_number) - end, - }) - .with_receipt() - end) - - ctx.fs:rename( - path.concat { - "vscode-package", - "extension", - "scripts", - }, - "scripts" - ) - ctx.fs:rmrf "vscode-package" - - ctx.fs:write_file("nvim-lsp.jl", server_script) - end, -} diff --git a/lua/mason/packages/kotlin-language-server/init.lua b/lua/mason/packages/kotlin-language-server/init.lua deleted file mode 100644 index eb04b990..00000000 --- a/lua/mason/packages/kotlin-language-server/init.lua +++ /dev/null @@ -1,30 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local platform = require "mason.core.platform" -local path = require "mason.core.path" - -return Pkg.new { - name = "kotlin-language-server", - desc = [[Kotlin code completion, linting and more for any editor/IDE using the Language Server Protocol]], - homepage = "https://github.com/fwcd/kotlin-language-server", - languages = { Pkg.Lang.Kotlin }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "fwcd/kotlin-language-server", - asset_file = "server.zip", - }) - .with_receipt() - ctx:link_bin( - "kotlin-language-server", - path.concat { - "server", - "bin", - platform.is.win and "kotlin-language-server.bat" or "kotlin-language-server", - } - ) - end, -} diff --git a/lua/mason/packages/ktlint/init.lua b/lua/mason/packages/ktlint/init.lua deleted file mode 100644 index 0bcdf236..00000000 --- a/lua/mason/packages/ktlint/init.lua +++ /dev/null @@ -1,40 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" -local path = require "mason.core.path" -local platform = require "mason.core.platform" - -return Pkg.new { - name = "ktlint", - desc = [[An anti-bikeshedding Kotlin linter with built-in formatter]], - homepage = "https://github.com/pinterest/ktlint", - languages = { Pkg.Lang.Kotlin }, - categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "pinterest/ktlint", - asset_file = "ktlint", - out_file = "ktlint", - }) - .with_receipt() - - platform.when { - unix = function() - std.chmod("+x", { "ktlint" }) - ctx:link_bin("ktlint", "ktlint") - end, - win = function() - ctx:link_bin( - "ktlint", - ctx:write_shell_exec_wrapper( - "ktlint", - ("java -jar %q"):format(path.concat { ctx.package:get_install_path(), "ktlint" }) - ) - ) - end, - } - end, -} diff --git a/lua/mason/packages/lelwel/init.lua b/lua/mason/packages/lelwel/init.lua deleted file mode 100644 index 6bb326e1..00000000 --- a/lua/mason/packages/lelwel/init.lua +++ /dev/null @@ -1,14 +0,0 @@ -local Pkg = require "mason.core.package" -local cargo = require "mason.core.managers.cargo" - -return Pkg.new { - name = "lelwel", - desc = [[LL(1) parser generator for Rust]], - homepage = "https://github.com/0x2a-42/lelwel", - languages = { Pkg.Lang.Lelwel }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("lelwel", { - features = "lsp,cli", - bin = { "lelwel-ls", "llw" }, - }), -} diff --git a/lua/mason/packages/lemminx/init.lua b/lua/mason/packages/lemminx/init.lua deleted file mode 100644 index be094e14..00000000 --- a/lua/mason/packages/lemminx/init.lua +++ /dev/null @@ -1,41 +0,0 @@ -local Pkg = require "mason.core.package" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local std = require "mason.core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "lemminx", - desc = [[XML Language Server]], - homepage = "https://github.com/eclipse/lemminx", - languages = { Pkg.Lang.XML }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local unzipped_file = assert( - coalesce( - when(platform.is.mac, "lemminx-osx-x86_64"), - when(platform.is.linux_x64, "lemminx-linux"), - when(platform.is.win, "lemminx-win32") - ), - ("Your operating system or architecture (%q) is not yet supported."):format(platform.arch) - ) - - std.download_file( - ("https://download.jboss.org/jbosstools/vscode/snapshots/lemminx-binary/%s/%s.zip"):format( - ctx.requested_version:or_else "0.19.2-655", -- TODO: resolve latest version dynamically - unzipped_file - ), - "lemminx.zip" - ) - std.unzip("lemminx.zip", ".") - ctx.fs:rename( - platform.is.win and ("%s.exe"):format(unzipped_file) or unzipped_file, - platform.is.win and "lemminx.exe" or "lemminx" - ) - ctx.receipt:with_primary_source(ctx.receipt.unmanaged) - ctx:link_bin("lemminx", platform.is.win and "lemminx.exe" or "lemminx") - end, -} diff --git a/lua/mason/packages/lemmy-help/init.lua b/lua/mason/packages/lemmy-help/init.lua deleted file mode 100644 index 1cd04e61..00000000 --- a/lua/mason/packages/lemmy-help/init.lua +++ /dev/null @@ -1,14 +0,0 @@ -local Pkg = require "mason.core.package" -local cargo = require "mason.core.managers.cargo" - -return Pkg.new { - name = "lemmy-help", - desc = [[Every one needs help, so lemmy-help you! A CLI to generate vim/nvim help doc from emmylua]], - homepage = "https://github.com/numToStr/lemmy-help", - categories = {}, - languages = { Pkg.Lang.Lua }, - install = cargo.crate("lemmy-help", { - features = "cli", - bin = { "lemmy-help" }, - }), -} diff --git a/lua/mason/packages/ltex-ls/init.lua b/lua/mason/packages/ltex-ls/init.lua deleted file mode 100644 index ba5e2bbc..00000000 --- a/lua/mason/packages/ltex-ls/init.lua +++ /dev/null @@ -1,72 +0,0 @@ -local Pkg = require "mason.core.package" -local a = require "mason.core.async" -local installer = require "mason.core.installer" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local github = require "mason.core.managers.github" -local path = require "mason.core.path" - -local coalesce, when = _.coalesce, _.when - -local repo = "valentjn/ltex-ls" ----@async -local function download_platform_dependent() - local ctx = installer.context() - local source = platform.when { - unix = function() - return github.untargz_release_file { - repo = repo, - asset_file = function(version) - local target = coalesce( - when(platform.is_mac, "ltex-ls-%s-mac-x64.tar.gz"), - when(platform.is_linux, "ltex-ls-%s-linux-x64.tar.gz"), - when(platform.is_win, "ltex-ls-%s-windows-x64.zip") - ) - return target:format(version) - end, - } - end, - win = function() - return github.unzip_release_file { - repo = repo, - asset_file = function(version) - return ("ltex-ls-%s-windows-x64.zip"):format(version) - end, - } - end, - } - source.with_receipt() - ctx.fs:rename(("ltex-ls-%s"):format(source.release), "ltex-ls") -end - -local function download_platform_independent() - local ctx = installer.context() - local source = github.untargz_release_file { - repo = repo, - asset_file = _.format "ltex-ls-%s.tar.gz", - } - source.with_receipt() - ctx.fs:rename(("ltex-ls-%s"):format(source.release), "ltex-ls") -end - -return Pkg.new { - name = "ltex-ls", - desc = [[LTeX Language Server: LSP language server for LanguageTool 🔍✔️ with support for LaTeX 🎓, Markdown 📝, and others]], - homepage = "https://valentjn.github.io/ltex/", - languages = { Pkg.Lang.Text, Pkg.Lang.Markdown, Pkg.Lang.LaTeX }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - if vim.in_fast_event() then - a.scheduler() - end - if vim.fn.executable "java" == 1 then - download_platform_independent() - else - download_platform_dependent() - end - ctx:link_bin("ltex-ls", path.concat { "ltex-ls", "bin", platform.is.win and "ltex-ls.bat" or "ltex-ls" }) - ctx:link_bin("ltex-cli", path.concat { "ltex-ls", "bin", platform.is.win and "ltex-cli.bat" or "ltex-cli" }) - end, -} diff --git a/lua/mason/packages/lua-language-server/init.lua b/lua/mason/packages/lua-language-server/init.lua deleted file mode 100644 index cb23e344..00000000 --- a/lua/mason/packages/lua-language-server/init.lua +++ /dev/null @@ -1,64 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" -local path = require "mason.core.path" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "lua-language-server", - desc = [[Lua Language Server]], - languages = { Pkg.Lang.Lua }, - categories = { Pkg.Cat.LSP }, - homepage = "https://github.com/sumneko/lua-language-server", - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "sumneko/vscode-lua", - asset_file = function(version) - local target = coalesce( - when(platform.is.mac_x64, "vscode-lua-%s-darwin-x64.vsix"), - when(platform.is.mac_arm64, "vscode-lua-%s-darwin-arm64.vsix"), - when(platform.is.linux_x64, "vscode-lua-%s-linux-x64.vsix"), - when(platform.is.linux_arm64, "vscode-lua-%s-linux-arm64.vsix"), - when(platform.is.win_x64, "vscode-lua-%s-win32-x64.vsix"), - when(platform.is.win_x86, "vscode-lua-%s-win32-ia32.vsix") - ) - - return target and target:format(version) - end, - }) - .with_receipt() - - platform.when { - unix = function() - ctx:link_bin( - "lua-language-server", - ctx:write_exec_wrapper( - "lua-language-server", - path.concat { - "extension", - "server", - "bin", - "lua-language-server", - } - ) - ) - end, - win = function() - ctx:link_bin( - "lua-language-server", - path.concat { - "extension", - "server", - "bin", - "lua-language-server.exe", - } - ) - end, - } - end, -} diff --git a/lua/mason/packages/marksman/init.lua b/lua/mason/packages/marksman/init.lua deleted file mode 100644 index f4efbe71..00000000 --- a/lua/mason/packages/marksman/init.lua +++ /dev/null @@ -1,32 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "marksman", - desc = [[Markdown LSP server providing completion, cross-references, diagnostics, and more.]], - homepage = "https://github.com/artempyanykh/marksman", - languages = { Pkg.Lang.Markdown }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "artempyanykh/marksman", - out_file = platform.is.win and "marksman.exe" or "marksman", - asset_file = coalesce( - when(platform.is.mac, "marksman-macos"), - when(platform.is.linux_x64, "marksman-linux"), - when(platform.is.win_x64, "marksman.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "marksman" }) - ctx:link_bin("marksman", platform.is.win and "marksman.exe" or "marksman") - end, -} diff --git a/lua/mason/packages/metamath-zero-lsp/init.lua b/lua/mason/packages/metamath-zero-lsp/init.lua deleted file mode 100644 index 97272fbb..00000000 --- a/lua/mason/packages/metamath-zero-lsp/init.lua +++ /dev/null @@ -1,24 +0,0 @@ -local Pkg = require "mason.core.package" -local git = require "mason.core.managers.git" -local platform = require "mason.core.platform" -local path = require "mason.core.path" - -return Pkg.new { - name = "metamath-zero-lsp", - desc = [[An MM0/MM1 server written in Rust.]], - homepage = "https://github.com/digama0/mm0", - languages = { Pkg.Lang["Metamath Zero"] }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - git.clone({ "https://github.com/digama0/mm0" }).with_receipt() - ctx:chdir("mm0-rs", function() - ctx.spawn.cargo { "build", "--release" } - end) - ctx:link_bin( - "mm0-rs", - path.concat { "mm0-rs", "target", "release", platform.is.win and "mm0-rs.exe" or "mm0-rs" } - ) - end, -} diff --git a/lua/mason/packages/mockdebug/init.lua b/lua/mason/packages/mockdebug/init.lua deleted file mode 100644 index 9898b2df..00000000 --- a/lua/mason/packages/mockdebug/init.lua +++ /dev/null @@ -1,23 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local git = require "mason.core.managers.git" -local _ = require "mason.core.functional" -local Optional = require "mason.core.optional" - -return Pkg.new { - name = "mockdebug", - desc = [[Mock Debug simulates a debug adapter. It supports step, continue, breakpoints, exceptions, and variable access but it is not connected to any real debugger.]], - homepage = "https://github.com/microsoft/vscode-mock-debug", - languages = {}, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local source = github.tag { repo = "microsoft/vscode-mock-debug" } - source.with_receipt() - git.clone { "https://github.com/microsoft/vscode-mock-debug", version = Optional.of(source.tag) } - ctx.spawn.npm { "install" } - ctx.spawn.npm { "run", "compile" } - ctx.spawn.npm { "install", "--production" } - end, -} diff --git a/lua/mason/packages/netcoredbg/init.lua b/lua/mason/packages/netcoredbg/init.lua deleted file mode 100644 index 81255ec2..00000000 --- a/lua/mason/packages/netcoredbg/init.lua +++ /dev/null @@ -1,42 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local _ = require "mason.core.functional" -local path = require "mason.core.path" -local platform = require "mason.core.platform" - -return Pkg.new { - name = "netcoredbg", - desc = [[NetCoreDbg is a managed code debugger with MI interface for CoreCLR.]], - homepage = "https://github.com/Samsung/netcoredbg", - languages = { Pkg.Lang[".NET"], Pkg.Lang["C#"] }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - platform.when { - unix = function() - github - .untargz_release_file({ - repo = "Samsung/netcoredbg", - asset_file = _.coalesce( - _.when(platform.is.mac, "netcoredbg-osx-amd64.tar.gz"), - _.when(platform.is.linux_x64, "netcoredbg-linux-amd64.tar.gz"), - _.when(platform.is.linux_arm64, "netcoredbg-linux-arm64.tar.gz") - ), - }) - .with_receipt() - ctx.fs:rename("netcoredbg", "build") - ctx:link_bin("netcoredbg", ctx:write_exec_wrapper("netcoredbg", path.concat { "build", "netcoredbg" })) - end, - win = function() - github - .unzip_release_file({ - repo = "Samsung/netcoredbg", - asset_file = _.when(platform.is.win_x64, "netcoredbg-win64.zip"), - }) - .with_receipt() - ctx:link_bin("netcoredbg", path.concat { "netcoredbg", "netcoredbg.exe" }) - end, - } - end, -} diff --git a/lua/mason/packages/nickel-lang-lsp/init.lua b/lua/mason/packages/nickel-lang-lsp/init.lua deleted file mode 100644 index 104162ba..00000000 --- a/lua/mason/packages/nickel-lang-lsp/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason.core.package" -local path = require "mason.core.path" -local cargo = require "mason.core.managers.cargo" -local git = require "mason.core.managers.git" - -return Pkg.new { - name = "nickel-lang-lsp", - desc = [[The Nickel Language Server (NLS) is a language server for the Nickel programming language. NLS offers error messages, type hints, and auto-completion right in your favorite LSP-enabled editor.]], - homepage = "https://nickel-lang.org/", - languages = { Pkg.Lang.Nickel }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("nickel-lang-lsp", { - bin = { "nls" }, - }), -} diff --git a/lua/mason/packages/nimlsp/init.lua b/lua/mason/packages/nimlsp/init.lua deleted file mode 100644 index 75dd0752..00000000 --- a/lua/mason/packages/nimlsp/init.lua +++ /dev/null @@ -1,22 +0,0 @@ -local Pkg = require "mason.core.package" -local git = require "mason.core.managers.git" -local github = require "mason.core.managers.github" -local platform = require "mason.core.platform" -local Optional = require "mason.core.optional" - -return Pkg.new { - name = "nimlsp", - desc = [[Language Server Protocol implementation for Nim]], - homepage = "https://github.com/PMunch/nimlsp", - languages = { Pkg.Lang.Nim }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local source = github.tag { repo = "PMunch/nimlsp" } - source.with_receipt() - git.clone { "https://github.com/PMunch/nimlsp", version = Optional.of(source.tag) } - ctx.spawn.nimble { "build", "-y", "--localdeps" } - ctx:link_bin("nimlsp", platform.is.win and "nimlsp.exe" or "nimlsp") - end, -} diff --git a/lua/mason/packages/node-debug2-adapter/init.lua b/lua/mason/packages/node-debug2-adapter/init.lua deleted file mode 100644 index 44b96c2d..00000000 --- a/lua/mason/packages/node-debug2-adapter/init.lua +++ /dev/null @@ -1,28 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local git = require "mason.core.managers.git" -local _ = require "mason.core.functional" -local path = require "mason.core.path" -local Optional = require "mason.core.optional" - -return Pkg.new { - name = "node-debug2-adapter", - desc = [[A debug adapter that supports debugging Node via the Chrome Debugging Protocol. No longer maintained.]], - homepage = "https://github.com/microsoft/vscode-node-debug2", - languages = { Pkg.Lang.JavaScript, Pkg.Lang.TypeScript }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local source = github.tag { repo = "microsoft/vscode-node-debug2" } - source.with_receipt() - git.clone { "https://github.com/microsoft/vscode-node-debug2", version = Optional.of(source.tag) } - ctx.spawn.npm { "install" } - ctx.spawn.npm { "run", "build" } - ctx.spawn.npm { "install", "--production" } - ctx:link_bin( - "node-debug2-adapter", - ctx:write_node_exec_wrapper("node-debug2-adapter", path.concat { "out", "src", "nodeDebug.js" }) - ) - end, -} diff --git a/lua/mason/packages/ocaml-lsp/init.lua b/lua/mason/packages/ocaml-lsp/init.lua deleted file mode 100644 index b13f0f38..00000000 --- a/lua/mason/packages/ocaml-lsp/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local opam = require "mason.core.managers.opam" - -return Pkg.new { - name = "ocaml-lsp", - desc = [[OCaml Language Server Protocol implementation]], - homepage = "https://github.com/ocaml/ocaml-lsp", - languages = { Pkg.Lang.OCaml }, - categories = { Pkg.Cat.LSP }, - install = opam.packages { "ocaml-lsp-server", bin = { "ocamllsp" } }, -} diff --git a/lua/mason/packages/omnisharp-roslyn/init.lua b/lua/mason/packages/omnisharp-roslyn/init.lua deleted file mode 100644 index 95a91fe5..00000000 --- a/lua/mason/packages/omnisharp-roslyn/init.lua +++ /dev/null @@ -1,43 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "omnisharp-roslyn", - desc = [[OmniSharp server (HTTP, STDIO) based on Roslyn workspaces]], - homepage = "https://github.com/OmniSharp/omnisharp-roslyn", - languages = { Pkg.Lang["C#"] }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - ctx.fs:mkdir "omnisharp" - ctx:chdir("omnisharp", function() - github.unzip_release_file { - repo = "OmniSharp/omnisharp-roslyn", - asset_file = coalesce( - when(platform.is.mac_x64, "omnisharp-osx-x64-net6.0.zip"), - when(platform.is.mac_arm64, "omnisharp-osx-arm64-net6.0.zip"), - when(platform.is.linux_x64, "omnisharp-linux-x64-net6.0.zip"), - when(platform.is.linux_arm64, "omnisharp-linux-arm64-net6.0.zip"), - when(platform.is.win_x64, "omnisharp-win-x64-net6.0.zip"), - when(platform.is.win_arm64, "omnisharp-win-arm64-net6.0.zip") - ), - } - end) - - ctx.fs:mkdir "omnisharp-mono" - ctx:chdir("omnisharp-mono", function() - github - .unzip_release_file({ - repo = "OmniSharp/omnisharp-roslyn", - asset_file = "omnisharp-mono.zip", - }) - .with_receipt() - end) - end, -} diff --git a/lua/mason/packages/opencl-language-server/init.lua b/lua/mason/packages/opencl-language-server/init.lua deleted file mode 100644 index 7bb41a91..00000000 --- a/lua/mason/packages/opencl-language-server/init.lua +++ /dev/null @@ -1,44 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "opencl-language-server", - desc = [[Provides an OpenCL kernel diagnostics]], - homepage = "https://github.com/Galarius/opencl-language-server", - languages = { Pkg.Lang.OpenCL }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - platform.when { - unix = function() - local asset_file = coalesce( - when(platform.is.mac, "opencl-language-server-darwin-x86_64.tar.gz"), - when(platform.is.linux_x64, "opencl-language-server-linux-x86_64.tar.gz") - ) - github - .untargz_release_file({ - repo = "Galarius/opencl-language-server", - asset_file = asset_file, - }) - .with_receipt() - end, - win = function() - github - .unzip_release_file({ - repo = "Galarius/opencl-language-server", - asset_file = "opencl-language-server-win32-x86_64.zip", - }) - .with_receipt() - end, - } - ctx:link_bin( - "opencl-language-server", - platform.is.win and "opencl-language-server.exe" or "opencl-language-server" - ) - end, -} diff --git a/lua/mason/packages/perlnavigator/init.lua b/lua/mason/packages/perlnavigator/init.lua deleted file mode 100644 index 5825406f..00000000 --- a/lua/mason/packages/perlnavigator/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "perlnavigator", - desc = [[Perl Language Server that includes perl critic and code navigation]], - homepage = "https://github.com/bscan/PerlNavigator", - languages = { Pkg.Lang.Perl }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "perlnavigator-server" }, -} diff --git a/lua/mason/packages/php-debug-adapter/init.lua b/lua/mason/packages/php-debug-adapter/init.lua deleted file mode 100644 index cdd11074..00000000 --- a/lua/mason/packages/php-debug-adapter/init.lua +++ /dev/null @@ -1,27 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local _ = require "mason.core.functional" -local path = require "mason.core.path" - -return Pkg.new { - name = "php-debug-adapter", - desc = [[PHP Debug Adapter 🐞⛔]], - homepage = "https://github.com/xdebug/vscode-php-debug", - languages = { Pkg.Lang.PHP }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "xdebug/vscode-php-debug", - asset_file = _.compose(_.format "php-debug-%s.vsix", _.gsub("^v", "")), - }) - .with_receipt() - ctx.fs:rmrf(path.concat { "extension", "images" }) - ctx:link_bin( - "php-debug-adapter", - ctx:write_node_exec_wrapper("php-debug-adapter", path.concat { "extension", "out", "phpDebug.js" }) - ) - end, -} diff --git a/lua/mason/packages/phpactor/init.lua b/lua/mason/packages/phpactor/init.lua deleted file mode 100644 index b01eed50..00000000 --- a/lua/mason/packages/phpactor/init.lua +++ /dev/null @@ -1,25 +0,0 @@ -local Pkg = require "mason.core.package" -local composer = require "mason.core.managers.composer" -local git = require "mason.core.managers.git" -local github = require "mason.core.managers.github" -local platform = require "mason.core.platform" -local Optional = require "mason.core.optional" -local path = require "mason.core.path" - -return Pkg.new { - name = "phpactor", - desc = [[Phpactor is an intelligent Completion and Refactoring tool for PHP which is available over it’s own RPC protocol and as a Language Server.]], - homepage = "https://phpactor.readthedocs.io/en/master/", - languages = { Pkg.Lang.PHP }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - assert(platform.is.unix, "phpactor only supports UNIX environments.") - local source = github.tag { repo = "phpactor/phpactor" } - source.with_receipt() - git.clone { "https://github.com/phpactor/phpactor", version = Optional.of(source.tag) } - composer.install() - ctx:link_bin("phpactor", path.concat { "bin", "phpactor" }) - end, -} diff --git a/lua/mason/packages/powershell-editor-services/init.lua b/lua/mason/packages/powershell-editor-services/init.lua deleted file mode 100644 index 706077dc..00000000 --- a/lua/mason/packages/powershell-editor-services/init.lua +++ /dev/null @@ -1,21 +0,0 @@ -local Pkg = require "mason.core.package" -local std = require "mason.core.managers.std" -local github = require "mason.core.managers.github" - -return Pkg.new { - name = "powershell-editor-services", - desc = [[A common platform for PowerShell development support in any editor or application!]], - homepage = "https://github.com/PowerShell/PowerShellEditorServices", - languages = { Pkg.Lang.PowerShell }, - categories = { Pkg.Cat.LSP }, - ---@async - install = function() - std.ensure_executable("pwsh", { help_url = "https://github.com/PowerShell/PowerShell#get-powershell" }) - github - .unzip_release_file({ - repo = "PowerShell/PowerShellEditorServices", - asset_file = "PowerShellEditorServices.zip", - }) - .with_receipt() - end, -} diff --git a/lua/mason/packages/prisma-language-server/init.lua b/lua/mason/packages/prisma-language-server/init.lua deleted file mode 100644 index 0ca4ac61..00000000 --- a/lua/mason/packages/prisma-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "prisma-language-server", - desc = [[Any editor that is compatible with the Language Server Protocol can create clients that can use the features provided by this language server.]], - homepage = "https://github.com/prisma/language-tools", - languages = { Pkg.Lang.Prisma }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@prisma/language-server", bin = { "prisma-language-server" } }, -} diff --git a/lua/mason/packages/prosemd-lsp/init.lua b/lua/mason/packages/prosemd-lsp/init.lua deleted file mode 100644 index 4ffd9e06..00000000 --- a/lua/mason/packages/prosemd-lsp/init.lua +++ /dev/null @@ -1,32 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "prosemd-lsp", - desc = [[An experimental proofreading and linting language server for markdown files ✍️]], - homepage = "https://github.com/kitten/prosemd-lsp", - languages = { Pkg.Lang.Markdown }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "kitten/prosemd-lsp", - out_file = platform.is_win and "prosemd-lsp.exe" or "prosemd-lsp", - asset_file = coalesce( - when(platform.is_mac, "prosemd-lsp-macos"), - when(platform.is_linux and platform.arch == "x64", "prosemd-lsp-linux"), - when(platform.is_win and platform.arch == "x64", "prosemd-lsp-windows.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "prosemd-lsp" }) - ctx:link_bin("prosemd-lsp", platform.is.win and "prosemd-lsp.exe" or "prosemd-lsp") - end, -} diff --git a/lua/mason/packages/psalm/init.lua b/lua/mason/packages/psalm/init.lua deleted file mode 100644 index fd9a9c6d..00000000 --- a/lua/mason/packages/psalm/init.lua +++ /dev/null @@ -1,20 +0,0 @@ -local Pkg = require "mason.core.package" -local composer = require "mason.core.managers.composer" - -return Pkg.new { - name = "psalm", - desc = [[A static analysis tool for finding errors in PHP applications]], - homepage = "https://psalm.dev/", - languages = { Pkg.Lang.PHP }, - categories = { Pkg.Cat.LSP }, - install = composer.packages { - "vimeo/psalm", - bin = { - "psalm", - "psalm-language-server", - "psalm-plugin", - "psalm-refactor", - "psalter", - }, - }, -} diff --git a/lua/mason/packages/puppet-editor-services/init.lua b/lua/mason/packages/puppet-editor-services/init.lua deleted file mode 100644 index c9d8db55..00000000 --- a/lua/mason/packages/puppet-editor-services/init.lua +++ /dev/null @@ -1,26 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local platform = require "mason.core.platform" - -return Pkg.new { - name = "puppet-editor-services", - desc = [[Puppet Language Server for editors]], - homepage = "https://github.com/puppetlabs/puppet-editor-services", - languages = { Pkg.Lang.Puppet }, - categories = { Pkg.Cat.LSP, Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - assert(platform.is.unix, "puppet-editor-services only supports UNIX environments.") - github - .unzip_release_file({ - repo = "puppetlabs/puppet-editor-services", - asset_file = function(version) - return ("puppet_editor_services_%s.zip"):format(version) - end, - }) - .with_receipt() - ctx:link_bin("puppet-languageserver", "puppet-languageserver") - ctx:link_bin("puppet-debugserver", "puppet-debugserver") - end, -} diff --git a/lua/mason/packages/purescript-language-server/init.lua b/lua/mason/packages/purescript-language-server/init.lua deleted file mode 100644 index 86a4de25..00000000 --- a/lua/mason/packages/purescript-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "purescript-language-server", - desc = [[Node-based Language Server Protocol server for PureScript based on the PureScript IDE server (aka psc-ide / purs ide server). Used as the vscode plugin backend but should be compatible with other Language Server Client implementations.]], - languages = { Pkg.Lang.PureScript }, - categories = { Pkg.Cat.LSP }, - homepage = "https://github.com/nwolverson/purescript-language-server", - install = npm.packages { "purescript-language-server", bin = { "purescript-language-server" } }, -} diff --git a/lua/mason/packages/pyright/init.lua b/lua/mason/packages/pyright/init.lua deleted file mode 100644 index b03bbd5a..00000000 --- a/lua/mason/packages/pyright/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "pyright", - desc = [[Static type checker for Python]], - homepage = "https://github.com/microsoft/pyright", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "pyright", bin = { "pyright", "pyright-langserver" } }, -} diff --git a/lua/mason/packages/python-lsp-server/init.lua b/lua/mason/packages/python-lsp-server/init.lua deleted file mode 100644 index 2ba0e8d6..00000000 --- a/lua/mason/packages/python-lsp-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local pip3 = require "mason.core.managers.pip3" - -return Pkg.new { - name = "python-lsp-server", - desc = [[Fork of the python-language-server project, maintained by the Spyder IDE team and the community]], - homepage = "https://github.com/python-lsp/python-lsp-server", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.LSP }, - install = pip3.packages { "python-lsp-server[all]", bin = { "pylsp" } }, -} diff --git a/lua/mason/packages/quick-lint-js/init.lua b/lua/mason/packages/quick-lint-js/init.lua deleted file mode 100644 index 8719a835..00000000 --- a/lua/mason/packages/quick-lint-js/init.lua +++ /dev/null @@ -1,50 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local std = require "mason.core.managers.std" -local github = require "mason.core.managers.github" -local path = require "mason.core.path" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "quick-lint-js", - desc = [[Over 130× faster than ESLint, quick-lint-js gives you instant feedback as you code. Find bugs in your JavaScript before your finger leaves the keyboard. Lint any JavaScript file with no configuration.]], - homepage = "https://quick-lint-js.com/", - languages = { Pkg.Lang.JavaScript }, - categories = { Pkg.Cat.LSP, Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "quick-lint/quick-lint-js" - local release_file = assert( - coalesce( - when(platform.is.mac_x64, "macos.tar.gz"), - when(platform.is.mac_arm64, "macos-aarch64.tar.gz"), - when(platform.is.linux_x64, "linux.tar.gz"), - when(platform.is.linux_arm64, "linux-aarch64.tar.gz"), - when(platform.is.linux_arm, "linux-armhf.tar.gz"), - when(platform.is.win_x64, "windows.zip"), - when(platform.is.win_arm64, "windows-arm64.zip"), - when(platform.is.win_arm, "windows-arm.zip") - ), - "Current platform is not supported." - ) - - local source = github.tag { repo = repo } - source.with_receipt() - - local url = ("https://c.quick-lint-js.com/releases/%s/manual/%s"):format(source.tag, release_file) - platform.when { - unix = function() - std.download_file(url, "archive.tar.gz") - std.untar("archive.tar.gz", { strip_components = 1 }) - end, - win = function() - std.download_file(url, "archive.zip") - std.unzip("archive.zip", ".") - end, - } - ctx:link_bin("quick-lint-js", path.concat { "bin", platform.is.win and "quick-lint-js.exe" or "quick-lint-js" }) - end, -} diff --git a/lua/mason/packages/r-languageserver/init.lua b/lua/mason/packages/r-languageserver/init.lua deleted file mode 100644 index 508c6c72..00000000 --- a/lua/mason/packages/r-languageserver/init.lua +++ /dev/null @@ -1,71 +0,0 @@ -local Pkg = require "mason.core.package" - ----@param install_dir string -local function create_install_script(install_dir) - return ([[ -options(langserver_library = %q); -options(langserver_quiet = FALSE); -options(repos = list(CRAN = "http://cran.rstudio.com/")); -rlsLib <- getOption("langserver_library"); -.libPaths(new = rlsLib); - -didInstallRemotes <- FALSE; -tryCatch( - expr = { library("remotes") }, - error = function (e) { - install.packages("remotes", lib = rlsLib); - loadNamespace("remotes", lib.loc = rlsLib); - didInstallRemotes <- TRUE; - } -); - -# We set force = TRUE because this command will error if languageserversetup is already installed (even if it's at a -# different library location). -remotes::install_github("jozefhajnala/languageserversetup", lib = rlsLib, force = TRUE); - -if (didInstallRemotes) { - remove.packages("remotes", lib = rlsLib); -} - -loadNamespace("languageserversetup", lib.loc = rlsLib); -languageserversetup::languageserver_install( - fullReinstall = FALSE, - confirmBeforeInstall = FALSE, - strictLibrary = TRUE -); -library("languageserver", lib.loc = rlsLib); -]]):format(install_dir) -end - ----@param install_dir string -local function create_server_script(install_dir) - return ([[ -options("langserver_library" = %q); -rlsLib <- getOption("langserver_library"); -.libPaths(new = c(rlsLib, .libPaths())); -loadNamespace("languageserver", lib.loc = rlsLib); -languageserver::run(); - ]]):format(install_dir) -end - -return Pkg.new { - name = "r-languageserver", - desc = [[An implementation of the Language Server Protocol for R]], - homepage = "https://github.com/REditorSupport/languageserver", - languages = { Pkg.Lang.R }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - ctx.spawn.R { - "--no-save", - on_spawn = function(_, stdio) - local stdin = stdio[1] - stdin:write(create_install_script(ctx.cwd:get())) - stdin:close() - end, - } - ctx.fs:write_file("server.R", create_server_script(ctx.handle.package:get_install_path())) - ctx.receipt:with_primary_source(ctx.receipt.r_package "languageserver") - end, -} diff --git a/lua/mason/packages/reason-language-server/init.lua b/lua/mason/packages/reason-language-server/init.lua deleted file mode 100644 index ef9fd2f6..00000000 --- a/lua/mason/packages/reason-language-server/init.lua +++ /dev/null @@ -1,38 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" -local path = require "mason.core.path" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "reason-language-server", - desc = [[A language server for reason, in reason]], - homepage = "https://github.com/jaredly/reason-language-server", - languages = { Pkg.Lang.Reason }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local archive_name = coalesce( - when(platform.is.mac, "rls-macos"), - when(platform.is.linux_x64, "rls-linux"), - when(platform.is.win_x64, "rls-windows") - ) - github - .unzip_release_file({ - repo = "jaredly/reason-language-server", - asset_file = ("%s.zip"):format(archive_name), - }) - .with_receipt() - ctx.fs:rename(archive_name, "reason") - ctx:link_bin( - "reason-language-server", - path.concat { - "reason", - platform.is.win and "reason-language-server.exe" or "reason-language-server", - } - ) - end, -} diff --git a/lua/mason/packages/remark-language-server/init.lua b/lua/mason/packages/remark-language-server/init.lua deleted file mode 100644 index 24d7d8f7..00000000 --- a/lua/mason/packages/remark-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "remark-language-server", - desc = [[A language server to lint and format markdown files with remark]], - homepage = "https://github.com/remarkjs/remark-language-server", - languages = { Pkg.Lang.Markdown }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "remark-language-server", bin = { "remark-language-server" } }, -} diff --git a/lua/mason/packages/rescript-lsp/init.lua b/lua/mason/packages/rescript-lsp/init.lua deleted file mode 100644 index 8cf39adb..00000000 --- a/lua/mason/packages/rescript-lsp/init.lua +++ /dev/null @@ -1,21 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" - -return Pkg.new { - name = "rescript-lsp", - desc = [[Language Server for ReScript.]], - homepage = "https://github.com/rescript-lang/rescript-vscode", - languages = { Pkg.Lang.ReScript }, - categories = { Pkg.Cat.LSP }, - ---@async - install = function() - github - .unzip_release_file({ - repo = "rescript-lang/rescript-vscode", - asset_file = function(version) - return ("rescript-vscode-%s.vsix"):format(version) - end, - }) - .with_receipt() - end, -} diff --git a/lua/mason/packages/rnix-lsp/init.lua b/lua/mason/packages/rnix-lsp/init.lua deleted file mode 100644 index d97e9bef..00000000 --- a/lua/mason/packages/rnix-lsp/init.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Pkg = require "mason.core.package" -local cargo = require "mason.core.managers.cargo" - -return Pkg.new { - name = "rnix-lsp", - desc = [[Language Server for Nix]], - homepage = "https://github.com/nix-community/rnix-lsp", - languages = { Pkg.Lang.Nix }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("rnix-lsp", { - bin = { "rnix-lsp" }, - }), -} diff --git a/lua/mason/packages/robotframework-lsp/init.lua b/lua/mason/packages/robotframework-lsp/init.lua deleted file mode 100644 index 13f2f2b9..00000000 --- a/lua/mason/packages/robotframework-lsp/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local pip3 = require "mason.core.managers.pip3" - -return Pkg.new { - name = "robotframework-lsp", - desc = [[Language Server Protocol implementation for Robot Framework]], - homepage = "https://github.com/robocorp/robotframework-lsp", - languages = { Pkg.Lang["Robot Framework"] }, - categories = { Pkg.Cat.LSP }, - install = pip3.packages { "robotframework-lsp", bin = { "robotframework_ls" } }, -} diff --git a/lua/mason/packages/rome/init.lua b/lua/mason/packages/rome/init.lua deleted file mode 100644 index d0f1b59d..00000000 --- a/lua/mason/packages/rome/init.lua +++ /dev/null @@ -1,19 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" -local Optional = require "mason.core.optional" - -return Pkg.new { - name = "rome", - desc = [[Rome is a formatter, linter, bundler, and more for JavaScript, TypeScript, JSON, HTML, Markdown, and CSS.]], - homepage = "https://rome.tools", - languages = { Pkg.Lang.TypeScript, Pkg.Lang.JavaScript }, - categories = { Pkg.Cat.LSP, Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - ctx.requested_version = ctx.requested_version:or_(function() - return Optional.of "10.0.7-nightly.2021.7.27" - end) - npm.install({ "rome", bin = { "rome" } }).with_receipt() - end, -} diff --git a/lua/mason/packages/rust-analyzer/init.lua b/lua/mason/packages/rust-analyzer/init.lua deleted file mode 100644 index 8aa3b23f..00000000 --- a/lua/mason/packages/rust-analyzer/init.lua +++ /dev/null @@ -1,53 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "rust-analyzer", - desc = [[rust-analyzer is an implementation of Language Server Protocol for the Rust programming language. It provides features like completion and goto definition for many code editors, including VS Code, Emacs and Vim.]], - homepage = "https://rust-analyzer.github.io", - languages = { Pkg.Lang.Rust }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local libc = platform.get_libc() - - local asset_file = coalesce( - when(platform.is.mac_arm64, "rust-analyzer-aarch64-apple-darwin.gz"), - when(platform.is.mac_x64, "rust-analyzer-x86_64-apple-darwin.gz"), - when( - platform.is.linux, - coalesce( - when( - libc == "glibc", - coalesce( - when(platform.arch == "arm64", "rust-analyzer-aarch64-unknown-linux-gnu.gz"), - when(platform.arch == "x64", "rust-analyzer-x86_64-unknown-linux-gnu.gz") - ) - ), - when( - libc == "musl", - coalesce(when(platform.arch == "x64", "rust-analyzer-x86_64-unknown-linux-musl.gz")) - ) - ) - ), - when(platform.is.win_arm64, "rust-analyzer-aarch64-pc-windows-msvc.gz"), - when(platform.is.win_x64, "rust-analyzer-x86_64-pc-windows-msvc.gz") - ) - - github - .gunzip_release_file({ - repo = "rust-lang/rust-analyzer", - asset_file = asset_file, - out_file = platform.is.win and "rust-analyzer.exe" or "rust-analyzer", - }) - .with_receipt() - std.chmod("+x", { "rust-analyzer" }) - ctx:link_bin("rust-analyzer", platform.is.win and "rust-analyzer.exe" or "rust-analyzer") - end, -} diff --git a/lua/mason/packages/salt-lsp/init.lua b/lua/mason/packages/salt-lsp/init.lua deleted file mode 100644 index 3bb7d09c..00000000 --- a/lua/mason/packages/salt-lsp/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local pip3 = require "mason.core.managers.pip3" - -return Pkg.new { - name = "salt-lsp", - desc = [[Salt Language Server Protocol Server]], - languages = { Pkg.Lang.Salt }, - categories = { Pkg.Cat.LSP }, - homepage = "https://github.com/dcermak/salt-lsp", - install = pip3.packages { "salt-lsp", bin = { "salt_lsp_server" } }, -} diff --git a/lua/mason/packages/serve-d/init.lua b/lua/mason/packages/serve-d/init.lua deleted file mode 100644 index fc57719b..00000000 --- a/lua/mason/packages/serve-d/init.lua +++ /dev/null @@ -1,51 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "serve-d", - desc = [[Microsoft language server protocol implementation for D using workspace-d]], - homepage = "https://github.com/Pure-D/serve-d", - languages = { Pkg.Lang.D }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "Pure-D/serve-d" - platform.when { - unix = function() - github - .untarxz_release_file({ - repo = repo, - asset_file = function(release) - local target = coalesce( - when(platform.is.mac, "serve-d_%s-osx-x86_64.tar.xz"), - when(platform.is.linux_x64, "serve-d_%s-linux-x86_64.tar.xz") - ) - return target and target:format(release:gsub("^v", "")) - end, - }) - .with_receipt() - ctx:link_bin("serve-d", "serve-d") - end, - win = function() - github - .unzip_release_file({ - repo = repo, - asset_file = function(release) - local target = coalesce( - when(platform.arch == "x64", "serve-d_%s-windows-x86_64.zip"), - when(platform.arch == "x86", "serve-d_%s-windows-x86.zip") - ) - return target and target:format(release:gsub("^v", "")) - end, - }) - .with_receipt() - ctx:link_bin("serve-d", "serve-d.exe") - end, - } - end, -} diff --git a/lua/mason/packages/shellcheck/init.lua b/lua/mason/packages/shellcheck/init.lua deleted file mode 100644 index 634e42f1..00000000 --- a/lua/mason/packages/shellcheck/init.lua +++ /dev/null @@ -1,42 +0,0 @@ -local Pkg = require "mason.core.package" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" -local platform = require "mason.core.platform" - -return Pkg.new { - name = "shellcheck", - desc = [[ShellCheck, a static analysis tool for shell scripts]], - homepage = "https://www.shellcheck.net/", - categories = { Pkg.Cat.Linter }, - languages = { Pkg.Lang.Bash }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - platform.when { - unix = function() - github - .untarxz_release_file({ - strip_components = 1, - repo = "koalaman/shellcheck", - asset_file = _.coalesce( - _.when(platform.is.mac, _.format "shellcheck-%s.darwin.x86_64.tar.xz"), - _.when(platform.is.linux_x64, _.format "shellcheck-%s.linux.x86_64.tar.xz"), - _.when(platform.is.linux_arm64, _.format "shellcheck-%s.linux.aarch64.tar.xz"), - _.when(platform.is.linux_arm, _.format "shellcheck-%s.linux.armv6hf.tar.xz") - ), - }) - .with_receipt() - ctx:link_bin("shellcheck", "shellcheck") - end, - win = function() - github - .unzip_release_file({ - repo = "koalaman/shellcheck", - asset_file = _.coalesce(_.when(platform.is.win_x64, _.format "shellcheck-%s.zip")), - }) - .with_receipt() - ctx:link_bin("shellcheck", "shellcheck.exe") - end, - } - end, -} diff --git a/lua/mason/packages/shopify-theme-check/init.lua b/lua/mason/packages/shopify-theme-check/init.lua deleted file mode 100644 index df945530..00000000 --- a/lua/mason/packages/shopify-theme-check/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local gem = require "mason.core.managers.gem" - -return Pkg.new { - name = "shopify-theme-check", - desc = [[The Ultimate Shopify Theme Linter]], - homepage = "https://github.com/Shopify/theme-check", - languages = { Pkg.Lang.Liquid }, - categories = { Pkg.Cat.LSP, Pkg.Cat.Linter }, - install = gem.packages { "theme-check", bin = { "theme-check-language-server" } }, -} diff --git a/lua/mason/packages/slint-lsp/init.lua b/lua/mason/packages/slint-lsp/init.lua deleted file mode 100644 index 93973e4b..00000000 --- a/lua/mason/packages/slint-lsp/init.lua +++ /dev/null @@ -1,36 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local github = require "mason.core.managers.github" -local path = require "mason.core.path" - -return Pkg.new { - name = "slint-lsp", - desc = [[A LSP Server that adds features like auto-complete and live preview of the .slint files to many editors.]], - homepage = "https://slint-ui.com/", - languages = { Pkg.Lang.Slint }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "slint-ui/slint" - platform.when { - win = function() - github - .unzip_release_file({ - repo = repo, - asset_file = "slint-lsp-windows.zip", - }) - .with_receipt() - end, - linux = function() - github - .untargz_release_file({ - repo = repo, - asset_file = "slint-lsp-linux.tar.gz", - }) - .with_receipt() - end, - } - ctx:link_bin("slint-lsp", path.concat { "slint-lsp", platform.is.win and "slint-lsp.exe" or "slint-lsp" }) - end, -} diff --git a/lua/mason/packages/solang/init.lua b/lua/mason/packages/solang/init.lua deleted file mode 100644 index bcfc54f3..00000000 --- a/lua/mason/packages/solang/init.lua +++ /dev/null @@ -1,63 +0,0 @@ -local Pkg = require "mason.core.package" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local installer = require "mason.core.installer" -local std = require "mason.core.managers.std" -local github = require "mason.core.managers.github" - -local coalesce, when = _.coalesce, _.when - ----@async -local function download_solang() - local source = github - .download_release_file({ - repo = "hyperledger-labs/solang", - out_file = platform.is.win and "solang.exe" or "solang", - asset_file = coalesce( - when(platform.is.mac_x64, "solang-mac-intel"), - when(platform.is.mac_arm64, "solang-mac-arm"), - when(platform.is.linux_arm64, "solang-linux-arm64"), - when(platform.is.linux_x64, "solang-linux-x86-64"), - when(platform.is.win_x64, "solang.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "solang" }) - return source -end - ----@async ----Solang needs a build of llvm with some extra patches. -local function download_llvm() - local source = github.release_file { - repo = "hyperledger-labs/solang", - asset_file = coalesce( - when(platform.is.mac_x64, "llvm13.0-mac-intel.tar.xz"), - when(platform.is.mac_arm64, "llvm13.0-mac-arm.tar.xz"), - when(platform.is.linux_x64, "llvm13.0-linux-x86-64.tar.xz"), - when(platform.is.linux_arm64, "llvm13.0-linux-arm64.tar.xz"), - when(platform.is.win_x64, "llvm13.0-win.zip") - ), - } - if platform.is.win then - std.download_file(source.download_url, "llvm.zip") - std.unzip("llvm.zip", ".") - else - std.download_file(source.download_url, "llvm.tar.xz") - std.untar "llvm.tar.xz" - end -end - -return Pkg.new { - name = "solang", - desc = [[Solidity Compiler for Solana, Substrate, and ewasm]], - homepage = "https://solang.readthedocs.io/en/latest/", - languages = { Pkg.Lang.Solidity }, - categories = { Pkg.Cat.LSP, Pkg.Cat.Compiler }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - installer.run_concurrently { download_solang, download_llvm } - ctx:link_bin("solang", platform.is.win and "solang.exe" or "solang") - end, -} diff --git a/lua/mason/packages/solargraph/init.lua b/lua/mason/packages/solargraph/init.lua deleted file mode 100644 index 88bf3c19..00000000 --- a/lua/mason/packages/solargraph/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local gem = require "mason.core.managers.gem" - -return Pkg.new { - name = "solargraph", - desc = [[Solargraph is a Ruby gem that provides intellisense features through the language server protocol.]], - homepage = "https://solargraph.org", - languages = { Pkg.Lang.Ruby }, - categories = { Pkg.Cat.LSP }, - install = gem.packages { "solargraph", bin = { "solargraph" } }, -} diff --git a/lua/mason/packages/solidity/init.lua b/lua/mason/packages/solidity/init.lua deleted file mode 100644 index b6c04188..00000000 --- a/lua/mason/packages/solidity/init.lua +++ /dev/null @@ -1,32 +0,0 @@ -local Pkg = require "mason.core.package" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "solidity", - desc = [[Solidity, the Smart Contract Programming Language]], - homepage = "https://github.com/ethereum/solidity", - categories = { Pkg.Cat.Compiler, Pkg.Cat.LSP }, - languages = { Pkg.Lang.Solidity }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "ethereum/solidity", - out_file = platform.is_win and "solc.exe" or "solc", - asset_file = coalesce( - when(platform.is.mac, "solc-macos"), - when(platform.is.linux, "solc-static-linux"), - when(platform.is.win, "solc-windows.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "solc" }) - ctx:link_bin("solc", platform.is.win and "solc.exe" or "solc") - end, -} diff --git a/lua/mason/packages/sorbet/init.lua b/lua/mason/packages/sorbet/init.lua deleted file mode 100644 index d013bb82..00000000 --- a/lua/mason/packages/sorbet/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local gem = require "mason.core.managers.gem" - -return Pkg.new { - name = "sorbet", - desc = [[Sorbet is a fast, powerful type checker designed for Ruby.]], - homepage = "https://sorbet.org/", - languages = { Pkg.Lang.Ruby }, - categories = { Pkg.Cat.LSP }, - install = gem.packages { "sorbet", bin = { "srb" } }, -} diff --git a/lua/mason/packages/sourcery/init.lua b/lua/mason/packages/sourcery/init.lua deleted file mode 100644 index c0085044..00000000 --- a/lua/mason/packages/sourcery/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local pip3 = require "mason.core.managers.pip3" - -return Pkg.new { - name = "sourcery", - desc = [[Sourcery is a tool available in your IDE, GitHub, or as a CLI that suggests refactoring improvements to help make your code more readable and generally higher quality.]], - homepage = "https://docs.sourcery.ai/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.LSP }, - install = pip3.packages { "sourcery-cli", bin = { "sourcery" } }, -} diff --git a/lua/mason/packages/sqlls/init.lua b/lua/mason/packages/sqlls/init.lua deleted file mode 100644 index f954bce8..00000000 --- a/lua/mason/packages/sqlls/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "sqlls", - desc = [[SQL Language Server]], - homepage = "https://github.com/joe-re/sql-language-server", - languages = { Pkg.Lang.SQL }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "sql-language-server", bin = { "sql-language-server" } }, -} diff --git a/lua/mason/packages/sqls/init.lua b/lua/mason/packages/sqls/init.lua deleted file mode 100644 index e22ab013..00000000 --- a/lua/mason/packages/sqls/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local go = require "mason.core.managers.go" - -return Pkg.new { - name = "sqls", - desc = [[SQL language server written in Go.]], - homepage = "https://github.com/lighttiger2505/sqls", - languages = { Pkg.Lang.SQL }, - categories = { Pkg.Cat.LSP }, - install = go.packages { "github.com/lighttiger2505/sqls", bin = { "sqls" } }, -} diff --git a/lua/mason/packages/stylelint-lsp/init.lua b/lua/mason/packages/stylelint-lsp/init.lua deleted file mode 100644 index 95420625..00000000 --- a/lua/mason/packages/stylelint-lsp/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "stylelint-lsp", - desc = [[A stylelint Language Server]], - homepage = "https://github.com/bmatcuk/stylelint-lsp", - languages = { Pkg.Lang.Stylelint }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "stylelint-lsp", bin = { "stylelint-lsp" } }, -} diff --git a/lua/mason/packages/stylua/init.lua b/lua/mason/packages/stylua/init.lua deleted file mode 100644 index 227b637c..00000000 --- a/lua/mason/packages/stylua/init.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Pkg = require "mason.core.package" -local cargo = require "mason.core.managers.cargo" - -return Pkg.new { - name = "stylua", - desc = [[An opinionated Lua code formatter]], - homepage = "https://github.com/JohnnyMorganz/StyLua", - languages = { Pkg.Lang.Lua }, - categories = { Pkg.Cat.Formatter }, - install = cargo.crate("stylua", { - bin = { "stylua" }, - }), -} diff --git a/lua/mason/packages/svelte-language-server/init.lua b/lua/mason/packages/svelte-language-server/init.lua deleted file mode 100644 index 763c1b36..00000000 --- a/lua/mason/packages/svelte-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "svelte-language-server", - desc = [[A language server (implementing the language server protocol) for Svelte.]], - languages = { Pkg.Lang.Svelte }, - categories = { Pkg.Cat.LSP }, - homepage = "https://github.com/sveltejs/language-tools", - install = npm.packages { "svelte-language-server", bin = { "svelteserver" } }, -} diff --git a/lua/mason/packages/svlangserver/init.lua b/lua/mason/packages/svlangserver/init.lua deleted file mode 100644 index 2ed6888c..00000000 --- a/lua/mason/packages/svlangserver/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "svlangserver", - desc = [[A language server for systemverilog that has been tested to work with coc.nvim, VSCode, Sublime Text 4, emacs, and Neovim]], - homepage = "https://github.com/imc-trading/svlangserver", - languages = { Pkg.Lang.SystemVerilog }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@imc-trading/svlangserver", bin = { "svlangserver" } }, -} diff --git a/lua/mason/packages/svls/init.lua b/lua/mason/packages/svls/init.lua deleted file mode 100644 index f7b8088c..00000000 --- a/lua/mason/packages/svls/init.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Pkg = require "mason.core.package" -local cargo = require "mason.core.managers.cargo" - -return Pkg.new { - name = "svls", - desc = [[SystemVerilog language server]], - homepage = "https://github.com/dalance/svls", - languages = { Pkg.Lang.SystemVerilog }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("svls", { - bin = { "svls" }, - }), -} diff --git a/lua/mason/packages/tailwindcss-language-server/init.lua b/lua/mason/packages/tailwindcss-language-server/init.lua deleted file mode 100644 index d074ba84..00000000 --- a/lua/mason/packages/tailwindcss-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "tailwindcss-language-server", - desc = [[Language Server Protocol implementation for Tailwind CSS.]], - homepage = "https://github.com/tailwindlabs/tailwindcss-intellisense", - languages = { Pkg.Lang.CSS }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@tailwindcss/language-server", bin = { "tailwindcss-language-server" } }, -} diff --git a/lua/mason/packages/taplo/init.lua b/lua/mason/packages/taplo/init.lua deleted file mode 100644 index 4909aec5..00000000 --- a/lua/mason/packages/taplo/init.lua +++ /dev/null @@ -1,14 +0,0 @@ -local Pkg = require "mason.core.package" -local cargo = require "mason.core.managers.cargo" - -return Pkg.new { - name = "taplo", - desc = [[A versatile, feature-rich TOML toolkit.]], - homepage = "https://taplo.tamasfe.dev/", - languages = { Pkg.Lang.TOML }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("taplo-cli", { - features = "lsp", - bin = { "taplo" }, - }), -} diff --git a/lua/mason/packages/teal-language-server/init.lua b/lua/mason/packages/teal-language-server/init.lua deleted file mode 100644 index 3911869f..00000000 --- a/lua/mason/packages/teal-language-server/init.lua +++ /dev/null @@ -1,14 +0,0 @@ -local Pkg = require "mason.core.package" -local luarocks = require "mason.core.managers.luarocks" - -return Pkg.new { - name = "teal-language-server", - desc = [[A language server for Teal, a typed dialect of Lua]], - homepage = "https://github.com/teal-language/teal-language-server", - languages = { Pkg.Lang.Teal }, - categories = { Pkg.Cat.LSP }, - install = luarocks.package("teal-language-server", { - dev = true, - bin = { "teal-language-server" }, - }), -} diff --git a/lua/mason/packages/terraform-ls/init.lua b/lua/mason/packages/terraform-ls/init.lua deleted file mode 100644 index 9588b094..00000000 --- a/lua/mason/packages/terraform-ls/init.lua +++ /dev/null @@ -1,35 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "terraform-ls", - desc = [[Terraform Language Server]], - homepage = "https://github.com/hashicorp/terraform-ls", - languages = { Pkg.Lang.Terraform }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "hashicorp/terraform-ls", - asset_file = function(version) - local target = coalesce( - when(platform.is.mac_arm64, "terraform-ls_%s_darwin_arm64.zip"), - when(platform.is.mac_x64, "terraform-ls_%s_darwin_amd64.zip"), - when(platform.is.linux_arm64, "terraform-ls_%s_linux_arm64.zip"), - when(platform.is.linux_arm, "terraform-ls_%s_linux_arm.zip"), - when(platform.is.linux_x64, "terraform-ls_%s_linux_amd64.zip"), - when(platform.is.win_x64, "terraform-ls_%s_windows_amd64.zip") - ) - return target and target:format(version:gsub("^v", "")) - end, - }) - .with_receipt() - ctx:link_bin("terraform-ls", platform.is.win and "terraform-ls.exe" or "terraform-ls") - end, -} diff --git a/lua/mason/packages/texlab/init.lua b/lua/mason/packages/texlab/init.lua deleted file mode 100644 index c777a5f6..00000000 --- a/lua/mason/packages/texlab/init.lua +++ /dev/null @@ -1,43 +0,0 @@ -local Pkg = require "mason.core.package" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local github = require "mason.core.managers.github" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "texlab", - desc = [[An implementation of the Language Server Protocol for LaTeX]], - homepage = "https://github.com/latex-lsp/texlab", - categories = { Pkg.Cat.LSP }, - languages = { Pkg.Lang.LaTeX }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "latex-lsp/texlab" - platform.when { - unix = function() - github - .untargz_release_file({ - repo = repo, - asset_file = coalesce( - when(platform.is.mac_arm64, "texlab-aarch64-macos.tar.gz"), - when(platform.is.mac_x64, "texlab-x86_64-macos.tar.gz"), - when(platform.is.linux_x64, "texlab-x86_64-linux.tar.gz") - ), - }) - .with_receipt() - ctx:link_bin("texlab", "texlab") - end, - win = function() - github - .unzip_release_file({ - repo = repo, - asset_file = coalesce(when(platform.arch == "x64", "texlab-x86_64-windows.zip")), - }) - .with_receipt() - ctx:link_bin("texlab", "texlab.exe") - end, - } - end, -} diff --git a/lua/mason/packages/tflint/init.lua b/lua/mason/packages/tflint/init.lua deleted file mode 100644 index cc910da1..00000000 --- a/lua/mason/packages/tflint/init.lua +++ /dev/null @@ -1,32 +0,0 @@ -local Pkg = require "mason.core.package" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local github = require "mason.core.managers.github" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "tflint", - desc = [[A Pluggable Terraform Linter]], - homepage = "https://github.com/terraform-linters/tflint", - languages = { Pkg.Lang.Terraform }, - categories = { Pkg.Cat.LSP, Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "terraform-linters/tflint", - asset_file = coalesce( - when(platform.is.mac_x64, "tflint_darwin_amd64.zip"), - when(platform.is.mac_arm64, "tflint_darwin_arm64.zip"), - when(platform.is.linux_x64, "tflint_linux_amd64.zip"), - when(platform.is.linux_arm64, "tflint_linux_arm64.zip"), - when(platform.is.linux_x86, "tflint_linux_386.zip"), - when(platform.is.win_x64, "tflint_windows_amd64.zip") - ), - }) - .with_receipt() - ctx:link_bin("tflint", platform.is.win and "tflint.exe" or "tflint") - end, -} diff --git a/lua/mason/packages/typescript-language-server/init.lua b/lua/mason/packages/typescript-language-server/init.lua deleted file mode 100644 index f6bf3faa..00000000 --- a/lua/mason/packages/typescript-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "typescript-language-server", - desc = [[TypeScript & JavaScript Language Server]], - homepage = "https://github.com/typescript-language-server/typescript-language-server", - categories = { Pkg.Cat.LSP }, - languages = { Pkg.Lang.TypeScript, Pkg.Lang.JavaScript }, - install = npm.packages { "typescript-language-server", "typescript", bin = { "typescript-language-server" } }, -} diff --git a/lua/mason/packages/vala-language-server/init.lua b/lua/mason/packages/vala-language-server/init.lua deleted file mode 100644 index 65ea9e61..00000000 --- a/lua/mason/packages/vala-language-server/init.lua +++ /dev/null @@ -1,40 +0,0 @@ -local Pkg = require "mason.core.package" -local std = require "mason.core.managers.std" -local github = require "mason.core.managers.github" -local platform = require "mason.core.platform" -local path = require "mason.core.path" - -return Pkg.new { - name = "vala-language-server", - desc = [[Code Intelligence for Vala & Genie]], - homepage = "https://github.com/vala-lang/vala-language-server", - languages = { Pkg.Lang.Vala }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - std.ensure_executable("meson", { help_url = "https://mesonbuild.com/Getting-meson.html" }) - std.ensure_executable("ninja", { help_url = "https://ninja-build.org/" }) - std.ensure_executable("valac", { help_url = "https://wiki.gnome.org/Projects/Vala" }) - - local release_source = github.untarxz_release_file { - repo = "vala-lang/vala-language-server", - asset_file = function(version) - return ("vala-language-server-%s.tar.xz"):format(version) - end, - } - release_source.with_receipt() - - local vala_dirname = ("vala-language-server-%s"):format(release_source.release) - local install_dir = ctx.cwd:get() - ctx:chdir(vala_dirname, function() - ctx.spawn.meson { ("-Dprefix=%s"):format(install_dir), "build" } - ctx.spawn.ninja { "-C", "build", "install" } - end) - ctx.fs:rmrf(vala_dirname) - ctx:link_bin( - "vala-language-server", - path.concat { "bin", platform.is.win and "vala-language-server.exe" or "vala-language-server" } - ) - end, -} diff --git a/lua/mason/packages/verible/init.lua b/lua/mason/packages/verible/init.lua deleted file mode 100644 index a681c4f7..00000000 --- a/lua/mason/packages/verible/init.lua +++ /dev/null @@ -1,85 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" -local path = require "mason.core.path" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "verible", - desc = [[Verible is a suite of SystemVerilog developer tools, including a parser, style-linter, and formatter.]], - homepage = "https://chipsalliance.github.io/verible/", - languages = { Pkg.Lang.SystemVerilog }, - categories = { Pkg.Cat.LSP, Pkg.Cat.Linter, Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "chipsalliance/verible" - platform.when { - linux = function() - local os_dist = platform.os_distribution() - local source = github.untarxz_release_file { - repo = repo, - asset_file = function(release) - if os_dist.id == "ubuntu" then - local target_file = when( - platform.arch == "x64", - coalesce( - when(os_dist.version.major == 16, "verible-%s-Ubuntu-16.04-xenial-x86_64.tar.gz"), - when(os_dist.version.major == 18, "verible-%s-Ubuntu-18.04-bionic-x86_64.tar.gz"), - when(os_dist.version.major == 20, "verible-%s-Ubuntu-20.04-focal-x86_64.tar.gz"), - when(os_dist.version.major == 22, "verible-%s-Ubuntu-22.04-jammy-x86_64.tar.gz") - ) - ) - return target_file and target_file:format(release) - end - end, - } - source.with_receipt() - ctx.fs:rename(("verible-%s"):format(source.release), "verible") - for executable, rel_path in pairs { - ["git-verible-verilog-format.sh"] = { "verible", "bin", "git-verible-verilog-format.sh" }, - ["verible-patch-tool"] = { "verible", "bin", "verible-patch-tool" }, - ["verible-transform-interactive.sh"] = { "verible", "bin", "verible-transform-interactive.sh" }, - ["verible-verilog-diff"] = { "verible", "bin", "verible-verilog-ls" }, - ["verible-verilog-format"] = { "verible", "bin", "verible-verilog-format" }, - ["verible-verilog-kythe-extractor"] = { "verible", "bin", "verible-verilog-kythe-extractor" }, - ["verible-verilog-lint"] = { "verible", "bin", "verible-verilog-lint" }, - ["verible-verilog-ls"] = { "verible", "bin", "verible-verilog-ls" }, - ["verible-verilog-obfuscate"] = { "verible", "bin", "verible-verilog-obfuscate" }, - ["verible-verilog-preprocessor"] = { "verible", "bin", "verible-verilog-preprocessor" }, - ["verible-verilog-project"] = { "verible", "bin", "verible-verilog-project" }, - ["verible-verilog-syntax"] = { "verible", "bin", "verible-verilog-syntax" }, - } do - ctx:link_bin(executable, path.concat(rel_path)) - end - end, - win = function() - local source = github.unzip_release_file { - repo = repo, - asset_file = function(release) - local target_file = coalesce(when(platform.arch == "x64", "verible-%s-win64.zip")) - return target_file and target_file:format(release) - end, - } - source.with_receipt() - ctx.fs:rename(("verible-%s-win64"):format(source.release), "verible") - for executable, rel_path in pairs { - ["verible-patch-tool"] = { "verible", "verible-patch-tool.exe" }, - ["verible-verilog-diff"] = { "verible", "verible-verilog-ls.exe" }, - ["verible-verilog-format"] = { "verible", "verible-verilog-format.exe" }, - ["verible-verilog-kythe-extractor"] = { "verible", "verible-verilog-kythe-extractor.exe" }, - ["verible-verilog-lint"] = { "verible", "verible-verilog-lint.exe" }, - ["verible-verilog-ls"] = { "verible", "verible-verilog-ls.exe" }, - ["verible-verilog-obfuscate"] = { "verible", "verible-verilog-obfuscate.exe" }, - ["verible-verilog-preprocessor"] = { "verible", "verible-verilog-preprocessor.exe" }, - ["verible-verilog-project"] = { "verible", "verible-verilog-project.exe" }, - ["verible-verilog-syntax"] = { "verible", "verible-verilog-syntax.exe" }, - } do - ctx:link_bin(executable, path.concat(rel_path)) - end - end, - } - end, -} diff --git a/lua/mason/packages/vetur-vls/init.lua b/lua/mason/packages/vetur-vls/init.lua deleted file mode 100644 index 07503fad..00000000 --- a/lua/mason/packages/vetur-vls/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "vetur-vls", - desc = [[VLS (Vue Language Server) is a language server implementation compatible with Language Server Protocol.]], - homepage = "https://github.com/vuejs/vetur", - languages = { Pkg.Lang.Vue }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "vls", bin = { "vls" } }, -} diff --git a/lua/mason/packages/vim-language-server/init.lua b/lua/mason/packages/vim-language-server/init.lua deleted file mode 100644 index 7e555644..00000000 --- a/lua/mason/packages/vim-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "vim-language-server", - desc = [[VimScript language server.]], - homepage = "https://github.com/iamcco/vim-language-server", - languages = { Pkg.Lang.VimScript }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "vim-language-server", bin = { "vim-language-server" } }, -} diff --git a/lua/mason/packages/visualforce-language-server/init.lua b/lua/mason/packages/visualforce-language-server/init.lua deleted file mode 100644 index 0bc422b9..00000000 --- a/lua/mason/packages/visualforce-language-server/init.lua +++ /dev/null @@ -1,34 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local github_client = require "mason.core.managers.github.client" -local Optional = require "mason.core.optional" -local _ = require "mason.core.functional" - -return Pkg.new { - name = "visualforce-language-server", - desc = [[Visualforce language server]], - homepage = "https://github.com/forcedotcom/salesforcedx-vscode", - languages = { Pkg.Lang.Visualforce }, - categories = { Pkg.Cat.LSP }, - ---@async - install = function() - local repo = "forcedotcom/salesforcedx-vscode" - - -- See https://github.com/forcedotcom/salesforcedx-vscode/issues/4184#issuecomment-1146052086 - ---@type GitHubRelease - local release = github_client - .fetch_releases(repo) - :map(_.find_first(_.prop_satisfies(_.compose(_.gt(0), _.length), "assets"))) - :map(Optional.of_nilable) - :get_or_throw() -- Result unwrap - :or_else_throw "Failed to find release with assets." -- Optional unwrap - - github - .unzip_release_file({ - version = Optional.of(release.tag_name), - asset_file = _.compose(_.format "salesforcedx-vscode-visualforce-%s.vsix", _.gsub("^v", "")), - repo = repo, - }) - .with_receipt() - end, -} diff --git a/lua/mason/packages/vls/init.lua b/lua/mason/packages/vls/init.lua deleted file mode 100644 index 110605ab..00000000 --- a/lua/mason/packages/vls/init.lua +++ /dev/null @@ -1,38 +0,0 @@ -local Pkg = require "mason.core.package" -local github = require "mason.core.managers.github" -local github_client = require "mason.core.managers.github.client" -local std = require "mason.core.managers.std" -local _ = require "mason.core.functional" -local platform = require "mason.core.platform" -local Optional = require "mason.core.optional" - -return Pkg.new { - name = "vls", - desc = [[V language server]], - homepage = "https://github.com/vlang/vls", - languages = { Pkg.Lang.V }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "vlang/vls" - - ---@type GitHubRelease - local latest_dev_build = github_client.fetch_latest_release(repo, { include_prerelease = true }):get_or_throw() - - github - .download_release_file({ - version = Optional.of(latest_dev_build.tag_name), - repo = repo, - out_file = platform.is.win and "vls.exe" or "vls", - asset_file = _.coalesce( - _.when(platform.is.linux_x64, "vls_linux_x64"), - _.when(platform.is.mac, "vls_macos_x64"), - _.when(platform.is.win_x64, "vls_windows_x64.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "vls" }) - ctx:link_bin("vls", platform.is.win and "vls.exe" or "vls") - end, -} diff --git a/lua/mason/packages/vue-language-server/init.lua b/lua/mason/packages/vue-language-server/init.lua deleted file mode 100644 index 3c3b181a..00000000 --- a/lua/mason/packages/vue-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "vue-language-server", - desc = [[⚡ Explore high-performance tooling for Vue]], - homepage = "https://github.com/johnsoncodehk/volar", - languages = { Pkg.Lang.Vue }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@volar/vue-language-server", "typescript", bin = { "vue-language-server" } }, -} diff --git a/lua/mason/packages/wgsl-analyzer/init.lua b/lua/mason/packages/wgsl-analyzer/init.lua deleted file mode 100644 index 68dc25ad..00000000 --- a/lua/mason/packages/wgsl-analyzer/init.lua +++ /dev/null @@ -1,16 +0,0 @@ -local Pkg = require "mason.core.package" -local cargo = require "mason.core.managers.cargo" - -local github_url = "https://github.com/wgsl-analyzer/wgsl-analyzer" - -return Pkg.new { - name = "wgsl-analyzer", - desc = [[A language server implementation for the WGSL shading language]], - homepage = github_url, - languages = { Pkg.Lang.WGSL }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("wgsl_analyzer", { - git = github_url, - bin = { "wgsl_analyzer" }, - }), -} diff --git a/lua/mason/packages/yaml-language-server/init.lua b/lua/mason/packages/yaml-language-server/init.lua deleted file mode 100644 index 4bf15a76..00000000 --- a/lua/mason/packages/yaml-language-server/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason.core.package" -local npm = require "mason.core.managers.npm" - -return Pkg.new { - name = "yaml-language-server", - desc = [[Language Server for YAML Files]], - homepage = "https://github.com/redhat-developer/yaml-language-server", - languages = { Pkg.Lang.YAML }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "yaml-language-server", bin = { "yaml-language-server" } }, -} diff --git a/lua/mason/packages/zk/init.lua b/lua/mason/packages/zk/init.lua deleted file mode 100644 index 4250f2c4..00000000 --- a/lua/mason/packages/zk/init.lua +++ /dev/null @@ -1,55 +0,0 @@ -local Pkg = require "mason.core.package" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "zk", - desc = [[A plain text note-taking assistant]], - homepage = "https://github.com/mickael-menu/zk", - languages = { Pkg.Lang.Markdown }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "mickael-menu/zk" - platform.when { - mac = function() - github - .unzip_release_file({ - repo = repo, - asset_file = coalesce( - when(platform.arch == "arm64", function(version) - return ("zk-%s-macos-arm64.zip"):format(version) - end), - when(platform.arch == "x64", function(version) - return ("zk-%s-macos-x86_64.zip"):format(version) - end) - ), - }) - :with_receipt() - end, - linux = function() - github - .untargz_release_file({ - repo = repo, - asset_file = coalesce( - when(platform.arch == "arm64", function(version) - return ("zk-%s-linux-arm64.tar.gz"):format(version) - end), - when(platform.arch == "x64", function(version) - return ("zk-%s-linux-amd64.tar.gz"):format(version) - end), - when(platform.arch == "x86", function(version) - return ("zk-%s-linux-i386.tar.gz"):format(version) - end) - ), - }) - .with_receipt() - end, - } - ctx:link_bin("zk", "zk") - end, -} diff --git a/lua/mason/packages/zls/init.lua b/lua/mason/packages/zls/init.lua deleted file mode 100644 index beef3948..00000000 --- a/lua/mason/packages/zls/init.lua +++ /dev/null @@ -1,34 +0,0 @@ -local Pkg = require "mason.core.package" -local path = require "mason.core.path" -local platform = require "mason.core.platform" -local _ = require "mason.core.functional" -local github = require "mason.core.managers.github" -local std = require "mason.core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "zls", - desc = [[Zig LSP implementation + Zig Language Server]], - homepage = "https://github.com/zigtools/zls", - languages = { Pkg.Lang.Zig }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local asset_file = coalesce( - when(platform.is.mac, "x86_64-macos.tar.xz"), - when(platform.is.linux_x64, "x86_64-linux.tar.xz"), - when(platform.is.linux_x86, "i386-linux.tar.xz"), - when(platform.is.win_x64, "x86_64-windows.tar.xz") - ) - github - .untarxz_release_file({ - repo = "zigtools/zls", - asset_file = asset_file, - }) - .with_receipt() - std.chmod("+x", { path.concat { "bin", "zls" } }) - ctx:link_bin("zls", path.concat { "bin", platform.is.win and "zls.exe" or "zls" }) - end, -} diff --git a/lua/mason/ui/instance.lua b/lua/mason/ui/instance.lua index ac65e343..6a886b73 100644 --- a/lua/mason/ui/instance.lua +++ b/lua/mason/ui/instance.lua @@ -1,10 +1,10 @@ +local registry = require "mason-registry" local display = require "mason.core.ui.display" local Ui = require "mason.core.ui" local a = require "mason.core.async" local control = require "mason.core.async.control" local _ = require "mason.core.functional" local palette = require "mason.ui.palette" -local indexer = require "mason.core.package.indexer" local Package = require "mason.core.package" local settings = require "mason.settings" local notify = require "mason.notify" @@ -110,7 +110,7 @@ local function remove(list, item) end local window = display.new_view_only_win("Installer Info", "mason.nvim") -local packages = _.sort_by(_.prop "name", indexer.get_all_packages()) +local packages = _.sort_by(_.prop "name", registry.get_all_packages()) window.view( ---@param state InstallerUiState -- cgit v1.2.3-70-g09d2