From b8a6632a0f2d263199d5d480ca85477fe0f414ab Mon Sep 17 00:00:00 2001 From: William Boman Date: Mon, 20 Feb 2023 22:19:39 +0100 Subject: feat: configurable registries (#1016) --- lua/mason-registry/actionlint/init.lua | 55 ---- lua/mason-registry/ada-language-server/init.lua | 40 --- lua/mason-registry/alex/init.lua | 11 - .../angular-language-server/init.lua | 16 -- .../ansible-language-server/init.lua | 11 - lua/mason-registry/ansible-lint/init.lua | 15 -- .../antlers-language-server/init.lua | 15 -- lua/mason-registry/apex-language-server/init.lua | 43 ---- .../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/autoflake/init.lua | 11 - lua/mason-registry/autopep8/init.lua | 11 - lua/mason-registry/awk-language-server/init.lua | 11 - lua/mason-registry/bash-debug-adapter/init.lua | 44 ---- lua/mason-registry/bash-language-server/init.lua | 11 - .../beancount-language-server/init.lua | 13 - lua/mason-registry/beautysh/init.lua | 11 - lua/mason-registry/bicep-lsp/init.lua | 42 --- lua/mason-registry/black/init.lua | 11 - lua/mason-registry/blackd-client/init.lua | 31 --- lua/mason-registry/blade-formatter/init.lua | 11 - lua/mason-registry/blue/init.lua | 17 -- .../brighterscript-formatter/init.lua | 11 - lua/mason-registry/brighterscript/init.lua | 11 - lua/mason-registry/bsl-language-server/init.lua | 33 --- lua/mason-registry/buf-language-server/init.lua | 14 - lua/mason-registry/buf/init.lua | 39 --- lua/mason-registry/buildifier/init.lua | 34 --- lua/mason-registry/cbfmt/init.lua | 49 ---- lua/mason-registry/cfn-lint/init.lua | 15 -- lua/mason-registry/chrome-debug-adapter/init.lua | 32 --- lua/mason-registry/clang-format/init.lua | 11 - lua/mason-registry/clangd/init.lua | 43 ---- lua/mason-registry/clarity-lsp/init.lua | 29 --- lua/mason-registry/clojure-lsp/init.lua | 34 --- lua/mason-registry/cmake-language-server/init.lua | 11 - lua/mason-registry/cmakelang/init.lua | 19 -- lua/mason-registry/codelldb/init.lua | 41 --- lua/mason-registry/codeql/init.lua | 34 --- lua/mason-registry/codespell/init.lua | 11 - lua/mason-registry/colorgen-nvim/init.lua | 17 -- lua/mason-registry/commitlint/init.lua | 17 -- lua/mason-registry/cpplint/init.lua | 11 - 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/csharpier/init.lua | 11 - lua/mason-registry/cspell/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/cueimports/init.lua | 11 - lua/mason-registry/cuelsp/init.lua | 11 - lua/mason-registry/curlylint/init.lua | 11 - lua/mason-registry/dart-debug-adapter/init.lua | 27 -- lua/mason-registry/debugpy/init.lua | 18 -- lua/mason-registry/delve/init.lua | 11 - lua/mason-registry/deno/init.lua | 33 --- lua/mason-registry/dhall-lsp/init.lua | 75 ------ .../diagnostic-languageserver/init.lua | 11 - lua/mason-registry/djlint/init.lua | 19 -- .../docker-compose-language-service/init.lua | 12 - .../dockerfile-language-server/init.lua | 11 - lua/mason-registry/dot-language-server/init.lua | 11 - lua/mason-registry/dprint/init.lua | 32 --- lua/mason-registry/drools-lsp/init.lua | 23 -- lua/mason-registry/editorconfig-checker/init.lua | 35 --- lua/mason-registry/efm/init.lua | 11 - lua/mason-registry/elixir-ls/init.lua | 28 -- 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/erb-lint/init.lua | 11 - lua/mason-registry/erg-language-server/init.lua | 45 ---- lua/mason-registry/erg/init.lua | 43 ---- lua/mason-registry/erlang-ls/init.lua | 40 --- lua/mason-registry/esbonio/init.lua | 11 - lua/mason-registry/eslint-lsp/init.lua | 15 -- lua/mason-registry/eslint_d/init.lua | 11 - lua/mason-registry/fantomas/init.lua | 11 - lua/mason-registry/fennel-language-server/init.lua | 17 -- lua/mason-registry/firefox-debug-adapter/init.lua | 28 -- lua/mason-registry/fixjson/init.lua | 13 - lua/mason-registry/flake8/init.lua | 15 -- lua/mason-registry/flux-lsp/init.lua | 17 -- lua/mason-registry/foam-language-server/init.lua | 11 - lua/mason-registry/fortls/init.lua | 11 - lua/mason-registry/fourmolu/init.lua | 34 --- lua/mason-registry/fsautocomplete/init.lua | 13 - lua/mason-registry/gersemi/init.lua | 16 -- lua/mason-registry/gitlint/init.lua | 11 - lua/mason-registry/gitui/init.lua | 34 --- lua/mason-registry/glint/init.lua | 22 -- lua/mason-registry/glow/init.lua | 47 ---- lua/mason-registry/go-debug-adapter/init.lua | 27 -- lua/mason-registry/gofumpt/init.lua | 11 - lua/mason-registry/goimports-reviser/init.lua | 38 --- lua/mason-registry/goimports/init.lua | 15 -- .../golangci-lint-langserver/init.lua | 11 - lua/mason-registry/golangci-lint/init.lua | 56 ---- lua/mason-registry/golines/init.lua | 11 - lua/mason-registry/gomodifytags/init.lua | 11 - lua/mason-registry/google-java-format/init.lua | 33 --- lua/mason-registry/gopls/init.lua | 15 -- lua/mason-registry/gospel/init.lua | 11 - lua/mason-registry/gotests/init.lua | 15 -- lua/mason-registry/gotestsum/init.lua | 15 -- lua/mason-registry/gradle-language-server/init.lua | 34 --- .../grammarly-languageserver/init.lua | 11 - .../graphql-language-service-cli/init.lua | 11 - lua/mason-registry/groovy-language-server/init.lua | 33 --- lua/mason-registry/hadolint/init.lua | 33 --- lua/mason-registry/haml-lint/init.lua | 15 -- .../haskell-language-server/init.lua | 55 ---- lua/mason-registry/haxe-language-server/init.lua | 26 -- lua/mason-registry/hoon-language-server/init.lua | 11 - lua/mason-registry/html-lsp/init.lua | 11 - lua/mason-registry/iferr/init.lua | 11 - lua/mason-registry/impl/init.lua | 11 - lua/mason-registry/index.lua | 283 --------------------- lua/mason-registry/index/actionlint/init.lua | 55 ++++ .../index/ada-language-server/init.lua | 40 +++ lua/mason-registry/index/alex/init.lua | 11 + .../index/angular-language-server/init.lua | 16 ++ .../index/ansible-language-server/init.lua | 11 + lua/mason-registry/index/ansible-lint/init.lua | 15 ++ .../index/antlers-language-server/init.lua | 15 ++ .../index/apex-language-server/init.lua | 43 ++++ .../index/arduino-language-server/init.lua | 44 ++++ lua/mason-registry/index/asm-lsp/init.lua | 13 + .../index/astro-language-server/init.lua | 11 + lua/mason-registry/index/autoflake/init.lua | 11 + lua/mason-registry/index/autopep8/init.lua | 11 + .../index/awk-language-server/init.lua | 11 + .../index/bash-debug-adapter/init.lua | 44 ++++ .../index/bash-language-server/init.lua | 11 + .../index/beancount-language-server/init.lua | 13 + lua/mason-registry/index/beautysh/init.lua | 11 + lua/mason-registry/index/bicep-lsp/init.lua | 42 +++ lua/mason-registry/index/black/init.lua | 11 + lua/mason-registry/index/blackd-client/init.lua | 31 +++ lua/mason-registry/index/blade-formatter/init.lua | 11 + lua/mason-registry/index/blue/init.lua | 17 ++ .../index/brighterscript-formatter/init.lua | 11 + lua/mason-registry/index/brighterscript/init.lua | 11 + .../index/bsl-language-server/init.lua | 33 +++ .../index/buf-language-server/init.lua | 14 + lua/mason-registry/index/buf/init.lua | 39 +++ lua/mason-registry/index/buildifier/init.lua | 34 +++ lua/mason-registry/index/cbfmt/init.lua | 49 ++++ lua/mason-registry/index/cfn-lint/init.lua | 15 ++ .../index/chrome-debug-adapter/init.lua | 32 +++ lua/mason-registry/index/clang-format/init.lua | 11 + lua/mason-registry/index/clangd/init.lua | 43 ++++ lua/mason-registry/index/clarity-lsp/init.lua | 29 +++ lua/mason-registry/index/clojure-lsp/init.lua | 34 +++ .../index/cmake-language-server/init.lua | 11 + lua/mason-registry/index/cmakelang/init.lua | 19 ++ lua/mason-registry/index/codelldb/init.lua | 41 +++ lua/mason-registry/index/codeql/init.lua | 34 +++ lua/mason-registry/index/codespell/init.lua | 11 + lua/mason-registry/index/colorgen-nvim/init.lua | 17 ++ lua/mason-registry/index/commitlint/init.lua | 17 ++ lua/mason-registry/index/cpplint/init.lua | 11 + lua/mason-registry/index/cpptools/init.lua | 42 +++ lua/mason-registry/index/crystalline/init.lua | 31 +++ .../index/csharp-language-server/init.lua | 11 + lua/mason-registry/index/csharpier/init.lua | 11 + lua/mason-registry/index/cspell/init.lua | 11 + lua/mason-registry/index/css-lsp/init.lua | 11 + .../index/cssmodules-language-server/init.lua | 11 + .../index/cucumber-language-server/init.lua | 11 + lua/mason-registry/index/cueimports/init.lua | 11 + lua/mason-registry/index/cuelsp/init.lua | 11 + lua/mason-registry/index/curlylint/init.lua | 11 + .../index/dart-debug-adapter/init.lua | 27 ++ lua/mason-registry/index/debugpy/init.lua | 18 ++ lua/mason-registry/index/delve/init.lua | 11 + lua/mason-registry/index/deno/init.lua | 33 +++ lua/mason-registry/index/dhall-lsp/init.lua | 75 ++++++ .../index/diagnostic-languageserver/init.lua | 11 + lua/mason-registry/index/djlint/init.lua | 19 ++ .../index/docker-compose-language-service/init.lua | 12 + .../index/dockerfile-language-server/init.lua | 11 + .../index/dot-language-server/init.lua | 11 + lua/mason-registry/index/dprint/init.lua | 32 +++ lua/mason-registry/index/drools-lsp/init.lua | 23 ++ .../index/editorconfig-checker/init.lua | 35 +++ lua/mason-registry/index/efm/init.lua | 11 + lua/mason-registry/index/elixir-ls/init.lua | 28 ++ lua/mason-registry/index/elm-format/init.lua | 11 + .../index/elm-language-server/init.lua | 11 + .../index/ember-language-server/init.lua | 11 + lua/mason-registry/index/emmet-ls/init.lua | 11 + lua/mason-registry/index/erb-lint/init.lua | 11 + .../index/erg-language-server/init.lua | 45 ++++ lua/mason-registry/index/erg/init.lua | 43 ++++ lua/mason-registry/index/erlang-ls/init.lua | 40 +++ lua/mason-registry/index/esbonio/init.lua | 11 + lua/mason-registry/index/eslint-lsp/init.lua | 15 ++ lua/mason-registry/index/eslint_d/init.lua | 11 + lua/mason-registry/index/fantomas/init.lua | 11 + .../index/fennel-language-server/init.lua | 17 ++ .../index/firefox-debug-adapter/init.lua | 28 ++ lua/mason-registry/index/fixjson/init.lua | 13 + lua/mason-registry/index/flake8/init.lua | 15 ++ lua/mason-registry/index/flux-lsp/init.lua | 17 ++ .../index/foam-language-server/init.lua | 11 + lua/mason-registry/index/fortls/init.lua | 11 + lua/mason-registry/index/fourmolu/init.lua | 34 +++ lua/mason-registry/index/fsautocomplete/init.lua | 13 + lua/mason-registry/index/gersemi/init.lua | 16 ++ lua/mason-registry/index/gitlint/init.lua | 11 + lua/mason-registry/index/gitui/init.lua | 34 +++ lua/mason-registry/index/glint/init.lua | 22 ++ lua/mason-registry/index/glow/init.lua | 47 ++++ lua/mason-registry/index/go-debug-adapter/init.lua | 27 ++ lua/mason-registry/index/gofumpt/init.lua | 11 + .../index/goimports-reviser/init.lua | 38 +++ lua/mason-registry/index/goimports/init.lua | 15 ++ .../index/golangci-lint-langserver/init.lua | 11 + lua/mason-registry/index/golangci-lint/init.lua | 56 ++++ lua/mason-registry/index/golines/init.lua | 11 + lua/mason-registry/index/gomodifytags/init.lua | 11 + .../index/google-java-format/init.lua | 33 +++ lua/mason-registry/index/gopls/init.lua | 15 ++ lua/mason-registry/index/gospel/init.lua | 11 + lua/mason-registry/index/gotests/init.lua | 15 ++ lua/mason-registry/index/gotestsum/init.lua | 15 ++ .../index/gradle-language-server/init.lua | 34 +++ .../index/grammarly-languageserver/init.lua | 11 + .../index/graphql-language-service-cli/init.lua | 11 + .../index/groovy-language-server/init.lua | 33 +++ lua/mason-registry/index/hadolint/init.lua | 33 +++ lua/mason-registry/index/haml-lint/init.lua | 15 ++ .../index/haskell-language-server/init.lua | 55 ++++ .../index/haxe-language-server/init.lua | 26 ++ .../index/hoon-language-server/init.lua | 11 + lua/mason-registry/index/html-lsp/init.lua | 11 + lua/mason-registry/index/iferr/init.lua | 11 + lua/mason-registry/index/impl/init.lua | 11 + lua/mason-registry/index/init.lua | 283 +++++++++++++++++++++ lua/mason-registry/index/intelephense/init.lua | 11 + lua/mason-registry/index/isort/init.lua | 11 + .../index/java-debug-adapter/init.lua | 25 ++ lua/mason-registry/index/java-test/init.lua | 37 +++ lua/mason-registry/index/jdtls/init.lua | 61 +++++ .../index/jedi-language-server/init.lua | 11 + lua/mason-registry/index/joker/init.lua | 31 +++ lua/mason-registry/index/jq-lsp/init.lua | 15 ++ lua/mason-registry/index/jq/init.lua | 34 +++ lua/mason-registry/index/js-debug-adapter/init.lua | 28 ++ lua/mason-registry/index/json-lsp/init.lua | 11 + lua/mason-registry/index/json-to-struct/init.lua | 11 + lua/mason-registry/index/jsonlint/init.lua | 13 + .../index/jsonnet-language-server/init.lua | 11 + lua/mason-registry/index/julia-lsp/init.lua | 86 +++++++ .../index/kotlin-debug-adapter/init.lua | 30 +++ .../index/kotlin-language-server/init.lua | 30 +++ lua/mason-registry/index/ktlint/init.lua | 40 +++ lua/mason-registry/index/latexindent/init.lua | 36 +++ lua/mason-registry/index/lelwel/init.lua | 14 + lua/mason-registry/index/lemminx/init.lua | 33 +++ lua/mason-registry/index/lemmy-help/init.lua | 45 ++++ lua/mason-registry/index/ltex-ls/init.lua | 75 ++++++ .../index/lua-language-server/init.lua | 64 +++++ lua/mason-registry/index/luacheck/init.lua | 13 + lua/mason-registry/index/luaformatter/init.lua | 14 + lua/mason-registry/index/luau-lsp/init.lua | 30 +++ lua/mason-registry/index/markdownlint/init.lua | 11 + lua/mason-registry/index/marksman/init.lua | 32 +++ .../index/metamath-zero-lsp/init.lua | 24 ++ lua/mason-registry/index/misspell/init.lua | 11 + lua/mason-registry/index/mockdebug/init.lua | 31 +++ lua/mason-registry/index/move-analyzer/init.lua | 16 ++ lua/mason-registry/index/mypy/init.lua | 11 + lua/mason-registry/index/neocmakelsp/init.lua | 11 + lua/mason-registry/index/netcoredbg/init.lua | 42 +++ .../index/nginx-language-server/init.lua | 11 + lua/mason-registry/index/nickel-lang-lsp/init.lua | 17 ++ lua/mason-registry/index/nil/init.lua | 17 ++ lua/mason-registry/index/nimlsp/init.lua | 22 ++ .../index/node-debug2-adapter/init.lua | 36 +++ lua/mason-registry/index/nxls/init.lua | 13 + lua/mason-registry/index/ocaml-lsp/init.lua | 11 + lua/mason-registry/index/ocamlformat/init.lua | 15 ++ lua/mason-registry/index/omnisharp-mono/init.lua | 48 ++++ lua/mason-registry/index/omnisharp/init.lua | 46 ++++ .../index/opencl-language-server/init.lua | 44 ++++ lua/mason-registry/index/openscad-lsp/init.lua | 13 + lua/mason-registry/index/perlnavigator/init.lua | 23 ++ lua/mason-registry/index/php-cs-fixer/init.lua | 37 +++ .../index/php-debug-adapter/init.lua | 27 ++ lua/mason-registry/index/phpactor/init.lua | 29 +++ lua/mason-registry/index/phpcbf/init.lua | 33 +++ lua/mason-registry/index/phpcs/init.lua | 33 +++ lua/mason-registry/index/phpmd/init.lua | 36 +++ lua/mason-registry/index/phpstan/init.lua | 36 +++ lua/mason-registry/index/pint/init.lua | 16 ++ .../index/powershell-editor-services/init.lua | 21 ++ lua/mason-registry/index/prettier/init.lua | 26 ++ lua/mason-registry/index/prettierd/init.lua | 26 ++ .../index/prisma-language-server/init.lua | 15 ++ lua/mason-registry/index/proselint/init.lua | 15 ++ lua/mason-registry/index/prosemd-lsp/init.lua | 32 +++ lua/mason-registry/index/protolint/init.lua | 36 +++ lua/mason-registry/index/psalm/init.lua | 20 ++ .../index/puppet-editor-services/init.lua | 26 ++ .../index/purescript-language-server/init.lua | 16 ++ lua/mason-registry/index/pydocstyle/init.lua | 11 + lua/mason-registry/index/pylama/init.lua | 11 + lua/mason-registry/index/pylint/init.lua | 11 + lua/mason-registry/index/pyproject-flake8/init.lua | 11 + lua/mason-registry/index/pyre/init.lua | 11 + lua/mason-registry/index/pyright/init.lua | 11 + .../index/python-lsp-server/init.lua | 11 + lua/mason-registry/index/quick-lint-js/init.lua | 53 ++++ lua/mason-registry/index/r-languageserver/init.lua | 87 +++++++ lua/mason-registry/index/raku-navigator/init.lua | 22 ++ .../index/reason-language-server/init.lua | 38 +++ lua/mason-registry/index/remark-cli/init.lua | 11 + .../index/remark-language-server/init.lua | 11 + .../index/reorder-python-imports/init.lua | 11 + lua/mason-registry/index/rescript-lsp/init.lua | 36 +++ lua/mason-registry/index/revive/init.lua | 11 + lua/mason-registry/index/rnix-lsp/init.lua | 13 + .../index/robotframework-lsp/init.lua | 11 + lua/mason-registry/index/rome/init.lua | 11 + lua/mason-registry/index/rstcheck/init.lua | 11 + lua/mason-registry/index/rubocop/init.lua | 11 + lua/mason-registry/index/ruby-lsp/init.lua | 11 + lua/mason-registry/index/ruff-lsp/init.lua | 11 + lua/mason-registry/index/ruff/init.lua | 11 + lua/mason-registry/index/rust-analyzer/init.lua | 53 ++++ lua/mason-registry/index/rustfmt/init.lua | 40 +++ lua/mason-registry/index/rustywind/init.lua | 18 ++ lua/mason-registry/index/salt-lsp/init.lua | 11 + lua/mason-registry/index/selene/init.lua | 34 +++ lua/mason-registry/index/semgrep/init.lua | 22 ++ lua/mason-registry/index/serve-d/init.lua | 51 ++++ lua/mason-registry/index/shellcheck/init.lua | 42 +++ lua/mason-registry/index/shellharden/init.lua | 11 + lua/mason-registry/index/shfmt/init.lua | 33 +++ .../index/shopify-theme-check/init.lua | 11 + lua/mason-registry/index/slint-lsp/init.lua | 36 +++ .../index/smithy-language-server/init.lua | 38 +++ lua/mason-registry/index/solang/init.lua | 63 +++++ lua/mason-registry/index/solargraph/init.lua | 11 + lua/mason-registry/index/solhint/init.lua | 11 + lua/mason-registry/index/solidity-ls/init.lua | 11 + lua/mason-registry/index/solidity/init.lua | 32 +++ lua/mason-registry/index/sorbet/init.lua | 11 + lua/mason-registry/index/sourcery/init.lua | 15 ++ .../index/spectral-language-server/init.lua | 35 +++ lua/mason-registry/index/sql-formatter/init.lua | 11 + lua/mason-registry/index/sqlfluff/init.lua | 11 + lua/mason-registry/index/sqlls/init.lua | 11 + lua/mason-registry/index/sqls/init.lua | 11 + lua/mason-registry/index/standardrb/init.lua | 11 + lua/mason-registry/index/staticcheck/init.lua | 11 + lua/mason-registry/index/stylelint-lsp/init.lua | 11 + lua/mason-registry/index/stylua/init.lua | 31 +++ .../index/svelte-language-server/init.lua | 11 + lua/mason-registry/index/svlangserver/init.lua | 15 ++ lua/mason-registry/index/svls/init.lua | 13 + .../index/tailwindcss-language-server/init.lua | 11 + lua/mason-registry/index/taplo/init.lua | 51 ++++ .../index/teal-language-server/init.lua | 14 + lua/mason-registry/index/tectonic/init.lua | 62 +++++ lua/mason-registry/index/terraform-ls/init.lua | 47 ++++ lua/mason-registry/index/texlab/init.lua | 43 ++++ lua/mason-registry/index/textlint/init.lua | 11 + lua/mason-registry/index/tflint/init.lua | 32 +++ lua/mason-registry/index/twigcs/init.lua | 36 +++ .../index/typescript-language-server/init.lua | 11 + .../index/unocss-language-server/init.lua | 11 + lua/mason-registry/index/usort/init.lua | 11 + lua/mason-registry/index/vacuum/init.lua | 43 ++++ .../index/vala-language-server/init.lua | 36 +++ lua/mason-registry/index/vale/init.lua | 49 ++++ lua/mason-registry/index/verible/init.lua | 101 ++++++++ lua/mason-registry/index/veryl-ls/init.lua | 13 + lua/mason-registry/index/vetur-vls/init.lua | 11 + .../index/vim-language-server/init.lua | 11 + lua/mason-registry/index/vint/init.lua | 11 + .../index/visualforce-language-server/init.lua | 34 +++ lua/mason-registry/index/vls/init.lua | 35 +++ lua/mason-registry/index/vtsls/init.lua | 11 + .../index/vue-language-server/init.lua | 11 + lua/mason-registry/index/vulture/init.lua | 19 ++ lua/mason-registry/index/wgsl-analyzer/init.lua | 17 ++ lua/mason-registry/index/write-good/init.lua | 11 + lua/mason-registry/index/xmlformatter/init.lua | 17 ++ lua/mason-registry/index/xo/init.lua | 14 + .../index/yaml-language-server/init.lua | 11 + lua/mason-registry/index/yamlfmt/init.lua | 35 +++ lua/mason-registry/index/yamllint/init.lua | 15 ++ lua/mason-registry/index/yapf/init.lua | 11 + lua/mason-registry/index/zk/init.lua | 55 ++++ lua/mason-registry/index/zls/init.lua | 36 +++ lua/mason-registry/init.lua | 34 ++- lua/mason-registry/intelephense/init.lua | 11 - lua/mason-registry/isort/init.lua | 11 - lua/mason-registry/java-debug-adapter/init.lua | 25 -- lua/mason-registry/java-test/init.lua | 37 --- lua/mason-registry/jdtls/init.lua | 61 ----- lua/mason-registry/jedi-language-server/init.lua | 11 - lua/mason-registry/joker/init.lua | 31 --- lua/mason-registry/jq-lsp/init.lua | 15 -- lua/mason-registry/jq/init.lua | 34 --- lua/mason-registry/js-debug-adapter/init.lua | 28 -- lua/mason-registry/json-lsp/init.lua | 11 - lua/mason-registry/json-to-struct/init.lua | 11 - lua/mason-registry/jsonlint/init.lua | 13 - .../jsonnet-language-server/init.lua | 11 - lua/mason-registry/julia-lsp/init.lua | 86 ------- lua/mason-registry/kotlin-debug-adapter/init.lua | 30 --- lua/mason-registry/kotlin-language-server/init.lua | 30 --- lua/mason-registry/ktlint/init.lua | 40 --- lua/mason-registry/latexindent/init.lua | 36 --- lua/mason-registry/lelwel/init.lua | 14 - lua/mason-registry/lemminx/init.lua | 33 --- lua/mason-registry/lemmy-help/init.lua | 45 ---- lua/mason-registry/ltex-ls/init.lua | 75 ------ lua/mason-registry/lua-language-server/init.lua | 64 ----- lua/mason-registry/luacheck/init.lua | 13 - lua/mason-registry/luaformatter/init.lua | 14 - lua/mason-registry/luau-lsp/init.lua | 30 --- lua/mason-registry/markdownlint/init.lua | 11 - lua/mason-registry/marksman/init.lua | 32 --- lua/mason-registry/metamath-zero-lsp/init.lua | 24 -- lua/mason-registry/misspell/init.lua | 11 - lua/mason-registry/mockdebug/init.lua | 31 --- lua/mason-registry/move-analyzer/init.lua | 16 -- lua/mason-registry/mypy/init.lua | 11 - lua/mason-registry/neocmakelsp/init.lua | 11 - lua/mason-registry/netcoredbg/init.lua | 42 --- lua/mason-registry/nginx-language-server/init.lua | 11 - lua/mason-registry/nickel-lang-lsp/init.lua | 17 -- lua/mason-registry/nil/init.lua | 17 -- lua/mason-registry/nimlsp/init.lua | 22 -- lua/mason-registry/node-debug2-adapter/init.lua | 36 --- lua/mason-registry/nxls/init.lua | 13 - lua/mason-registry/ocaml-lsp/init.lua | 11 - lua/mason-registry/ocamlformat/init.lua | 15 -- lua/mason-registry/omnisharp-mono/init.lua | 48 ---- lua/mason-registry/omnisharp/init.lua | 46 ---- lua/mason-registry/opencl-language-server/init.lua | 44 ---- lua/mason-registry/openscad-lsp/init.lua | 13 - lua/mason-registry/perlnavigator/init.lua | 23 -- lua/mason-registry/php-cs-fixer/init.lua | 37 --- lua/mason-registry/php-debug-adapter/init.lua | 27 -- lua/mason-registry/phpactor/init.lua | 29 --- lua/mason-registry/phpcbf/init.lua | 33 --- lua/mason-registry/phpcs/init.lua | 33 --- lua/mason-registry/phpmd/init.lua | 36 --- lua/mason-registry/phpstan/init.lua | 36 --- lua/mason-registry/pint/init.lua | 16 -- .../powershell-editor-services/init.lua | 21 -- lua/mason-registry/prettier/init.lua | 26 -- lua/mason-registry/prettierd/init.lua | 26 -- lua/mason-registry/prisma-language-server/init.lua | 15 -- lua/mason-registry/proselint/init.lua | 15 -- lua/mason-registry/prosemd-lsp/init.lua | 32 --- lua/mason-registry/protolint/init.lua | 36 --- lua/mason-registry/psalm/init.lua | 20 -- lua/mason-registry/puppet-editor-services/init.lua | 26 -- .../purescript-language-server/init.lua | 16 -- lua/mason-registry/pydocstyle/init.lua | 11 - lua/mason-registry/pylama/init.lua | 11 - lua/mason-registry/pylint/init.lua | 11 - lua/mason-registry/pyproject-flake8/init.lua | 11 - lua/mason-registry/pyre/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 | 53 ---- lua/mason-registry/r-languageserver/init.lua | 87 ------- lua/mason-registry/raku-navigator/init.lua | 22 -- lua/mason-registry/reason-language-server/init.lua | 38 --- lua/mason-registry/remark-cli/init.lua | 11 - lua/mason-registry/remark-language-server/init.lua | 11 - lua/mason-registry/reorder-python-imports/init.lua | 11 - lua/mason-registry/rescript-lsp/init.lua | 36 --- lua/mason-registry/revive/init.lua | 11 - lua/mason-registry/rnix-lsp/init.lua | 13 - lua/mason-registry/robotframework-lsp/init.lua | 11 - lua/mason-registry/rome/init.lua | 11 - lua/mason-registry/rstcheck/init.lua | 11 - lua/mason-registry/rubocop/init.lua | 11 - lua/mason-registry/ruby-lsp/init.lua | 11 - lua/mason-registry/ruff-lsp/init.lua | 11 - lua/mason-registry/ruff/init.lua | 11 - lua/mason-registry/rust-analyzer/init.lua | 53 ---- lua/mason-registry/rustfmt/init.lua | 40 --- lua/mason-registry/rustywind/init.lua | 18 -- lua/mason-registry/salt-lsp/init.lua | 11 - lua/mason-registry/selene/init.lua | 34 --- lua/mason-registry/semgrep/init.lua | 22 -- lua/mason-registry/serve-d/init.lua | 51 ---- lua/mason-registry/shellcheck/init.lua | 42 --- lua/mason-registry/shellharden/init.lua | 11 - lua/mason-registry/shfmt/init.lua | 33 --- lua/mason-registry/shopify-theme-check/init.lua | 11 - lua/mason-registry/slint-lsp/init.lua | 36 --- lua/mason-registry/smithy-language-server/init.lua | 38 --- lua/mason-registry/solang/init.lua | 63 ----- lua/mason-registry/solargraph/init.lua | 11 - lua/mason-registry/solhint/init.lua | 11 - lua/mason-registry/solidity-ls/init.lua | 11 - lua/mason-registry/solidity/init.lua | 32 --- lua/mason-registry/sorbet/init.lua | 11 - lua/mason-registry/sourcery/init.lua | 15 -- lua/mason-registry/sources/init.lua | 57 +++++ lua/mason-registry/sources/lua.lua | 43 ++++ .../spectral-language-server/init.lua | 35 --- lua/mason-registry/sql-formatter/init.lua | 11 - lua/mason-registry/sqlfluff/init.lua | 11 - lua/mason-registry/sqlls/init.lua | 11 - lua/mason-registry/sqls/init.lua | 11 - lua/mason-registry/standardrb/init.lua | 11 - lua/mason-registry/staticcheck/init.lua | 11 - lua/mason-registry/stylelint-lsp/init.lua | 11 - lua/mason-registry/stylua/init.lua | 31 --- lua/mason-registry/svelte-language-server/init.lua | 11 - lua/mason-registry/svlangserver/init.lua | 15 -- lua/mason-registry/svls/init.lua | 13 - .../tailwindcss-language-server/init.lua | 11 - lua/mason-registry/taplo/init.lua | 51 ---- lua/mason-registry/teal-language-server/init.lua | 14 - lua/mason-registry/tectonic/init.lua | 62 ----- lua/mason-registry/terraform-ls/init.lua | 47 ---- lua/mason-registry/texlab/init.lua | 43 ---- lua/mason-registry/textlint/init.lua | 11 - lua/mason-registry/tflint/init.lua | 32 --- lua/mason-registry/twigcs/init.lua | 36 --- .../typescript-language-server/init.lua | 11 - lua/mason-registry/unocss-language-server/init.lua | 11 - lua/mason-registry/usort/init.lua | 11 - lua/mason-registry/vacuum/init.lua | 43 ---- lua/mason-registry/vala-language-server/init.lua | 36 --- lua/mason-registry/vale/init.lua | 49 ---- lua/mason-registry/verible/init.lua | 101 -------- lua/mason-registry/veryl-ls/init.lua | 13 - lua/mason-registry/vetur-vls/init.lua | 11 - lua/mason-registry/vim-language-server/init.lua | 11 - lua/mason-registry/vint/init.lua | 11 - .../visualforce-language-server/init.lua | 34 --- lua/mason-registry/vls/init.lua | 35 --- lua/mason-registry/vtsls/init.lua | 11 - lua/mason-registry/vue-language-server/init.lua | 11 - lua/mason-registry/vulture/init.lua | 19 -- lua/mason-registry/wgsl-analyzer/init.lua | 17 -- lua/mason-registry/write-good/init.lua | 11 - lua/mason-registry/xmlformatter/init.lua | 17 -- lua/mason-registry/xo/init.lua | 14 - lua/mason-registry/yaml-language-server/init.lua | 11 - lua/mason-registry/yamlfmt/init.lua | 35 --- lua/mason-registry/yamllint/init.lua | 15 -- lua/mason-registry/yapf/init.lua | 11 - lua/mason-registry/zk/init.lua | 55 ---- lua/mason-registry/zls/init.lua | 36 --- lua/mason/init.lua | 1 + lua/mason/settings.lua | 39 +-- 565 files changed, 6961 insertions(+), 6837 deletions(-) delete mode 100644 lua/mason-registry/actionlint/init.lua delete mode 100644 lua/mason-registry/ada-language-server/init.lua delete mode 100644 lua/mason-registry/alex/init.lua delete mode 100644 lua/mason-registry/angular-language-server/init.lua delete mode 100644 lua/mason-registry/ansible-language-server/init.lua delete mode 100644 lua/mason-registry/ansible-lint/init.lua delete mode 100644 lua/mason-registry/antlers-language-server/init.lua delete mode 100644 lua/mason-registry/apex-language-server/init.lua delete mode 100644 lua/mason-registry/arduino-language-server/init.lua delete mode 100644 lua/mason-registry/asm-lsp/init.lua delete mode 100644 lua/mason-registry/astro-language-server/init.lua delete mode 100644 lua/mason-registry/autoflake/init.lua delete mode 100644 lua/mason-registry/autopep8/init.lua delete mode 100644 lua/mason-registry/awk-language-server/init.lua delete mode 100644 lua/mason-registry/bash-debug-adapter/init.lua delete mode 100644 lua/mason-registry/bash-language-server/init.lua delete mode 100644 lua/mason-registry/beancount-language-server/init.lua delete mode 100644 lua/mason-registry/beautysh/init.lua delete mode 100644 lua/mason-registry/bicep-lsp/init.lua delete mode 100644 lua/mason-registry/black/init.lua delete mode 100644 lua/mason-registry/blackd-client/init.lua delete mode 100644 lua/mason-registry/blade-formatter/init.lua delete mode 100644 lua/mason-registry/blue/init.lua delete mode 100644 lua/mason-registry/brighterscript-formatter/init.lua delete mode 100644 lua/mason-registry/brighterscript/init.lua delete mode 100644 lua/mason-registry/bsl-language-server/init.lua delete mode 100644 lua/mason-registry/buf-language-server/init.lua delete mode 100644 lua/mason-registry/buf/init.lua delete mode 100644 lua/mason-registry/buildifier/init.lua delete mode 100644 lua/mason-registry/cbfmt/init.lua delete mode 100644 lua/mason-registry/cfn-lint/init.lua delete mode 100644 lua/mason-registry/chrome-debug-adapter/init.lua delete mode 100644 lua/mason-registry/clang-format/init.lua delete mode 100644 lua/mason-registry/clangd/init.lua delete mode 100644 lua/mason-registry/clarity-lsp/init.lua delete mode 100644 lua/mason-registry/clojure-lsp/init.lua delete mode 100644 lua/mason-registry/cmake-language-server/init.lua delete mode 100644 lua/mason-registry/cmakelang/init.lua delete mode 100644 lua/mason-registry/codelldb/init.lua delete mode 100644 lua/mason-registry/codeql/init.lua delete mode 100644 lua/mason-registry/codespell/init.lua delete mode 100644 lua/mason-registry/colorgen-nvim/init.lua delete mode 100644 lua/mason-registry/commitlint/init.lua delete mode 100644 lua/mason-registry/cpplint/init.lua delete mode 100644 lua/mason-registry/cpptools/init.lua delete mode 100644 lua/mason-registry/crystalline/init.lua delete mode 100644 lua/mason-registry/csharp-language-server/init.lua delete mode 100644 lua/mason-registry/csharpier/init.lua delete mode 100644 lua/mason-registry/cspell/init.lua delete mode 100644 lua/mason-registry/css-lsp/init.lua delete mode 100644 lua/mason-registry/cssmodules-language-server/init.lua delete mode 100644 lua/mason-registry/cucumber-language-server/init.lua delete mode 100644 lua/mason-registry/cueimports/init.lua delete mode 100644 lua/mason-registry/cuelsp/init.lua delete mode 100644 lua/mason-registry/curlylint/init.lua delete mode 100644 lua/mason-registry/dart-debug-adapter/init.lua delete mode 100644 lua/mason-registry/debugpy/init.lua delete mode 100644 lua/mason-registry/delve/init.lua delete mode 100644 lua/mason-registry/deno/init.lua delete mode 100644 lua/mason-registry/dhall-lsp/init.lua delete mode 100644 lua/mason-registry/diagnostic-languageserver/init.lua delete mode 100644 lua/mason-registry/djlint/init.lua delete mode 100644 lua/mason-registry/docker-compose-language-service/init.lua delete mode 100644 lua/mason-registry/dockerfile-language-server/init.lua delete mode 100644 lua/mason-registry/dot-language-server/init.lua delete mode 100644 lua/mason-registry/dprint/init.lua delete mode 100644 lua/mason-registry/drools-lsp/init.lua delete mode 100644 lua/mason-registry/editorconfig-checker/init.lua delete mode 100644 lua/mason-registry/efm/init.lua delete mode 100644 lua/mason-registry/elixir-ls/init.lua delete mode 100644 lua/mason-registry/elm-format/init.lua delete mode 100644 lua/mason-registry/elm-language-server/init.lua delete mode 100644 lua/mason-registry/ember-language-server/init.lua delete mode 100644 lua/mason-registry/emmet-ls/init.lua delete mode 100644 lua/mason-registry/erb-lint/init.lua delete mode 100644 lua/mason-registry/erg-language-server/init.lua delete mode 100644 lua/mason-registry/erg/init.lua delete mode 100644 lua/mason-registry/erlang-ls/init.lua delete mode 100644 lua/mason-registry/esbonio/init.lua delete mode 100644 lua/mason-registry/eslint-lsp/init.lua delete mode 100644 lua/mason-registry/eslint_d/init.lua delete mode 100644 lua/mason-registry/fantomas/init.lua delete mode 100644 lua/mason-registry/fennel-language-server/init.lua delete mode 100644 lua/mason-registry/firefox-debug-adapter/init.lua delete mode 100644 lua/mason-registry/fixjson/init.lua delete mode 100644 lua/mason-registry/flake8/init.lua delete mode 100644 lua/mason-registry/flux-lsp/init.lua delete mode 100644 lua/mason-registry/foam-language-server/init.lua delete mode 100644 lua/mason-registry/fortls/init.lua delete mode 100644 lua/mason-registry/fourmolu/init.lua delete mode 100644 lua/mason-registry/fsautocomplete/init.lua delete mode 100644 lua/mason-registry/gersemi/init.lua delete mode 100644 lua/mason-registry/gitlint/init.lua delete mode 100644 lua/mason-registry/gitui/init.lua delete mode 100644 lua/mason-registry/glint/init.lua delete mode 100644 lua/mason-registry/glow/init.lua delete mode 100644 lua/mason-registry/go-debug-adapter/init.lua delete mode 100644 lua/mason-registry/gofumpt/init.lua delete mode 100644 lua/mason-registry/goimports-reviser/init.lua delete mode 100644 lua/mason-registry/goimports/init.lua delete mode 100644 lua/mason-registry/golangci-lint-langserver/init.lua delete mode 100644 lua/mason-registry/golangci-lint/init.lua delete mode 100644 lua/mason-registry/golines/init.lua delete mode 100644 lua/mason-registry/gomodifytags/init.lua delete mode 100644 lua/mason-registry/google-java-format/init.lua delete mode 100644 lua/mason-registry/gopls/init.lua delete mode 100644 lua/mason-registry/gospel/init.lua delete mode 100644 lua/mason-registry/gotests/init.lua delete mode 100644 lua/mason-registry/gotestsum/init.lua delete mode 100644 lua/mason-registry/gradle-language-server/init.lua delete mode 100644 lua/mason-registry/grammarly-languageserver/init.lua delete mode 100644 lua/mason-registry/graphql-language-service-cli/init.lua delete mode 100644 lua/mason-registry/groovy-language-server/init.lua delete mode 100644 lua/mason-registry/hadolint/init.lua delete mode 100644 lua/mason-registry/haml-lint/init.lua delete mode 100644 lua/mason-registry/haskell-language-server/init.lua delete mode 100644 lua/mason-registry/haxe-language-server/init.lua delete mode 100644 lua/mason-registry/hoon-language-server/init.lua delete mode 100644 lua/mason-registry/html-lsp/init.lua delete mode 100644 lua/mason-registry/iferr/init.lua delete mode 100644 lua/mason-registry/impl/init.lua delete mode 100644 lua/mason-registry/index.lua create mode 100644 lua/mason-registry/index/actionlint/init.lua create mode 100644 lua/mason-registry/index/ada-language-server/init.lua create mode 100644 lua/mason-registry/index/alex/init.lua create mode 100644 lua/mason-registry/index/angular-language-server/init.lua create mode 100644 lua/mason-registry/index/ansible-language-server/init.lua create mode 100644 lua/mason-registry/index/ansible-lint/init.lua create mode 100644 lua/mason-registry/index/antlers-language-server/init.lua create mode 100644 lua/mason-registry/index/apex-language-server/init.lua create mode 100644 lua/mason-registry/index/arduino-language-server/init.lua create mode 100644 lua/mason-registry/index/asm-lsp/init.lua create mode 100644 lua/mason-registry/index/astro-language-server/init.lua create mode 100644 lua/mason-registry/index/autoflake/init.lua create mode 100644 lua/mason-registry/index/autopep8/init.lua create mode 100644 lua/mason-registry/index/awk-language-server/init.lua create mode 100644 lua/mason-registry/index/bash-debug-adapter/init.lua create mode 100644 lua/mason-registry/index/bash-language-server/init.lua create mode 100644 lua/mason-registry/index/beancount-language-server/init.lua create mode 100644 lua/mason-registry/index/beautysh/init.lua create mode 100644 lua/mason-registry/index/bicep-lsp/init.lua create mode 100644 lua/mason-registry/index/black/init.lua create mode 100644 lua/mason-registry/index/blackd-client/init.lua create mode 100644 lua/mason-registry/index/blade-formatter/init.lua create mode 100644 lua/mason-registry/index/blue/init.lua create mode 100644 lua/mason-registry/index/brighterscript-formatter/init.lua create mode 100644 lua/mason-registry/index/brighterscript/init.lua create mode 100644 lua/mason-registry/index/bsl-language-server/init.lua create mode 100644 lua/mason-registry/index/buf-language-server/init.lua create mode 100644 lua/mason-registry/index/buf/init.lua create mode 100644 lua/mason-registry/index/buildifier/init.lua create mode 100644 lua/mason-registry/index/cbfmt/init.lua create mode 100644 lua/mason-registry/index/cfn-lint/init.lua create mode 100644 lua/mason-registry/index/chrome-debug-adapter/init.lua create mode 100644 lua/mason-registry/index/clang-format/init.lua create mode 100644 lua/mason-registry/index/clangd/init.lua create mode 100644 lua/mason-registry/index/clarity-lsp/init.lua create mode 100644 lua/mason-registry/index/clojure-lsp/init.lua create mode 100644 lua/mason-registry/index/cmake-language-server/init.lua create mode 100644 lua/mason-registry/index/cmakelang/init.lua create mode 100644 lua/mason-registry/index/codelldb/init.lua create mode 100644 lua/mason-registry/index/codeql/init.lua create mode 100644 lua/mason-registry/index/codespell/init.lua create mode 100644 lua/mason-registry/index/colorgen-nvim/init.lua create mode 100644 lua/mason-registry/index/commitlint/init.lua create mode 100644 lua/mason-registry/index/cpplint/init.lua create mode 100644 lua/mason-registry/index/cpptools/init.lua create mode 100644 lua/mason-registry/index/crystalline/init.lua create mode 100644 lua/mason-registry/index/csharp-language-server/init.lua create mode 100644 lua/mason-registry/index/csharpier/init.lua create mode 100644 lua/mason-registry/index/cspell/init.lua create mode 100644 lua/mason-registry/index/css-lsp/init.lua create mode 100644 lua/mason-registry/index/cssmodules-language-server/init.lua create mode 100644 lua/mason-registry/index/cucumber-language-server/init.lua create mode 100644 lua/mason-registry/index/cueimports/init.lua create mode 100644 lua/mason-registry/index/cuelsp/init.lua create mode 100644 lua/mason-registry/index/curlylint/init.lua create mode 100644 lua/mason-registry/index/dart-debug-adapter/init.lua create mode 100644 lua/mason-registry/index/debugpy/init.lua create mode 100644 lua/mason-registry/index/delve/init.lua create mode 100644 lua/mason-registry/index/deno/init.lua create mode 100644 lua/mason-registry/index/dhall-lsp/init.lua create mode 100644 lua/mason-registry/index/diagnostic-languageserver/init.lua create mode 100644 lua/mason-registry/index/djlint/init.lua create mode 100644 lua/mason-registry/index/docker-compose-language-service/init.lua create mode 100644 lua/mason-registry/index/dockerfile-language-server/init.lua create mode 100644 lua/mason-registry/index/dot-language-server/init.lua create mode 100644 lua/mason-registry/index/dprint/init.lua create mode 100644 lua/mason-registry/index/drools-lsp/init.lua create mode 100644 lua/mason-registry/index/editorconfig-checker/init.lua create mode 100644 lua/mason-registry/index/efm/init.lua create mode 100644 lua/mason-registry/index/elixir-ls/init.lua create mode 100644 lua/mason-registry/index/elm-format/init.lua create mode 100644 lua/mason-registry/index/elm-language-server/init.lua create mode 100644 lua/mason-registry/index/ember-language-server/init.lua create mode 100644 lua/mason-registry/index/emmet-ls/init.lua create mode 100644 lua/mason-registry/index/erb-lint/init.lua create mode 100644 lua/mason-registry/index/erg-language-server/init.lua create mode 100644 lua/mason-registry/index/erg/init.lua create mode 100644 lua/mason-registry/index/erlang-ls/init.lua create mode 100644 lua/mason-registry/index/esbonio/init.lua create mode 100644 lua/mason-registry/index/eslint-lsp/init.lua create mode 100644 lua/mason-registry/index/eslint_d/init.lua create mode 100644 lua/mason-registry/index/fantomas/init.lua create mode 100644 lua/mason-registry/index/fennel-language-server/init.lua create mode 100644 lua/mason-registry/index/firefox-debug-adapter/init.lua create mode 100644 lua/mason-registry/index/fixjson/init.lua create mode 100644 lua/mason-registry/index/flake8/init.lua create mode 100644 lua/mason-registry/index/flux-lsp/init.lua create mode 100644 lua/mason-registry/index/foam-language-server/init.lua create mode 100644 lua/mason-registry/index/fortls/init.lua create mode 100644 lua/mason-registry/index/fourmolu/init.lua create mode 100644 lua/mason-registry/index/fsautocomplete/init.lua create mode 100644 lua/mason-registry/index/gersemi/init.lua create mode 100644 lua/mason-registry/index/gitlint/init.lua create mode 100644 lua/mason-registry/index/gitui/init.lua create mode 100644 lua/mason-registry/index/glint/init.lua create mode 100644 lua/mason-registry/index/glow/init.lua create mode 100644 lua/mason-registry/index/go-debug-adapter/init.lua create mode 100644 lua/mason-registry/index/gofumpt/init.lua create mode 100644 lua/mason-registry/index/goimports-reviser/init.lua create mode 100644 lua/mason-registry/index/goimports/init.lua create mode 100644 lua/mason-registry/index/golangci-lint-langserver/init.lua create mode 100644 lua/mason-registry/index/golangci-lint/init.lua create mode 100644 lua/mason-registry/index/golines/init.lua create mode 100644 lua/mason-registry/index/gomodifytags/init.lua create mode 100644 lua/mason-registry/index/google-java-format/init.lua create mode 100644 lua/mason-registry/index/gopls/init.lua create mode 100644 lua/mason-registry/index/gospel/init.lua create mode 100644 lua/mason-registry/index/gotests/init.lua create mode 100644 lua/mason-registry/index/gotestsum/init.lua create mode 100644 lua/mason-registry/index/gradle-language-server/init.lua create mode 100644 lua/mason-registry/index/grammarly-languageserver/init.lua create mode 100644 lua/mason-registry/index/graphql-language-service-cli/init.lua create mode 100644 lua/mason-registry/index/groovy-language-server/init.lua create mode 100644 lua/mason-registry/index/hadolint/init.lua create mode 100644 lua/mason-registry/index/haml-lint/init.lua create mode 100644 lua/mason-registry/index/haskell-language-server/init.lua create mode 100644 lua/mason-registry/index/haxe-language-server/init.lua create mode 100644 lua/mason-registry/index/hoon-language-server/init.lua create mode 100644 lua/mason-registry/index/html-lsp/init.lua create mode 100644 lua/mason-registry/index/iferr/init.lua create mode 100644 lua/mason-registry/index/impl/init.lua create mode 100644 lua/mason-registry/index/init.lua create mode 100644 lua/mason-registry/index/intelephense/init.lua create mode 100644 lua/mason-registry/index/isort/init.lua create mode 100644 lua/mason-registry/index/java-debug-adapter/init.lua create mode 100644 lua/mason-registry/index/java-test/init.lua create mode 100644 lua/mason-registry/index/jdtls/init.lua create mode 100644 lua/mason-registry/index/jedi-language-server/init.lua create mode 100644 lua/mason-registry/index/joker/init.lua create mode 100644 lua/mason-registry/index/jq-lsp/init.lua create mode 100644 lua/mason-registry/index/jq/init.lua create mode 100644 lua/mason-registry/index/js-debug-adapter/init.lua create mode 100644 lua/mason-registry/index/json-lsp/init.lua create mode 100644 lua/mason-registry/index/json-to-struct/init.lua create mode 100644 lua/mason-registry/index/jsonlint/init.lua create mode 100644 lua/mason-registry/index/jsonnet-language-server/init.lua create mode 100644 lua/mason-registry/index/julia-lsp/init.lua create mode 100644 lua/mason-registry/index/kotlin-debug-adapter/init.lua create mode 100644 lua/mason-registry/index/kotlin-language-server/init.lua create mode 100644 lua/mason-registry/index/ktlint/init.lua create mode 100644 lua/mason-registry/index/latexindent/init.lua create mode 100644 lua/mason-registry/index/lelwel/init.lua create mode 100644 lua/mason-registry/index/lemminx/init.lua create mode 100644 lua/mason-registry/index/lemmy-help/init.lua create mode 100644 lua/mason-registry/index/ltex-ls/init.lua create mode 100644 lua/mason-registry/index/lua-language-server/init.lua create mode 100644 lua/mason-registry/index/luacheck/init.lua create mode 100644 lua/mason-registry/index/luaformatter/init.lua create mode 100644 lua/mason-registry/index/luau-lsp/init.lua create mode 100644 lua/mason-registry/index/markdownlint/init.lua create mode 100644 lua/mason-registry/index/marksman/init.lua create mode 100644 lua/mason-registry/index/metamath-zero-lsp/init.lua create mode 100644 lua/mason-registry/index/misspell/init.lua create mode 100644 lua/mason-registry/index/mockdebug/init.lua create mode 100644 lua/mason-registry/index/move-analyzer/init.lua create mode 100644 lua/mason-registry/index/mypy/init.lua create mode 100644 lua/mason-registry/index/neocmakelsp/init.lua create mode 100644 lua/mason-registry/index/netcoredbg/init.lua create mode 100644 lua/mason-registry/index/nginx-language-server/init.lua create mode 100644 lua/mason-registry/index/nickel-lang-lsp/init.lua create mode 100644 lua/mason-registry/index/nil/init.lua create mode 100644 lua/mason-registry/index/nimlsp/init.lua create mode 100644 lua/mason-registry/index/node-debug2-adapter/init.lua create mode 100644 lua/mason-registry/index/nxls/init.lua create mode 100644 lua/mason-registry/index/ocaml-lsp/init.lua create mode 100644 lua/mason-registry/index/ocamlformat/init.lua create mode 100644 lua/mason-registry/index/omnisharp-mono/init.lua create mode 100644 lua/mason-registry/index/omnisharp/init.lua create mode 100644 lua/mason-registry/index/opencl-language-server/init.lua create mode 100644 lua/mason-registry/index/openscad-lsp/init.lua create mode 100644 lua/mason-registry/index/perlnavigator/init.lua create mode 100644 lua/mason-registry/index/php-cs-fixer/init.lua create mode 100644 lua/mason-registry/index/php-debug-adapter/init.lua create mode 100644 lua/mason-registry/index/phpactor/init.lua create mode 100644 lua/mason-registry/index/phpcbf/init.lua create mode 100644 lua/mason-registry/index/phpcs/init.lua create mode 100644 lua/mason-registry/index/phpmd/init.lua create mode 100644 lua/mason-registry/index/phpstan/init.lua create mode 100644 lua/mason-registry/index/pint/init.lua create mode 100644 lua/mason-registry/index/powershell-editor-services/init.lua create mode 100644 lua/mason-registry/index/prettier/init.lua create mode 100644 lua/mason-registry/index/prettierd/init.lua create mode 100644 lua/mason-registry/index/prisma-language-server/init.lua create mode 100644 lua/mason-registry/index/proselint/init.lua create mode 100644 lua/mason-registry/index/prosemd-lsp/init.lua create mode 100644 lua/mason-registry/index/protolint/init.lua create mode 100644 lua/mason-registry/index/psalm/init.lua create mode 100644 lua/mason-registry/index/puppet-editor-services/init.lua create mode 100644 lua/mason-registry/index/purescript-language-server/init.lua create mode 100644 lua/mason-registry/index/pydocstyle/init.lua create mode 100644 lua/mason-registry/index/pylama/init.lua create mode 100644 lua/mason-registry/index/pylint/init.lua create mode 100644 lua/mason-registry/index/pyproject-flake8/init.lua create mode 100644 lua/mason-registry/index/pyre/init.lua create mode 100644 lua/mason-registry/index/pyright/init.lua create mode 100644 lua/mason-registry/index/python-lsp-server/init.lua create mode 100644 lua/mason-registry/index/quick-lint-js/init.lua create mode 100644 lua/mason-registry/index/r-languageserver/init.lua create mode 100644 lua/mason-registry/index/raku-navigator/init.lua create mode 100644 lua/mason-registry/index/reason-language-server/init.lua create mode 100644 lua/mason-registry/index/remark-cli/init.lua create mode 100644 lua/mason-registry/index/remark-language-server/init.lua create mode 100644 lua/mason-registry/index/reorder-python-imports/init.lua create mode 100644 lua/mason-registry/index/rescript-lsp/init.lua create mode 100644 lua/mason-registry/index/revive/init.lua create mode 100644 lua/mason-registry/index/rnix-lsp/init.lua create mode 100644 lua/mason-registry/index/robotframework-lsp/init.lua create mode 100644 lua/mason-registry/index/rome/init.lua create mode 100644 lua/mason-registry/index/rstcheck/init.lua create mode 100644 lua/mason-registry/index/rubocop/init.lua create mode 100644 lua/mason-registry/index/ruby-lsp/init.lua create mode 100644 lua/mason-registry/index/ruff-lsp/init.lua create mode 100644 lua/mason-registry/index/ruff/init.lua create mode 100644 lua/mason-registry/index/rust-analyzer/init.lua create mode 100644 lua/mason-registry/index/rustfmt/init.lua create mode 100644 lua/mason-registry/index/rustywind/init.lua create mode 100644 lua/mason-registry/index/salt-lsp/init.lua create mode 100644 lua/mason-registry/index/selene/init.lua create mode 100644 lua/mason-registry/index/semgrep/init.lua create mode 100644 lua/mason-registry/index/serve-d/init.lua create mode 100644 lua/mason-registry/index/shellcheck/init.lua create mode 100644 lua/mason-registry/index/shellharden/init.lua create mode 100644 lua/mason-registry/index/shfmt/init.lua create mode 100644 lua/mason-registry/index/shopify-theme-check/init.lua create mode 100644 lua/mason-registry/index/slint-lsp/init.lua create mode 100644 lua/mason-registry/index/smithy-language-server/init.lua create mode 100644 lua/mason-registry/index/solang/init.lua create mode 100644 lua/mason-registry/index/solargraph/init.lua create mode 100644 lua/mason-registry/index/solhint/init.lua create mode 100644 lua/mason-registry/index/solidity-ls/init.lua create mode 100644 lua/mason-registry/index/solidity/init.lua create mode 100644 lua/mason-registry/index/sorbet/init.lua create mode 100644 lua/mason-registry/index/sourcery/init.lua create mode 100644 lua/mason-registry/index/spectral-language-server/init.lua create mode 100644 lua/mason-registry/index/sql-formatter/init.lua create mode 100644 lua/mason-registry/index/sqlfluff/init.lua create mode 100644 lua/mason-registry/index/sqlls/init.lua create mode 100644 lua/mason-registry/index/sqls/init.lua create mode 100644 lua/mason-registry/index/standardrb/init.lua create mode 100644 lua/mason-registry/index/staticcheck/init.lua create mode 100644 lua/mason-registry/index/stylelint-lsp/init.lua create mode 100644 lua/mason-registry/index/stylua/init.lua create mode 100644 lua/mason-registry/index/svelte-language-server/init.lua create mode 100644 lua/mason-registry/index/svlangserver/init.lua create mode 100644 lua/mason-registry/index/svls/init.lua create mode 100644 lua/mason-registry/index/tailwindcss-language-server/init.lua create mode 100644 lua/mason-registry/index/taplo/init.lua create mode 100644 lua/mason-registry/index/teal-language-server/init.lua create mode 100644 lua/mason-registry/index/tectonic/init.lua create mode 100644 lua/mason-registry/index/terraform-ls/init.lua create mode 100644 lua/mason-registry/index/texlab/init.lua create mode 100644 lua/mason-registry/index/textlint/init.lua create mode 100644 lua/mason-registry/index/tflint/init.lua create mode 100644 lua/mason-registry/index/twigcs/init.lua create mode 100644 lua/mason-registry/index/typescript-language-server/init.lua create mode 100644 lua/mason-registry/index/unocss-language-server/init.lua create mode 100644 lua/mason-registry/index/usort/init.lua create mode 100644 lua/mason-registry/index/vacuum/init.lua create mode 100644 lua/mason-registry/index/vala-language-server/init.lua create mode 100644 lua/mason-registry/index/vale/init.lua create mode 100644 lua/mason-registry/index/verible/init.lua create mode 100644 lua/mason-registry/index/veryl-ls/init.lua create mode 100644 lua/mason-registry/index/vetur-vls/init.lua create mode 100644 lua/mason-registry/index/vim-language-server/init.lua create mode 100644 lua/mason-registry/index/vint/init.lua create mode 100644 lua/mason-registry/index/visualforce-language-server/init.lua create mode 100644 lua/mason-registry/index/vls/init.lua create mode 100644 lua/mason-registry/index/vtsls/init.lua create mode 100644 lua/mason-registry/index/vue-language-server/init.lua create mode 100644 lua/mason-registry/index/vulture/init.lua create mode 100644 lua/mason-registry/index/wgsl-analyzer/init.lua create mode 100644 lua/mason-registry/index/write-good/init.lua create mode 100644 lua/mason-registry/index/xmlformatter/init.lua create mode 100644 lua/mason-registry/index/xo/init.lua create mode 100644 lua/mason-registry/index/yaml-language-server/init.lua create mode 100644 lua/mason-registry/index/yamlfmt/init.lua create mode 100644 lua/mason-registry/index/yamllint/init.lua create mode 100644 lua/mason-registry/index/yapf/init.lua create mode 100644 lua/mason-registry/index/zk/init.lua create mode 100644 lua/mason-registry/index/zls/init.lua delete mode 100644 lua/mason-registry/intelephense/init.lua delete mode 100644 lua/mason-registry/isort/init.lua delete mode 100644 lua/mason-registry/java-debug-adapter/init.lua delete mode 100644 lua/mason-registry/java-test/init.lua delete mode 100644 lua/mason-registry/jdtls/init.lua delete mode 100644 lua/mason-registry/jedi-language-server/init.lua delete mode 100644 lua/mason-registry/joker/init.lua delete mode 100644 lua/mason-registry/jq-lsp/init.lua delete mode 100644 lua/mason-registry/jq/init.lua delete mode 100644 lua/mason-registry/js-debug-adapter/init.lua delete mode 100644 lua/mason-registry/json-lsp/init.lua delete mode 100644 lua/mason-registry/json-to-struct/init.lua delete mode 100644 lua/mason-registry/jsonlint/init.lua delete mode 100644 lua/mason-registry/jsonnet-language-server/init.lua delete mode 100644 lua/mason-registry/julia-lsp/init.lua delete mode 100644 lua/mason-registry/kotlin-debug-adapter/init.lua delete mode 100644 lua/mason-registry/kotlin-language-server/init.lua delete mode 100644 lua/mason-registry/ktlint/init.lua delete mode 100644 lua/mason-registry/latexindent/init.lua delete mode 100644 lua/mason-registry/lelwel/init.lua delete mode 100644 lua/mason-registry/lemminx/init.lua delete mode 100644 lua/mason-registry/lemmy-help/init.lua delete mode 100644 lua/mason-registry/ltex-ls/init.lua delete mode 100644 lua/mason-registry/lua-language-server/init.lua delete mode 100644 lua/mason-registry/luacheck/init.lua delete mode 100644 lua/mason-registry/luaformatter/init.lua delete mode 100644 lua/mason-registry/luau-lsp/init.lua delete mode 100644 lua/mason-registry/markdownlint/init.lua delete mode 100644 lua/mason-registry/marksman/init.lua delete mode 100644 lua/mason-registry/metamath-zero-lsp/init.lua delete mode 100644 lua/mason-registry/misspell/init.lua delete mode 100644 lua/mason-registry/mockdebug/init.lua delete mode 100644 lua/mason-registry/move-analyzer/init.lua delete mode 100644 lua/mason-registry/mypy/init.lua delete mode 100644 lua/mason-registry/neocmakelsp/init.lua delete mode 100644 lua/mason-registry/netcoredbg/init.lua delete mode 100644 lua/mason-registry/nginx-language-server/init.lua delete mode 100644 lua/mason-registry/nickel-lang-lsp/init.lua delete mode 100644 lua/mason-registry/nil/init.lua delete mode 100644 lua/mason-registry/nimlsp/init.lua delete mode 100644 lua/mason-registry/node-debug2-adapter/init.lua delete mode 100644 lua/mason-registry/nxls/init.lua delete mode 100644 lua/mason-registry/ocaml-lsp/init.lua delete mode 100644 lua/mason-registry/ocamlformat/init.lua delete mode 100644 lua/mason-registry/omnisharp-mono/init.lua delete mode 100644 lua/mason-registry/omnisharp/init.lua delete mode 100644 lua/mason-registry/opencl-language-server/init.lua delete mode 100644 lua/mason-registry/openscad-lsp/init.lua delete mode 100644 lua/mason-registry/perlnavigator/init.lua delete mode 100644 lua/mason-registry/php-cs-fixer/init.lua delete mode 100644 lua/mason-registry/php-debug-adapter/init.lua delete mode 100644 lua/mason-registry/phpactor/init.lua delete mode 100644 lua/mason-registry/phpcbf/init.lua delete mode 100644 lua/mason-registry/phpcs/init.lua delete mode 100644 lua/mason-registry/phpmd/init.lua delete mode 100644 lua/mason-registry/phpstan/init.lua delete mode 100644 lua/mason-registry/pint/init.lua delete mode 100644 lua/mason-registry/powershell-editor-services/init.lua delete mode 100644 lua/mason-registry/prettier/init.lua delete mode 100644 lua/mason-registry/prettierd/init.lua delete mode 100644 lua/mason-registry/prisma-language-server/init.lua delete mode 100644 lua/mason-registry/proselint/init.lua delete mode 100644 lua/mason-registry/prosemd-lsp/init.lua delete mode 100644 lua/mason-registry/protolint/init.lua delete mode 100644 lua/mason-registry/psalm/init.lua delete mode 100644 lua/mason-registry/puppet-editor-services/init.lua delete mode 100644 lua/mason-registry/purescript-language-server/init.lua delete mode 100644 lua/mason-registry/pydocstyle/init.lua delete mode 100644 lua/mason-registry/pylama/init.lua delete mode 100644 lua/mason-registry/pylint/init.lua delete mode 100644 lua/mason-registry/pyproject-flake8/init.lua delete mode 100644 lua/mason-registry/pyre/init.lua delete mode 100644 lua/mason-registry/pyright/init.lua delete mode 100644 lua/mason-registry/python-lsp-server/init.lua delete mode 100644 lua/mason-registry/quick-lint-js/init.lua delete mode 100644 lua/mason-registry/r-languageserver/init.lua delete mode 100644 lua/mason-registry/raku-navigator/init.lua delete mode 100644 lua/mason-registry/reason-language-server/init.lua delete mode 100644 lua/mason-registry/remark-cli/init.lua delete mode 100644 lua/mason-registry/remark-language-server/init.lua delete mode 100644 lua/mason-registry/reorder-python-imports/init.lua delete mode 100644 lua/mason-registry/rescript-lsp/init.lua delete mode 100644 lua/mason-registry/revive/init.lua delete mode 100644 lua/mason-registry/rnix-lsp/init.lua delete mode 100644 lua/mason-registry/robotframework-lsp/init.lua delete mode 100644 lua/mason-registry/rome/init.lua delete mode 100644 lua/mason-registry/rstcheck/init.lua delete mode 100644 lua/mason-registry/rubocop/init.lua delete mode 100644 lua/mason-registry/ruby-lsp/init.lua delete mode 100644 lua/mason-registry/ruff-lsp/init.lua delete mode 100644 lua/mason-registry/ruff/init.lua delete mode 100644 lua/mason-registry/rust-analyzer/init.lua delete mode 100644 lua/mason-registry/rustfmt/init.lua delete mode 100644 lua/mason-registry/rustywind/init.lua delete mode 100644 lua/mason-registry/salt-lsp/init.lua delete mode 100644 lua/mason-registry/selene/init.lua delete mode 100644 lua/mason-registry/semgrep/init.lua delete mode 100644 lua/mason-registry/serve-d/init.lua delete mode 100644 lua/mason-registry/shellcheck/init.lua delete mode 100644 lua/mason-registry/shellharden/init.lua delete mode 100644 lua/mason-registry/shfmt/init.lua delete mode 100644 lua/mason-registry/shopify-theme-check/init.lua delete mode 100644 lua/mason-registry/slint-lsp/init.lua delete mode 100644 lua/mason-registry/smithy-language-server/init.lua delete mode 100644 lua/mason-registry/solang/init.lua delete mode 100644 lua/mason-registry/solargraph/init.lua delete mode 100644 lua/mason-registry/solhint/init.lua delete mode 100644 lua/mason-registry/solidity-ls/init.lua delete mode 100644 lua/mason-registry/solidity/init.lua delete mode 100644 lua/mason-registry/sorbet/init.lua delete mode 100644 lua/mason-registry/sourcery/init.lua create mode 100644 lua/mason-registry/sources/init.lua create mode 100644 lua/mason-registry/sources/lua.lua delete mode 100644 lua/mason-registry/spectral-language-server/init.lua delete mode 100644 lua/mason-registry/sql-formatter/init.lua delete mode 100644 lua/mason-registry/sqlfluff/init.lua delete mode 100644 lua/mason-registry/sqlls/init.lua delete mode 100644 lua/mason-registry/sqls/init.lua delete mode 100644 lua/mason-registry/standardrb/init.lua delete mode 100644 lua/mason-registry/staticcheck/init.lua delete mode 100644 lua/mason-registry/stylelint-lsp/init.lua delete mode 100644 lua/mason-registry/stylua/init.lua delete mode 100644 lua/mason-registry/svelte-language-server/init.lua delete mode 100644 lua/mason-registry/svlangserver/init.lua delete mode 100644 lua/mason-registry/svls/init.lua delete mode 100644 lua/mason-registry/tailwindcss-language-server/init.lua delete mode 100644 lua/mason-registry/taplo/init.lua delete mode 100644 lua/mason-registry/teal-language-server/init.lua delete mode 100644 lua/mason-registry/tectonic/init.lua delete mode 100644 lua/mason-registry/terraform-ls/init.lua delete mode 100644 lua/mason-registry/texlab/init.lua delete mode 100644 lua/mason-registry/textlint/init.lua delete mode 100644 lua/mason-registry/tflint/init.lua delete mode 100644 lua/mason-registry/twigcs/init.lua delete mode 100644 lua/mason-registry/typescript-language-server/init.lua delete mode 100644 lua/mason-registry/unocss-language-server/init.lua delete mode 100644 lua/mason-registry/usort/init.lua delete mode 100644 lua/mason-registry/vacuum/init.lua delete mode 100644 lua/mason-registry/vala-language-server/init.lua delete mode 100644 lua/mason-registry/vale/init.lua delete mode 100644 lua/mason-registry/verible/init.lua delete mode 100644 lua/mason-registry/veryl-ls/init.lua delete mode 100644 lua/mason-registry/vetur-vls/init.lua delete mode 100644 lua/mason-registry/vim-language-server/init.lua delete mode 100644 lua/mason-registry/vint/init.lua delete mode 100644 lua/mason-registry/visualforce-language-server/init.lua delete mode 100644 lua/mason-registry/vls/init.lua delete mode 100644 lua/mason-registry/vtsls/init.lua delete mode 100644 lua/mason-registry/vue-language-server/init.lua delete mode 100644 lua/mason-registry/vulture/init.lua delete mode 100644 lua/mason-registry/wgsl-analyzer/init.lua delete mode 100644 lua/mason-registry/write-good/init.lua delete mode 100644 lua/mason-registry/xmlformatter/init.lua delete mode 100644 lua/mason-registry/xo/init.lua delete mode 100644 lua/mason-registry/yaml-language-server/init.lua delete mode 100644 lua/mason-registry/yamlfmt/init.lua delete mode 100644 lua/mason-registry/yamllint/init.lua delete mode 100644 lua/mason-registry/yapf/init.lua delete mode 100644 lua/mason-registry/zk/init.lua delete mode 100644 lua/mason-registry/zls/init.lua (limited to 'lua') diff --git a/lua/mason-registry/actionlint/init.lua b/lua/mason-registry/actionlint/init.lua deleted file mode 100644 index 4d6e71bb..00000000 --- a/lua/mason-registry/actionlint/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 std = require "mason-core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "actionlint", - desc = [[Static checker for GitHub Actions workflow files]], - homepage = "https://github.com/rhysd/actionlint", - languages = { Pkg.Lang.YAML }, - categories = { Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "rhysd/actionlint" - local function format_release_file(file) - return _.compose(_.format(file), _.gsub("^v", "")) - end - - platform.when { - unix = function() - github - .untargz_release_file({ - repo = repo, - asset_file = coalesce( - when(platform.is.mac_x64, format_release_file "actionlint_%s_darwin_amd64.tar.gz"), - when(platform.is.mac_arm64, format_release_file "actionlint_%s_darwin_arm64.tar.gz"), - when(platform.is.linux_x64, format_release_file "actionlint_%s_linux_amd64.tar.gz"), - when(platform.is.linux_arm, format_release_file "actionlint_%s_linux_armv6.tar.gz"), - when(platform.is.linux_arm64, format_release_file "actionlint_%s_linux_arm64.tar.gz"), - when(platform.is.linux_x86, format_release_file "actionlint_%s_linux_386.tar.gz") - ), - }) - .with_receipt() - std.chmod("+x", { "actionlint" }) - end, - win = function() - github - .unzip_release_file({ - repo = repo, - asset_file = coalesce( - when(platform.is.win_arm64, format_release_file "actionlint_%s_windows_arm64.zip"), - when(platform.is.win_x64, format_release_file "actionlint_%s_windows_amd64.zip"), - when(platform.is.win_x86, format_release_file "actionlint_%s_windows_386.zip") - ), - }) - .with_receipt() - end, - } - ctx:link_bin("actionlint", platform.is.win and "actionlint.exe" or "actionlint") - end, -} diff --git a/lua/mason-registry/ada-language-server/init.lua b/lua/mason-registry/ada-language-server/init.lua deleted file mode 100644 index da870817..00000000 --- a/lua/mason-registry/ada-language-server/init.lua +++ /dev/null @@ -1,40 +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 = "ada-language-server", - desc = [[Ada/SPARK language server]], - homepage = "https://github.com/AdaCore/ada_language_server", - languages = { Pkg.Lang.Ada }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "AdaCore/ada_language_server", - asset_file = function(release) - local target = coalesce( - when(platform.is.mac, "als-%s-macOS_amd64.zip"), - when(platform.is.linux_x64, "als-%s-Linux_amd64.zip"), - when(platform.is.win_x64, "als-%s-Windows_amd64.zip") - ) - return target and target:format(release) - end, - }) - .with_receipt() - - local binary = coalesce( - when(platform.is.mac, path.concat { "darwin", "ada_language_server" }), - when(platform.is.linux_x64, path.concat { "linux", "ada_language_server" }), - when(platform.is.win_x64, path.concat { "win32", "ada_language_server.exe" }) - ) - ctx:link_bin("ada_language_server", binary) - end, -} diff --git a/lua/mason-registry/alex/init.lua b/lua/mason-registry/alex/init.lua deleted file mode 100644 index 67d40455..00000000 --- a/lua/mason-registry/alex/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 = "alex", - desc = [[Catch insensitive, inconsiderate writing]], - homepage = "https://github.com/get-alex/alex", - languages = { Pkg.Lang.Markdown }, - categories = { Pkg.Cat.Linter }, - install = npm.packages { "alex", bin = { "alex" } }, -} diff --git a/lua/mason-registry/angular-language-server/init.lua b/lua/mason-registry/angular-language-server/init.lua deleted file mode 100644 index f56dd4cb..00000000 --- a/lua/mason-registry/angular-language-server/init.lua +++ /dev/null @@ -1,16 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "angular-language-server", - desc = _.dedent [[ - 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 deleted file mode 100644 index abb6e1df..00000000 --- a/lua/mason-registry/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-registry/ansible-lint/init.lua b/lua/mason-registry/ansible-lint/init.lua deleted file mode 100644 index 1727e182..00000000 --- a/lua/mason-registry/ansible-lint/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "ansible-lint", - desc = _.dedent [[ - Ansible Lint is a command-line tool for linting playbooks, - roles and collections aimed toward any Ansible users. - ]], - homepage = "https://github.com/ansible/ansible-lint", - languages = { Pkg.Lang.Ansible }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "ansible-lint", bin = { "ansible-lint" } }, -} diff --git a/lua/mason-registry/antlers-language-server/init.lua b/lua/mason-registry/antlers-language-server/init.lua deleted file mode 100644 index c518ed8c..00000000 --- a/lua/mason-registry/antlers-language-server/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "antlers-language-server", - desc = _.dedent [[ - Provides rich language features for Statamic's Antlers templating language, including code completions, syntax - highlighting, and more. - ]], - homepage = "https://github.com/Stillat/vscode-antlers-language-server", - languages = { Pkg.Lang.Antlers }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "antlers-language-server", bin = { "antlersls" } }, -} diff --git a/lua/mason-registry/apex-language-server/init.lua b/lua/mason-registry/apex-language-server/init.lua deleted file mode 100644 index e32dd98d..00000000 --- a/lua/mason-registry/apex-language-server/init.lua +++ /dev/null @@ -1,43 +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 = _.dedent [[ - 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", "dist", 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 deleted file mode 100644 index 1d2e686c..00000000 --- a/lua/mason-registry/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_%s_Windows_64bit.zip"), - when(platform.is.win_x86, "arduino-language-server_%s_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 deleted file mode 100644 index 9b2cc6fd..00000000 --- a/lua/mason-registry/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-registry/astro-language-server/init.lua b/lua/mason-registry/astro-language-server/init.lua deleted file mode 100644 index 8e69ddfe..00000000 --- a/lua/mason-registry/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", "typescript", bin = { "astro-ls" } }, -} diff --git a/lua/mason-registry/autoflake/init.lua b/lua/mason-registry/autoflake/init.lua deleted file mode 100644 index 121abf34..00000000 --- a/lua/mason-registry/autoflake/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 = "autoflake", - desc = [[autoflake removes unused imports and unused variables from Python code.]], - homepage = "https://pypi.org/project/autoflake/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "autoflake", bin = { "autoflake" } }, -} diff --git a/lua/mason-registry/autopep8/init.lua b/lua/mason-registry/autopep8/init.lua deleted file mode 100644 index 18f34530..00000000 --- a/lua/mason-registry/autopep8/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 = "autopep8", - desc = [[A tool that automatically formats Python code to conform to the PEP 8 style guide]], - homepage = "https://pypi.org/project/autopep8/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "autopep8", bin = { "autopep8" } }, -} diff --git a/lua/mason-registry/awk-language-server/init.lua b/lua/mason-registry/awk-language-server/init.lua deleted file mode 100644 index 9b725cfa..00000000 --- a/lua/mason-registry/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-registry/bash-debug-adapter/init.lua b/lua/mason-registry/bash-debug-adapter/init.lua deleted file mode 100644 index 6d98e2e8..00000000 --- a/lua/mason-registry/bash-debug-adapter/init.lua +++ /dev/null @@ -1,44 +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 _ = require "mason-core.functional" -local path = require "mason-core.path" -local Optional = require "mason-core.optional" - -return Pkg.new { - name = "bash-debug-adapter", - desc = [[Bash shell debugger, based on bashdb.]], - homepage = "https://github.com/rogalmic/vscode-bash-debug", - languages = { Pkg.Lang.Bash }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "rogalmic/vscode-bash-debug" - ---@type GitHubRelease - local 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 release_asset = _.find_first(_.prop_satisfies(_.matches "%.vsix$", "name"), release.assets) - - github - .unzip_release_file({ - repo = repo, - asset_file = release_asset.name, - version = Optional.of(release.tag_name), - }) - .with_receipt() - - ctx.fs:rmrf(path.concat { "extension", "images" }) - ctx:link_bin( - "bash-debug-adapter", - ctx:write_node_exec_wrapper("bash-debug-adapter", path.concat { "extension", "out", "bashDebug.js" }) - ) - end, -} diff --git a/lua/mason-registry/bash-language-server/init.lua b/lua/mason-registry/bash-language-server/init.lua deleted file mode 100644 index 26e16b7f..00000000 --- a/lua/mason-registry/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-registry/beancount-language-server/init.lua b/lua/mason-registry/beancount-language-server/init.lua deleted file mode 100644 index 9c545ff0..00000000 --- a/lua/mason-registry/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-registry/beautysh/init.lua b/lua/mason-registry/beautysh/init.lua deleted file mode 100644 index 786540a8..00000000 --- a/lua/mason-registry/beautysh/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 = "beautysh", - desc = [[beautysh - A Bash beautifier for the masses.]], - homepage = "https://github.com/lovesegfault/beautysh", - languages = { Pkg.Lang.Bash, Pkg.Lang.Csh, Pkg.Lang.Ksh, Pkg.Lang.Sh, Pkg.Lang.Zsh }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "beautysh", bin = { "beautysh" } }, -} diff --git a/lua/mason-registry/bicep-lsp/init.lua b/lua/mason-registry/bicep-lsp/init.lua deleted file mode 100644 index 8472505a..00000000 --- a/lua/mason-registry/bicep-lsp/init.lua +++ /dev/null @@ -1,42 +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" }, "bicepLanguageServer") - ctx.fs:rmrf "vscode" - - ctx:link_bin( - "bicep-lsp", - ctx:write_shell_exec_wrapper( - "bicep-lsp", - ("dotnet %q"):format(path.concat { - ctx.package:get_install_path(), - "bicepLanguageServer", - "Bicep.LangServer.dll", - }) - ) - ) - end, -} diff --git a/lua/mason-registry/black/init.lua b/lua/mason-registry/black/init.lua deleted file mode 100644 index 5f26fe9a..00000000 --- a/lua/mason-registry/black/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 = "black", - desc = [[Black, the uncompromising Python code formatter]], - homepage = "https://pypi.org/project/black/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "black", bin = { "black" } }, -} diff --git a/lua/mason-registry/blackd-client/init.lua b/lua/mason-registry/blackd-client/init.lua deleted file mode 100644 index c90e5754..00000000 --- a/lua/mason-registry/blackd-client/init.lua +++ /dev/null @@ -1,31 +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 std = require "mason-core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "blackd-client", - desc = [[Tiny HTTP client for the Black (blackd) Python code formatter]], - homepage = "https://github.com/disrupted/blackd-client", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "disrupted/blackd-client", - asset_file = coalesce( - when(platform.is.mac, "blackd-client_macos"), - when(platform.is.linux_x64_gnu, "blackd-client_linux") - ), - out_file = "blackd-client", - }) - .with_receipt() - std.chmod("+x", { "blackd-client" }) - ctx:link_bin("blackd-client", "blackd-client") - end, -} diff --git a/lua/mason-registry/blade-formatter/init.lua b/lua/mason-registry/blade-formatter/init.lua deleted file mode 100644 index 1a16e183..00000000 --- a/lua/mason-registry/blade-formatter/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 = "blade-formatter", - desc = [[An opinionated blade template formatter for Laravel that respects readability]], - homepage = "https://github.com/shufo/blade-formatter", - languages = { Pkg.Lang.Blade }, - categories = { Pkg.Cat.Formatter }, - install = npm.packages { "blade-formatter", bin = { "blade-formatter" } }, -} diff --git a/lua/mason-registry/blue/init.lua b/lua/mason-registry/blue/init.lua deleted file mode 100644 index 339d35d2..00000000 --- a/lua/mason-registry/blue/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "blue", - desc = _.dedent [[ - blue is a somewhat less uncompromising code formatter than black, the OG of Python formatters. We love the idea - of automatically formatting Python code, for the same reasons that inspired black, however we take issue with - some of the decisions black makes. Kudos to black for pioneering code formatting for Python, and for its - excellent implementation. - ]], - homepage = "https://blue.readthedocs.io/en/latest/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "blue", bin = { "blue" } }, -} diff --git a/lua/mason-registry/brighterscript-formatter/init.lua b/lua/mason-registry/brighterscript-formatter/init.lua deleted file mode 100644 index 1e993aad..00000000 --- a/lua/mason-registry/brighterscript-formatter/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 = "brighterscript-formatter", - desc = [[A code formatter for BrightScript and BrighterScript.]], - homepage = "https://github.com/rokucommunity/brighterscript-formatter", - languages = { Pkg.Lang.BrighterScript }, - categories = { Pkg.Cat.Formatter }, - install = npm.packages { "brighterscript-formatter", bin = { "bsfmt" } }, -} diff --git a/lua/mason-registry/brighterscript/init.lua b/lua/mason-registry/brighterscript/init.lua deleted file mode 100644 index 677fe690..00000000 --- a/lua/mason-registry/brighterscript/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 = "brighterscript", - desc = [[A superset of Roku's BrightScript language.]], - homepage = "https://github.com/RokuCommunity/brighterscript", - languages = { Pkg.Lang.BrighterScript }, - categories = { Pkg.Cat.LSP, Pkg.Cat.Compiler }, - install = npm.packages { "brighterscript", bin = { "bsc" } }, -} diff --git a/lua/mason-registry/bsl-language-server/init.lua b/lua/mason-registry/bsl-language-server/init.lua deleted file mode 100644 index 2b5ad2ab..00000000 --- a/lua/mason-registry/bsl-language-server/init.lua +++ /dev/null @@ -1,33 +0,0 @@ -local Pkg = require "mason-core.package" -local github = require "mason-core.managers.github" -local path = require "mason-core.path" - -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 - ---@param ctx InstallContext - install = function(ctx) - 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() - - ctx:link_bin( - "bsl-language-server", - ctx:write_shell_exec_wrapper( - "bsl-language-server", - ("java -jar %q"):format(path.concat { ctx.package:get_install_path(), "bsl-lsp.jar" }) - ) - ) - end, -} diff --git a/lua/mason-registry/buf-language-server/init.lua b/lua/mason-registry/buf-language-server/init.lua deleted file mode 100644 index fb18788f..00000000 --- a/lua/mason-registry/buf-language-server/init.lua +++ /dev/null @@ -1,14 +0,0 @@ -local Pkg = require "mason-core.package" -local go = require "mason-core.managers.go" - -return Pkg.new { - name = "buf-language-server", - desc = [[`bufls` is a prototype for the beginnings of a Protobuf language server compatible with Buf modules and workspaces.]], - homepage = "https://github.com/bufbuild/buf-language-server", - languages = { Pkg.Lang.Protobuf }, - categories = { Pkg.Cat.LSP }, - install = go.packages { - "github.com/bufbuild/buf-language-server/cmd/bufls", - bin = { "bufls" }, - }, -} diff --git a/lua/mason-registry/buf/init.lua b/lua/mason-registry/buf/init.lua deleted file mode 100644 index 28ab3e2a..00000000 --- a/lua/mason-registry/buf/init.lua +++ /dev/null @@ -1,39 +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 = "buf", - desc = _.dedent [[ - The Buf CLI is a one stop shop for your local Protocol Buffers needs. It comes with a linter that enforces good - API designs, a breaking change detector, a generator, a formatter that formats your Protobuf files in accordance - with industry standards. It also helps you manage your Protobuf assets on the Buf Schema Registry. - ]], - homepage = "https://buf.build", - languages = { Pkg.Lang.Protobuf }, - categories = { Pkg.Cat.Linter, Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "bufbuild/buf", - out_file = platform.is.win and "buf.exe" or "buf", - asset_file = coalesce( - when(platform.is.mac_x64, "buf-Darwin-x86_64"), - when(platform.is.mac_arm64, "buf-Darwin-arm64"), - when(platform.is.linux_x64, "buf-Linux-x86_64"), - when(platform.is.linux_arm64, "buf-Linux-aarch64"), - when(platform.is.win_arm64, "buf-Windows-arm64.exe"), - when(platform.is.win_x64, "buf-Windows-x86_64.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "buf" }) - ctx:link_bin("buf", platform.is.win and "buf.exe" or "buf") - end, -} diff --git a/lua/mason-registry/buildifier/init.lua b/lua/mason-registry/buildifier/init.lua deleted file mode 100644 index d245011e..00000000 --- a/lua/mason-registry/buildifier/init.lua +++ /dev/null @@ -1,34 +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 coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "buildifier", - desc = [[buildifier is a tool for formatting and linting bazel BUILD, WORKSPACE, and .bzl files.]], - homepage = "https://github.com/bazelbuild/buildtools", - languages = { Pkg.Lang.Bazel }, - categories = { Pkg.Cat.Linter, Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "bazelbuild/buildtools", - out_file = platform.is.win and "buildifier.exe" or "buildifier", - asset_file = coalesce( - when(platform.is.mac_x64, "buildifier-darwin-amd64"), - when(platform.is.mac_arm64, "buildifier-darwin-arm64"), - when(platform.is.linux_x64, "buildifier-linux-amd64"), - when(platform.is.linux_arm64, "buildifier-linux-arm64"), - when(platform.is.win_x64, "buildifier-windows-amd64.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "buildifier" }) - ctx:link_bin("buildifier", platform.is.win and "buildifier.exe" or "buildifier") - end, -} diff --git a/lua/mason-registry/cbfmt/init.lua b/lua/mason-registry/cbfmt/init.lua deleted file mode 100644 index 1fda9ce7..00000000 --- a/lua/mason-registry/cbfmt/init.lua +++ /dev/null @@ -1,49 +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 = "cbfmt", - desc = _.dedent [[ - A tool to format codeblocks inside markdown and org documents. It iterates over all codeblocks, and formats them - with the tool(s) specified for the language of the block. - ]], - homepage = "https://github.com/lukas-reineke/cbfmt", - languages = { Pkg.Lang.Markdown }, - categories = { Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local asset_file = coalesce( - when(platform.is.mac, "cbfmt_macos-x86_64_%s.tar.gz"), - when(platform.is.linux_x64_gnu, "cbfmt_linux-x86_64_%s.tar.gz"), - when(platform.is.linux_x64_musl, "cbfmt_linux-x86_64-musl_%s.tar.gz"), - when(platform.is.win_x64, "cbfmt_windows-x86_64-msvc_%s.zip") - ) - - local source = platform.when { - unix = function() - return github.untargz_release_file { - repo = "lukas-reineke/cbfmt", - asset_file = _.format(asset_file), - } - end, - win = function() - return github.unzip_release_file { - repo = "lukas-reineke/cbfmt", - asset_file = _.format(asset_file), - } - end, - } - source.with_receipt() - local strip_extension = _.compose(_.gsub("%.zip$", ""), _.gsub("%.tar%.gz$", "")) - ctx:link_bin( - "cbfmt", - path.concat { strip_extension(source.asset_file), platform.is.win and "cbfmt.exe" or "cbfmt" } - ) - end, -} diff --git a/lua/mason-registry/cfn-lint/init.lua b/lua/mason-registry/cfn-lint/init.lua deleted file mode 100644 index 7eeee2f9..00000000 --- a/lua/mason-registry/cfn-lint/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "cfn-lint", - desc = _.dedent [[ - CloudFormation Linter. Validate AWS CloudFormation YAML/JSON templates against the AWS CloudFormation Resource - Specification and additional checks. Includes checking valid values for resource properties and best practices. - ]], - homepage = "https://github.com/aws-cloudformation/cfn-lint", - languages = { Pkg.Lang.YAML, Pkg.Lang.JSON }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "cfn-lint", bin = { "cfn-lint" } }, -} diff --git a/lua/mason-registry/chrome-debug-adapter/init.lua b/lua/mason-registry/chrome-debug-adapter/init.lua deleted file mode 100644 index 3ebfb736..00000000 --- a/lua/mason-registry/chrome-debug-adapter/init.lua +++ /dev/null @@ -1,32 +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" } - ctx.spawn.npm { "install", "--production", "--ignore-scripts" } - -- 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/clang-format/init.lua b/lua/mason-registry/clang-format/init.lua deleted file mode 100644 index 62a9e4b9..00000000 --- a/lua/mason-registry/clang-format/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 = "clang-format", - desc = [[clang-format is formatter for C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code]], - homepage = "https://pypi.org/project/clang-format/", - languages = { Pkg.Lang.C, Pkg.Lang["C++"], Pkg.Lang.Java, Pkg.Lang.JavaScript, Pkg.Lang.JSON, Pkg.Lang["C#"] }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "clang-format", bin = { "clang-format" } }, -} diff --git a/lua/mason-registry/clangd/init.lua b/lua/mason-registry/clangd/init.lua deleted file mode 100644 index 5e52c789..00000000 --- a/lua/mason-registry/clangd/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 path = require "mason-core.path" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "clangd", - desc = _.dedent [[ - 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 deleted file mode 100644 index d919ad85..00000000 --- a/lua/mason-registry/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-registry/clojure-lsp/init.lua b/lua/mason-registry/clojure-lsp/init.lua deleted file mode 100644 index 81f59143..00000000 --- a/lua/mason-registry/clojure-lsp/init.lua +++ /dev/null @@ -1,34 +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_musl, "clojure-lsp-native-static-linux-amd64.zip"), - when(platform.is.linux_x64_gnu, "clojure-lsp-native-linux-amd64.zip"), - when(platform.is.linux_arm64, "clojure-lsp-native-linux-aarch64.zip"), - when(platform.is.win_x64, "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 deleted file mode 100644 index 40290488..00000000 --- a/lua/mason-registry/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-registry/cmakelang/init.lua b/lua/mason-registry/cmakelang/init.lua deleted file mode 100644 index 9ecaffbf..00000000 --- a/lua/mason-registry/cmakelang/init.lua +++ /dev/null @@ -1,19 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" - -return Pkg.new { - name = "cmakelang", - desc = [[Language tools for cmake (format, lint, etc)]], - homepage = "https://pypi.org/project/cmakelang/", - languages = { Pkg.Lang.CMake }, - categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, - install = pip3.packages { - "cmakelang", - bin = { - "cmake-annotate", - "cmake-format", - "cmake-lint", - "ctest-to", - }, - }, -} diff --git a/lua/mason-registry/codelldb/init.lua b/lua/mason-registry/codelldb/init.lua deleted file mode 100644 index 4cbdcf04..00000000 --- a/lua/mason-registry/codelldb/init.lua +++ /dev/null @@ -1,41 +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_gnu, "codelldb-x86_64-linux.vsix"), - _.when(platform.is.linux_arm64_gnu, "codelldb-aarch64-linux.vsix"), - _.when(platform.is.linux_arm_gnu, "codelldb-arm-linux.vsix"), - _.when(platform.is.win_x64, "codelldb-x86_64-windows.vsix") - ), - }) - .with_receipt() - platform.when { - unix = function() - ctx:link_bin( - "codelldb", - ctx:write_exec_wrapper("codelldb", path.concat { "extension", "adapter", "codelldb" }) - ) - end, - win = function() - ctx:link_bin("codelldb", path.concat { "extension", "adapter", "codelldb.exe" }) - end, - } - end, -} diff --git a/lua/mason-registry/codeql/init.lua b/lua/mason-registry/codeql/init.lua deleted file mode 100644 index a96567d1..00000000 --- a/lua/mason-registry/codeql/init.lua +++ /dev/null @@ -1,34 +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 = _.dedent [[ - 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/codespell/init.lua b/lua/mason-registry/codespell/init.lua deleted file mode 100644 index 73639783..00000000 --- a/lua/mason-registry/codespell/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 = "codespell", - desc = [[check code for common misspellings]], - homepage = "https://github.com/codespell-project/codespell", - languages = {}, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "codespell", bin = { "codespell" } }, -} diff --git a/lua/mason-registry/colorgen-nvim/init.lua b/lua/mason-registry/colorgen-nvim/init.lua deleted file mode 100644 index d1d55c1f..00000000 --- a/lua/mason-registry/colorgen-nvim/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -local Pkg = require "mason-core.package" -local cargo = require "mason-core.managers.cargo" - -return Pkg.new { - name = "colorgen-nvim", - desc = [[Blazingly fast colorscheme generator for Neovim written in Rust]], - homepage = "https://github.com/ChristianChiarulli/colorgen-nvim", - languages = {}, - categories = { Pkg.Cat.Compiler }, - install = cargo.crate("colorgen-nvim", { - git = { - url = "https://github.com/ChristianChiarulli/colorgen-nvim", - tag = false, - }, - bin = { "colorgen-nvim" }, - }), -} diff --git a/lua/mason-registry/commitlint/init.lua b/lua/mason-registry/commitlint/init.lua deleted file mode 100644 index 02f23ccf..00000000 --- a/lua/mason-registry/commitlint/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "commitlint", - desc = "commitlint checks if your commit messages meet the conventional commit format.", - homepage = "https://commitlint.js.org/", - languages = { Pkg.Lang.GitCommit }, - categories = { Pkg.Cat.Linter }, - install = npm.packages { - "@commitlint/cli", - "@commitlint/config-conventional", - "commitlint-format-json", - bin = { "commitlint" }, - }, -} diff --git a/lua/mason-registry/cpplint/init.lua b/lua/mason-registry/cpplint/init.lua deleted file mode 100644 index 2b9eab14..00000000 --- a/lua/mason-registry/cpplint/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 = "cpplint", - desc = [[Cpplint is a command-line tool to check C/C++ files for style issues following Google's C++ style guide]], - homepage = "https://pypi.org/project/cpplint/", - languages = { Pkg.Lang.C, Pkg.Lang["C++"] }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "cpplint", bin = { "cpplint" } }, -} diff --git a/lua/mason-registry/cpptools/init.lua b/lua/mason-registry/cpptools/init.lua deleted file mode 100644 index 86b6ecd6..00000000 --- a/lua/mason-registry/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-registry/crystalline/init.lua b/lua/mason-registry/crystalline/init.lua deleted file mode 100644 index 34128fdf..00000000 --- a/lua/mason-registry/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-musl.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 deleted file mode 100644 index 34093a9f..00000000 --- a/lua/mason-registry/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-registry/csharpier/init.lua b/lua/mason-registry/csharpier/init.lua deleted file mode 100644 index d3600eb3..00000000 --- a/lua/mason-registry/csharpier/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 = "csharpier", - desc = [[CSharpier is an opinionated code formatter for c#]], - homepage = "https://csharpier.com", - languages = { Pkg.Lang["C#"] }, - categories = { Pkg.Cat.Formatter }, - install = dotnet.package("csharpier", { bin = { "dotnet-csharpier" } }), -} diff --git a/lua/mason-registry/cspell/init.lua b/lua/mason-registry/cspell/init.lua deleted file mode 100644 index 9c3a9ce7..00000000 --- a/lua/mason-registry/cspell/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 = "cspell", - desc = [[A Spell Checker for Code]], - homepage = "https://github.com/streetsidesoftware/cspell", - languages = {}, - categories = { Pkg.Cat.Linter }, - install = npm.packages { "cspell", bin = { "cspell" } }, -} diff --git a/lua/mason-registry/css-lsp/init.lua b/lua/mason-registry/css-lsp/init.lua deleted file mode 100644 index be94b476..00000000 --- a/lua/mason-registry/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-registry/cssmodules-language-server/init.lua b/lua/mason-registry/cssmodules-language-server/init.lua deleted file mode 100644 index 98527d69..00000000 --- a/lua/mason-registry/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-definition 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 deleted file mode 100644 index 8e4c8434..00000000 --- a/lua/mason-registry/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-registry/cueimports/init.lua b/lua/mason-registry/cueimports/init.lua deleted file mode 100644 index a6a345f4..00000000 --- a/lua/mason-registry/cueimports/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 = "cueimports", - desc = [[CUE tool that updates your import lines, adding missing ones and removing unused ones.]], - homepage = "https://github.com/asdine/cueimports", - languages = { Pkg.Lang.Cue }, - categories = { Pkg.Cat.Formatter }, - install = go.packages { "github.com/asdine/cueimports/cmd/cueimports", bin = { "cueimports" } }, -} diff --git a/lua/mason-registry/cuelsp/init.lua b/lua/mason-registry/cuelsp/init.lua deleted file mode 100644 index db4b42ff..00000000 --- a/lua/mason-registry/cuelsp/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 = "cuelsp", - desc = [[Language Server implementation for CUE, with built-in support for Dagger.]], - homepage = "https://github.com/dagger/cuelsp", - languages = { Pkg.Lang.Cue }, - categories = { Pkg.Cat.LSP }, - install = go.packages { "github.com/dagger/cuelsp/cmd/cuelsp", bin = { "cuelsp" } }, -} diff --git a/lua/mason-registry/curlylint/init.lua b/lua/mason-registry/curlylint/init.lua deleted file mode 100644 index 074a3ae9..00000000 --- a/lua/mason-registry/curlylint/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 = "curlylint", - desc = [[Experimental HTML templates linting for Jinja, Nunjucks, Django templates, Twig, Liquid]], - homepage = "https://www.curlylint.org/", - languages = { Pkg.Lang.Django, Pkg.Lang.Jinja, Pkg.Lang.Nunjucks, Pkg.Lang.Twig, Pkg.Lang.Liquid }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "curlylint", bin = { "curlylint" } }, -} diff --git a/lua/mason-registry/dart-debug-adapter/init.lua b/lua/mason-registry/dart-debug-adapter/init.lua deleted file mode 100644 index 402a82cc..00000000 --- a/lua/mason-registry/dart-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 = "dart-debug-adapter", - desc = [[Dart debug adapter sourced from the Dart VSCode extension.]], - homepage = "https://github.com/Dart-Code/Dart-Code", - languages = { Pkg.Lang.Dart }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "Dart-Code/Dart-Code", - asset_file = _.compose(_.format "dart-code-%s.vsix", _.gsub("^v", "")), - }) - .with_receipt() - ctx.fs:rmrf(path.concat { "extension", "media" }) - ctx:link_bin( - "dart-debug-adapter", - ctx:write_node_exec_wrapper("dart-debug-adapter", path.concat { "extension", "out", "dist", "debug.js" }) - ) - end, -} diff --git a/lua/mason-registry/debugpy/init.lua b/lua/mason-registry/debugpy/init.lua deleted file mode 100644 index 51587a8a..00000000 --- a/lua/mason-registry/debugpy/init.lua +++ /dev/null @@ -1,18 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" -local path = require "mason-core.path" - -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 }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - pip3.install({ "debugpy" }).with_receipt() - ctx:link_bin("debugpy", ctx:write_pyvenv_exec_wrapper("debugpy", "debugpy")) - ctx:link_bin("debugpy-adapter", ctx:write_pyvenv_exec_wrapper("debugpy-adapter", "debugpy.adapter")) - end, -} diff --git a/lua/mason-registry/delve/init.lua b/lua/mason-registry/delve/init.lua deleted file mode 100644 index a0e3e121..00000000 --- a/lua/mason-registry/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-registry/deno/init.lua b/lua/mason-registry/deno/init.lua deleted file mode 100644 index cf9d5e34..00000000 --- a/lua/mason-registry/deno/init.lua +++ /dev/null @@ -1,33 +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 = _.dedent [[ - 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 deleted file mode 100644 index 6e69d68d..00000000 --- a/lua/mason-registry/dhall-lsp/init.lua +++ /dev/null @@ -1,75 +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" -local Result = require "mason-core.result" - -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 asset_name_pattern = assert( - _.coalesce( - _.when(platform.is.mac, "dhall%-lsp%-server%-.+%-x86_64%-[mM]acos.tar.bz2"), - _.when(platform.is.linux_x64, "dhall%-lsp%-server%-.+%-x86_64%-[lL]inux.tar.bz2"), - _.when(platform.is.win_x64, "dhall%-lsp%-server%-.+%-x86_64%-[wW]indows.zip") - ), - "Current platform is not supported." - ) - local find_lsp_server_asset = - _.compose(_.find_first(_.prop_satisfies(_.matches(asset_name_pattern), "name")), _.prop "assets") - - local repo = "dhall-lang/dhall-haskell" - ---@type GitHubRelease - local release = ctx.requested_version - :map(function(version) - return github_client.fetch_release(repo, version):and_then( - _.if_else( - find_lsp_server_asset, - Result.success, - _.always(Result.failure "Unable to find asset file in GitHub release.") - ) - ) - end) - :or_else_get(function() - return github_client.fetch_releases(repo):and_then(function(releases) - return Optional.of_nilable(_.find_first(find_lsp_server_asset, releases)) - :ok_or "Unable to find GitHub release." - end) - end) - :get_or_throw "Unable to find GitHub release." - - local asset = find_lsp_server_asset(release) - - platform.when { - win = function() - std.download_file(asset.browser_download_url, "dhall-lsp-server.zip") - std.unzip("dhall-lsp-server.zip", ".") - end, - unix = function() - 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 = release.tag_name, - } - - 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 deleted file mode 100644 index f05775bc..00000000 --- a/lua/mason-registry/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-registry/djlint/init.lua b/lua/mason-registry/djlint/init.lua deleted file mode 100644 index 1a1d4aee..00000000 --- a/lua/mason-registry/djlint/init.lua +++ /dev/null @@ -1,19 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" - -return Pkg.new { - name = "djlint", - desc = [[HTML Template Linter and Formatter. Django - Jinja - Nunjucks - Handlebars - GoLang]], - homepage = "https://github.com/Riverside-Healthcare/djLint", - languages = { - Pkg.Lang.Django, - Pkg.Lang.Go, - Pkg.Lang.Nunjucks, - Pkg.Lang.Handlebargs, - Pkg.Lang.Mustache, - Pkg.Lang.Angular, - Pkg.Lang.Jinja, - }, - categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, - install = pip3.packages { "djlint", bin = { "djlint" } }, -} diff --git a/lua/mason-registry/docker-compose-language-service/init.lua b/lua/mason-registry/docker-compose-language-service/init.lua deleted file mode 100644 index aa97aa48..00000000 --- a/lua/mason-registry/docker-compose-language-service/init.lua +++ /dev/null @@ -1,12 +0,0 @@ -local Pkg = require "mason-core.package" -local path = require "mason-core.path" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "docker-compose-language-service", - desc = [[A language server for Docker Compose.]], - homepage = "https://github.com/microsoft/compose-language-service", - languages = { Pkg.Lang.Docker }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "@microsoft/compose-language-service", bin = { "docker-compose-langserver" } }, -} diff --git a/lua/mason-registry/dockerfile-language-server/init.lua b/lua/mason-registry/dockerfile-language-server/init.lua deleted file mode 100644 index e1eb6df1..00000000 --- a/lua/mason-registry/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.Docker }, - 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 deleted file mode 100644 index 6d51d3d8..00000000 --- a/lua/mason-registry/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-registry/dprint/init.lua b/lua/mason-registry/dprint/init.lua deleted file mode 100644 index 60c95053..00000000 --- a/lua/mason-registry/dprint/init.lua +++ /dev/null @@ -1,32 +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" - -return Pkg.new { - name = "dprint", - desc = [[A pluggable and configurable code formatting platform written in Rust.]], - homepage = "https://dprint.dev/", - languages = {}, - categories = { Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "dprint/dprint", - asset_file = _.coalesce( - _.when(platform.is.mac_arm64, "dprint-aarch64-apple-darwin.zip"), - _.when(platform.is.mac_x64, "dprint-x86_64-apple-darwin.zip"), - _.when(platform.is.linux_arm64_gnu, "dprint-aarch64-unknown-linux-gnu.zip"), - _.when(platform.is.linux_x64_gnu, "dprint-x86_64-unknown-linux-gnu.zip"), - _.when(platform.is.linux_x64, "dprint-x86_64-unknown-linux-musl.zip"), - _.when(platform.is.win_x64, "dprint-x86_64-pc-windows-msvc.zip") - ), - }) - .with_receipt() - std.chmod("+x", { "dprint" }) - ctx:link_bin("dprint", platform.is.win and "dprint.exe" or "dprint") - end, -} diff --git a/lua/mason-registry/drools-lsp/init.lua b/lua/mason-registry/drools-lsp/init.lua deleted file mode 100644 index 5573d97d..00000000 --- a/lua/mason-registry/drools-lsp/init.lua +++ /dev/null @@ -1,23 +0,0 @@ -local Pkg = require "mason-core.package" -local github = require "mason-core.managers.github" -local Optional = require "mason-core.optional" - -return Pkg.new { - name = "drools-lsp", - desc = [[An implementation of a language server for the Drools Rule Language.]], - homepage = "https://github.com/kiegroup/drools-lsp", - languages = { Pkg.Lang.Drools }, - categories = { Pkg.Cat.LSP }, - ---@async - install = function() - local jar = "drools-lsp-server-jar-with-dependencies.jar" - github - .download_release_file({ - repo = "kiegroup/drools-lsp", - version = Optional.of "latest", - asset_file = jar, - out_file = jar, - }) - .with_receipt() - end, -} diff --git a/lua/mason-registry/editorconfig-checker/init.lua b/lua/mason-registry/editorconfig-checker/init.lua deleted file mode 100644 index 486c832e..00000000 --- a/lua/mason-registry/editorconfig-checker/init.lua +++ /dev/null @@ -1,35 +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 = "editorconfig-checker", - desc = [[A tool to verify that your files are in harmony with your `.editorconfig`.]], - homepage = "https://github.com/editorconfig-checker/editorconfig-checker", - languages = {}, - categories = { Pkg.Cat.Linter }, - install = function(ctx) - local source = github.untargz_release_file { - repo = "editorconfig-checker/editorconfig-checker", - asset_file = coalesce( - when(platform.is.mac_arm64, "ec-darwin-arm64.tar.gz"), - when(platform.is.mac_x64, "ec-darwin-amd64.tar.gz"), - when(platform.is.linux_x64_openbsd, "ec-openbsd-amd64.tar.gz"), - when(platform.is.linux_arm64_openbsd, "ec-openbsd-arm64.tar.gz"), - when(platform.is.linux_arm64, "ec-linux-arm64.tar.gz"), - when(platform.is.linux_x64, "ec-linux-amd64.tar.gz"), - when(platform.is.win_x86, "ec-windows-386.exe.tar.gz"), - when(platform.is.win_x64, "ec-windows-amd64.exe.tar.gz"), - when(platform.is.win_arm64, "ec-windows-arm64.exe.tar.gz"), - when(platform.is.win_arm, "ec-windows-arm.exe.tar.gz") - ), - } - source.with_receipt() - local prog = source.asset_file:gsub("%.tar%.gz$", "") - ctx:link_bin("editorconfig-checker", path.concat { "bin", prog }) - end, -} diff --git a/lua/mason-registry/efm/init.lua b/lua/mason-registry/efm/init.lua deleted file mode 100644 index 30891f79..00000000 --- a/lua/mason-registry/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-registry/elixir-ls/init.lua b/lua/mason-registry/elixir-ls/init.lua deleted file mode 100644 index b84b9032..00000000 --- a/lua/mason-registry/elixir-ls/init.lua +++ /dev/null @@ -1,28 +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 = "elixir-ls", - desc = _.dedent [[ - 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() - - ctx:link_bin("elixir-ls", platform.is.win and "language_server.bat" or "language_server.sh") - ctx:link_bin("elixir-ls-debugger", platform.is.win and "debugger.bat" or "debugger.sh") - end, -} diff --git a/lua/mason-registry/elm-format/init.lua b/lua/mason-registry/elm-format/init.lua deleted file mode 100644 index 00028b35..00000000 --- a/lua/mason-registry/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-registry/elm-language-server/init.lua b/lua/mason-registry/elm-language-server/init.lua deleted file mode 100644 index 279a0649..00000000 --- a/lua/mason-registry/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-registry/ember-language-server/init.lua b/lua/mason-registry/ember-language-server/init.lua deleted file mode 100644 index b22b2292..00000000 --- a/lua/mason-registry/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-registry/emmet-ls/init.lua b/lua/mason-registry/emmet-ls/init.lua deleted file mode 100644 index dbc766ee..00000000 --- a/lua/mason-registry/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-registry/erb-lint/init.lua b/lua/mason-registry/erb-lint/init.lua deleted file mode 100644 index 358a124b..00000000 --- a/lua/mason-registry/erb-lint/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 = "erb-lint", - desc = [[erb-lint is a tool to help lint your ERB or HTML files using the included linters or by writing your own]], - homepage = "https://github.com/Shopify/erb-lint", - languages = { Pkg.Lang.HTML, Pkg.Lang.Ruby }, - categories = { Pkg.Cat.Linter }, - install = gem.packages { "erb_lint", bin = { "erblint" } }, -} diff --git a/lua/mason-registry/erg-language-server/init.lua b/lua/mason-registry/erg-language-server/init.lua deleted file mode 100644 index 4bbae8a0..00000000 --- a/lua/mason-registry/erg-language-server/init.lua +++ /dev/null @@ -1,45 +0,0 @@ -local Pkg = require "mason-core.package" -local github = require "mason-core.managers.github" -local platform = require "mason-core.platform" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "erg-language-server", - desc = [[ELS is a language server for the Erg programing language.]], - homepage = "https://github.com/erg-lang/erg-language-server", - languages = { Pkg.Lang.Erg }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "erg-lang/erg-language-server" - local asset_file = _.coalesce( - _.when(platform.is.mac_x64, "els-x86_64-apple-darwin.tar.gz"), - _.when(platform.is.mac_arm64, "els-aarch64-apple-darwin.tar.gz"), - _.when(platform.is.linux_arm64_gnu, "els-aarch64-unknown-linux-gnu.tar.gz"), - _.when(platform.is.linux_x64_gnu, "els-x86_64-unknown-linux-gnu.tar.gz"), - _.when(platform.is.linux_x64, "els-x86_64-unknown-linux-musl.tar.gz"), - _.when(platform.is.win_x64, "els-x86_64-pc-windows-msvc.zip") - ) - platform.when { - unix = function() - github - .untargz_release_file({ - repo = repo, - asset_file = asset_file, - }) - .with_receipt() - ctx:link_bin("els", "els") - end, - win = function() - github - .unzip_release_file({ - repo = repo, - asset_file = asset_file, - }) - .with_receipt() - ctx:link_bin("els", "els.exe") - end, - } - end, -} diff --git a/lua/mason-registry/erg/init.lua b/lua/mason-registry/erg/init.lua deleted file mode 100644 index d0b8b50b..00000000 --- a/lua/mason-registry/erg/init.lua +++ /dev/null @@ -1,43 +0,0 @@ -local Pkg = require "mason-core.package" -local github = require "mason-core.managers.github" -local platform = require "mason-core.platform" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "erg", - desc = [[A statically typed language that can deeply improve the Python ecosystem.]], - homepage = "https://github.com/erg-lang/erg", - languages = { Pkg.Lang.Erg }, - categories = { Pkg.Cat.LSP, Pkg.Cat.Compiler }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "erg-lang/erg" - local asset_file = _.coalesce( - _.when(platform.is.mac_x64, "erg-x86_64-apple-darwin.tar.gz"), - _.when(platform.is.mac_arm64, "erg-aarch64-apple-darwin.tar.gz"), - _.when(platform.is.linux_x64_gnu, "erg-x86_64-unknown-linux-gnu.tar.gz"), - _.when(platform.is.win_x64, "erg-x86_64-pc-windows-msvc.zip") - ) - platform.when { - unix = function() - github - .untargz_release_file({ - repo = repo, - asset_file = asset_file, - }) - .with_receipt() - ctx:link_bin("erg", "erg") - end, - win = function() - github - .unzip_release_file({ - repo = repo, - asset_file = asset_file, - }) - .with_receipt() - ctx:link_bin("erg", "erg.exe") - end, - } - end, -} diff --git a/lua/mason-registry/erlang-ls/init.lua b/lua/mason-registry/erlang-ls/init.lua deleted file mode 100644 index 839f5987..00000000 --- a/lua/mason-registry/erlang-ls/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 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 = _.dedent [[ - 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 deleted file mode 100644 index 9b607180..00000000 --- a/lua/mason-registry/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-registry/eslint-lsp/init.lua b/lua/mason-registry/eslint-lsp/init.lua deleted file mode 100644 index 6c9f57d7..00000000 --- a/lua/mason-registry/eslint-lsp/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "eslint-lsp", - desc = _.dedent [[ - 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/eslint_d/init.lua b/lua/mason-registry/eslint_d/init.lua deleted file mode 100644 index 2cdaee06..00000000 --- a/lua/mason-registry/eslint_d/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_d", - desc = [[Makes eslint the fastest linter on the planet]], - homepage = "https://github.com/mantoni/eslint_d.js/", - languages = { Pkg.Lang.TypeScript, Pkg.Lang.JavaScript }, - categories = { Pkg.Cat.Linter }, - install = npm.packages { "eslint_d", bin = { "eslint_d" } }, -} diff --git a/lua/mason-registry/fantomas/init.lua b/lua/mason-registry/fantomas/init.lua deleted file mode 100644 index 98fc8671..00000000 --- a/lua/mason-registry/fantomas/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 = "fantomas", - desc = [[Fantomas is an opinionated code formatter for f#]], - homepage = "https://fsprojects.github.io/fantomas", - languages = { Pkg.Lang["F#"] }, - categories = { Pkg.Cat.Formatter }, - install = dotnet.package("fantomas", { bin = { "fantomas" } }), -} diff --git a/lua/mason-registry/fennel-language-server/init.lua b/lua/mason-registry/fennel-language-server/init.lua deleted file mode 100644 index 85af5495..00000000 --- a/lua/mason-registry/fennel-language-server/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -local Pkg = require "mason-core.package" -local cargo = require "mason-core.managers.cargo" - -local github_repo = "https://github.com/rydesun/fennel-language-server" -return Pkg.new { - name = "fennel-language-server", - desc = [[Fennel language server protocol (LSP) support. ]], - homepage = github_repo, - languages = { Pkg.Lang.Fennel }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("fennel-language-server", { - git = { - url = github_repo, - }, - bin = { "fennel-language-server" }, - }), -} diff --git a/lua/mason-registry/firefox-debug-adapter/init.lua b/lua/mason-registry/firefox-debug-adapter/init.lua deleted file mode 100644 index 8606f1bf..00000000 --- a/lua/mason-registry/firefox-debug-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 = "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.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/fixjson/init.lua b/lua/mason-registry/fixjson/init.lua deleted file mode 100644 index 99642410..00000000 --- a/lua/mason-registry/fixjson/init.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "fixjson", - desc = [[A JSON file fixer/formatter for humans using (relaxed) JSON5]], - homepage = "https://github.com/rhysd/fixjson", - languages = { - Pkg.Lang.JSON, - }, - categories = { Pkg.Cat.Formatter }, - install = npm.packages { "fixjson", bin = { "fixjson" } }, -} diff --git a/lua/mason-registry/flake8/init.lua b/lua/mason-registry/flake8/init.lua deleted file mode 100644 index afc1fd86..00000000 --- a/lua/mason-registry/flake8/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local pip3 = require "mason-core.managers.pip3" - -return Pkg.new { - name = "flake8", - desc = _.dedent [[ - flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the - style and quality of some python code. - ]], - homepage = "https://github.com/PyCQA/flake8", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "flake8", bin = { "flake8" } }, -} diff --git a/lua/mason-registry/flux-lsp/init.lua b/lua/mason-registry/flux-lsp/init.lua deleted file mode 100644 index afef8c72..00000000 --- a/lua/mason-registry/flux-lsp/init.lua +++ /dev/null @@ -1,17 +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("flux-lsp", { - git = { - url = "https://github.com/influxdata/flux-lsp", - tag = true, - }, - bin = { "flux-lsp" }, - }), -} diff --git a/lua/mason-registry/foam-language-server/init.lua b/lua/mason-registry/foam-language-server/init.lua deleted file mode 100644 index e1b0c95b..00000000 --- a/lua/mason-registry/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-registry/fortls/init.lua b/lua/mason-registry/fortls/init.lua deleted file mode 100644 index 5d9f605c..00000000 --- a/lua/mason-registry/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-registry/fourmolu/init.lua b/lua/mason-registry/fourmolu/init.lua deleted file mode 100644 index f6849474..00000000 --- a/lua/mason-registry/fourmolu/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 std = require "mason-core.managers.std" - -return Pkg.new { - name = "fourmolu", - desc = [[A fork of Ormolu that uses four space indentation and allows arbitrary configuration.]], - homepage = "https://hackage.haskell.org/package/fourmolu", - languages = { Pkg.Lang.Haskell }, - categories = { Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - ---@param template string - local function release_file(template_string) - return _.compose(_.format(template_string), _.gsub("^v", "")) - end - - github - .download_release_file({ - repo = "fourmolu/fourmolu", - out_file = "fourmolu", - asset_file = _.coalesce( - _.when(platform.is.mac_x64, release_file "fourmolu-%s-osx-x86_64"), - _.when(platform.is.linux_x64_gnu, release_file "fourmolu-%s-linux-x86_64") - ), - }) - .with_receipt() - std.chmod("+x", { "fourmolu" }) - ctx:link_bin("fourmolu", "fourmolu") - end, -} diff --git a/lua/mason-registry/fsautocomplete/init.lua b/lua/mason-registry/fsautocomplete/init.lua deleted file mode 100644 index 52e456a7..00000000 --- a/lua/mason-registry/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-registry/gersemi/init.lua b/lua/mason-registry/gersemi/init.lua deleted file mode 100644 index bed8c410..00000000 --- a/lua/mason-registry/gersemi/init.lua +++ /dev/null @@ -1,16 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" - -return Pkg.new { - name = "gersemi", - desc = [[gersemi - A formatter to make your CMake code the real treasure.]], - homepage = "https://github.com/BlankSpruce/gersemi", - languages = { Pkg.Lang.CMake }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { - "gersemi", - bin = { - "gersemi", - }, - }, -} diff --git a/lua/mason-registry/gitlint/init.lua b/lua/mason-registry/gitlint/init.lua deleted file mode 100644 index e8f85a6b..00000000 --- a/lua/mason-registry/gitlint/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 = "gitlint", - desc = [[Gitlint is a git commit message linter written in python: it checks your commit messages for style.]], - homepage = "https://jorisroovers.com/gitlint/", - languages = { Pkg.Lang.GitCommit }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "gitlint", bin = { "gitlint" } }, -} diff --git a/lua/mason-registry/gitui/init.lua b/lua/mason-registry/gitui/init.lua deleted file mode 100644 index 18f18f9f..00000000 --- a/lua/mason-registry/gitui/init.lua +++ /dev/null @@ -1,34 +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" -local std = require "mason-core.managers.std" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "gitui", - desc = [[Blazing fast terminal-ui for git written in Rust]], - homepage = "https://github.com/extrawurst/gitui", - languages = {}, - categories = {}, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .untargz_release_file({ - repo = "extrawurst/gitui", - out_file = "gitui", - asset_file = coalesce( - when(platform.is.mac, "gitui-mac.tar.gz"), - when(platform.is.linux_x64, "gitui-linux-musl.tar.gz"), - when(platform.is.linux_arm64, "gitui-linux-aarch64.tar.gz"), - when(platform.is.linux_arm, "gitui-linux-arm.tar.gz"), - when(platform.is.win_x64, "gitui-win.tar.gz") - ), - }) - .with_receipt() - std.chmod("+x", { "gitui" }) - ctx:link_bin("gitui", platform.is.win and "gitui.exe" or "gitui") - end, -} diff --git a/lua/mason-registry/glint/init.lua b/lua/mason-registry/glint/init.lua deleted file mode 100644 index baf9035c..00000000 --- a/lua/mason-registry/glint/init.lua +++ /dev/null @@ -1,22 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "glint", - desc = _.dedent [[ - Glint is a set of tools to aid in developing code that uses the Glimmer VM for rendering, such as - Ember.js v3.24+ and GlimmerX projects. Similar to Vetur for Vue projects or Svelte Language Tools, Glint - consists of a CLI and a language server to provide feedback and enforce correctness both locally during editing - and project-wide in CI. - ]], - homepage = "https://typed-ember.gitbook.io/glint/", - categories = { Pkg.Cat.LSP, Pkg.Cat.Linter }, - languages = { - Pkg.Lang.Handlebars, - Pkg.Lang.Glimmer, - Pkg.Lang.TypeScript, - Pkg.Lang.JavaScript, - }, - install = npm.packages { "@glint/core", "typescript", bin = { "glint", "glint-language-server" } }, -} diff --git a/lua/mason-registry/glow/init.lua b/lua/mason-registry/glow/init.lua deleted file mode 100644 index 0ef1c2db..00000000 --- a/lua/mason-registry/glow/init.lua +++ /dev/null @@ -1,47 +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 = "glow", - desc = [[Render markdown on the CLI, with pizzazz]], - homepage = "https://github.com/charmbracelet/glow", - languages = { Pkg.Lang.Markdown }, - categories = {}, - install = function(ctx) - ---@param template_string string - local function release_file(template_string) - return _.compose(_.format(template_string), _.gsub("^v", "")) - end - local asset_file = coalesce( - when(platform.is.mac_arm64, release_file "glow_%s_Darwin_arm64.tar.gz"), - when(platform.is.mac_x64, release_file "glow_%s_Darwin_x86_64.tar.gz"), - when(platform.is.linux_x64_openbsd, release_file "glow_%s_openbsd_x86_64.tar.gz"), - when(platform.is.linux_arm64_openbsd, release_file "glow_%s_openbsd_arm64.tar.gz"), - when(platform.is.linux_arm64, release_file "glow_%s_linux_arm64.tar.gz"), - when(platform.is.linux_x64, release_file "glow_%s_linux_x86_64.tar.gz"), - when(platform.is.win_x86, release_file "glow_%s_Windows_i386.zip"), - when(platform.is.win_x64, release_file "glow_%s_Windows_x86_64.zip") - ) - local source = platform.when { - unix = function() - return github.untargz_release_file { - repo = "charmbracelet/glow", - asset_file = asset_file, - } - end, - win = function() - return github.unzip_release_file { - repo = "charmbracelet/glow", - asset_file = asset_file, - } - end, - } - source.with_receipt() - ctx:link_bin("glow", platform.is.win and "glow.exe" or "glow") - end, -} diff --git a/lua/mason-registry/go-debug-adapter/init.lua b/lua/mason-registry/go-debug-adapter/init.lua deleted file mode 100644 index 23e0f360..00000000 --- a/lua/mason-registry/go-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 = "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/gofumpt/init.lua b/lua/mason-registry/gofumpt/init.lua deleted file mode 100644 index 909007f2..00000000 --- a/lua/mason-registry/gofumpt/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 = "gofumpt", - desc = [[A stricter gofmt]], - homepage = "https://pkg.go.dev/mvdan.cc/gofumpt", - categories = { Pkg.Cat.Formatter }, - languages = { Pkg.Lang.Go }, - install = go.packages { "mvdan.cc/gofumpt", bin = { "gofumpt" } }, -} diff --git a/lua/mason-registry/goimports-reviser/init.lua b/lua/mason-registry/goimports-reviser/init.lua deleted file mode 100644 index 0ea92d68..00000000 --- a/lua/mason-registry/goimports-reviser/init.lua +++ /dev/null @@ -1,38 +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 = "goimports-reviser", - desc = _.dedent [[ - Tool for Golang to sort goimports by 3-4 groups: std, general, company (optional), and project dependencies. - Also, formatting for your code will be prepared (so, you don't need to use gofmt or goimports separately). - Use additional option -rm-unused to remove unused imports and -set-alias to rewrite import aliases for - versioned packages. - ]], - homepage = "https://pkg.go.dev/github.com/incu6us/goimports-reviser", - categories = { Pkg.Cat.Formatter }, - languages = { Pkg.Lang.Go }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local function format_release_file(template) - return _.compose(_.format(template), _.gsub("^v", "")) - end - - github - .untargz_release_file({ - repo = "incu6us/goimports-reviser", - asset_file = _.coalesce( - _.when(platform.is.mac_x64, format_release_file "goimports-reviser_%s_darwin_amd64.tar.gz"), - _.when(platform.is.mac_arm64, format_release_file "goimports-reviser_%s_darwin_arm64.tar.gz"), - _.when(platform.is.linux_x64, format_release_file "goimports-reviser_%s_linux_amd64.tar.gz"), - _.when(platform.is.win_x64, format_release_file "goimports-reviser_%s_windows_amd64.tar.gz") - ), - }) - .with_receipt() - - ctx:link_bin("goimports-reviser", platform.is.win and "goimports-reviser.exe" or "goimports-reviser") - end, -} diff --git a/lua/mason-registry/goimports/init.lua b/lua/mason-registry/goimports/init.lua deleted file mode 100644 index 012dbea2..00000000 --- a/lua/mason-registry/goimports/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local go = require "mason-core.managers.go" - -return Pkg.new { - name = "goimports", - desc = _.dedent [[ - A golang formatter which formats your code in the same style as gofmt and additionally updates your Go import - lines, adding missing ones and removing unreferenced ones. - ]], - homepage = "https://pkg.go.dev/golang.org/x/tools/cmd/goimports", - categories = { Pkg.Cat.Formatter }, - languages = { Pkg.Lang.Go }, - install = go.packages { "golang.org/x/tools/cmd/goimports", bin = { "goimports" } }, -} diff --git a/lua/mason-registry/golangci-lint-langserver/init.lua b/lua/mason-registry/golangci-lint-langserver/init.lua deleted file mode 100644 index 6a6c396d..00000000 --- a/lua/mason-registry/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-registry/golangci-lint/init.lua b/lua/mason-registry/golangci-lint/init.lua deleted file mode 100644 index 1d925733..00000000 --- a/lua/mason-registry/golangci-lint/init.lua +++ /dev/null @@ -1,56 +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 = "golangci-lint", - desc = _.dedent [[ - 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 = function(ctx) - local repo = "golangci/golangci-lint" - ---@param template_string string - local function release_file(template_string) - return _.compose(_.format(template_string), _.gsub("^v", "")) - end - - platform.when { - unix = function() - local source = github.untargz_release_file { - repo = repo, - asset_file = coalesce( - when(platform.is.linux_armv6l, release_file "golangci-lint-%s-linux-armv6.tar.gz"), - when(platform.is.linux_armv7l, release_file "golangci-lint-%s-linux-armv7.tar.gz"), - when(platform.is.linux_x64, release_file "golangci-lint-%s-linux-amd64.tar.gz"), - when(platform.is.linux_x86, release_file "golangci-lint-%s-linux-386.tar.gz"), - when(platform.is.darwin_x64, release_file "golangci-lint-%s-darwin-amd64.tar.gz"), - when(platform.is.darwin_arm64, release_file "golangci-lint-%s-darwin-arm64.tar.gz") - ), - } - source.with_receipt() - local directory = source.asset_file:gsub("%.tar%.gz$", "") - ctx:link_bin("golangci-lint", path.concat { directory, "golangci-lint" }) - end, - win = function() - local source = github.unzip_release_file { - repo = repo, - asset_file = coalesce( - when(platform.is.win_x64, release_file "golangci-lint-%s-windows-amd64.zip"), - when(platform.is.win_x86, release_file "golangci-lint-%s-windows-386.zip") - ), - } - source.with_receipt() - local directory = source.asset_file:gsub("%.zip$", "") - ctx:link_bin("golangci-lint", path.concat { directory, "golangci-lint.exe" }) - end, - } - end, -} diff --git a/lua/mason-registry/golines/init.lua b/lua/mason-registry/golines/init.lua deleted file mode 100644 index d755cd23..00000000 --- a/lua/mason-registry/golines/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 = "golines", - desc = [[A golang formatter that fixes long lines]], - homepage = "https://github.com/segmentio/golines", - categories = { Pkg.Cat.Formatter }, - languages = { Pkg.Lang.Go }, - install = go.packages { "github.com/segmentio/golines", bin = { "golines" } }, -} diff --git a/lua/mason-registry/gomodifytags/init.lua b/lua/mason-registry/gomodifytags/init.lua deleted file mode 100644 index 1e5e226e..00000000 --- a/lua/mason-registry/gomodifytags/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 = "gomodifytags", - desc = [[Go tool to modify/update field tags in structs]], - homepage = "https://github.com/fatih/gomodifytags", - categories = {}, - languages = { Pkg.Lang.Go }, - install = go.packages { "github.com/fatih/gomodifytags", bin = { "gomodifytags" } }, -} diff --git a/lua/mason-registry/google-java-format/init.lua b/lua/mason-registry/google-java-format/init.lua deleted file mode 100644 index 58cef182..00000000 --- a/lua/mason-registry/google-java-format/init.lua +++ /dev/null @@ -1,33 +0,0 @@ -local Pkg = require "mason-core.package" -local github = require "mason-core.managers.github" -local path = require "mason-core.path" - -return Pkg.new { - name = "google-java-format", - desc = [[google-java-format is a program that reformats Java source code to comply with Google Java Style.]], - homepage = "https://github.com/google/google-java-format", - languages = { Pkg.Lang.Java }, - categories = { Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "google/google-java-format", - out_file = "google-java-format.jar", - asset_file = function(release) - local version = release:gsub("^v", "") - return ("google-java-format-%s-all-deps.jar"):format(version) - end, - }) - .with_receipt() - - ctx:link_bin( - "google-java-format", - ctx:write_shell_exec_wrapper( - "google-java-format", - ("java -jar %q"):format(path.concat { ctx.package:get_install_path(), "google-java-format.jar" }) - ) - ) - end, -} diff --git a/lua/mason-registry/gopls/init.lua b/lua/mason-registry/gopls/init.lua deleted file mode 100644 index 95421b14..00000000 --- a/lua/mason-registry/gopls/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local go = require "mason-core.managers.go" - -return Pkg.new { - name = "gopls", - desc = _.dedent [[ - 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/gospel/init.lua b/lua/mason-registry/gospel/init.lua deleted file mode 100644 index 9b740e82..00000000 --- a/lua/mason-registry/gospel/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 = "gospel", - desc = [[misspelled word linter for Go comments, string literals and embedded files]], - homepage = "https://github.com/kortschak/gospel", - categories = { Pkg.Cat.Linter }, - languages = { Pkg.Lang.Go }, - install = go.packages { "github.com/kortschak/gospel", bin = { "gospel" } }, -} diff --git a/lua/mason-registry/gotests/init.lua b/lua/mason-registry/gotests/init.lua deleted file mode 100644 index d7aae651..00000000 --- a/lua/mason-registry/gotests/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local go = require "mason-core.managers.go" - -return Pkg.new { - name = "gotests", - desc = _.dedent [[ - Gotests is a Golang commandline tool that generates table driven tests based on its target source files' - function and method signatures. - ]], - homepage = "https://github.com/cweill/gotests", - categories = {}, - languages = { Pkg.Lang.Go }, - install = go.packages { "github.com/cweill/gotests/...", bin = { "gotests" } }, -} diff --git a/lua/mason-registry/gotestsum/init.lua b/lua/mason-registry/gotestsum/init.lua deleted file mode 100644 index 199c36e9..00000000 --- a/lua/mason-registry/gotestsum/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local go = require "mason-core.managers.go" - -return Pkg.new { - name = "gotestsum", - desc = _.dedent [[ - 'go test' runner with output optimized for humans, JUnit XML for CI integration, and - a summary of the test results. - ]], - homepage = "https://github.com/gotestyourself/gotestsum", - categories = {}, - languages = { Pkg.Lang.Go }, - install = go.packages { "gotest.tools/gotestsum", bin = { "gotestsum" } }, -} diff --git a/lua/mason-registry/gradle-language-server/init.lua b/lua/mason-registry/gradle-language-server/init.lua deleted file mode 100644 index 61cbee5e..00000000 --- a/lua/mason-registry/gradle-language-server/init.lua +++ /dev/null @@ -1,34 +0,0 @@ -local Pkg = require "mason-core.package" -local github = require "mason-core.managers.github" -local path = require "mason-core.path" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "gradle-language-server", - desc = [[Gradle language server.]], - homepage = "https://github.com/microsoft/vscode-gradle", - languages = { Pkg.Lang.Gradle }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - asset_file = _.format "vscjava.vscode-gradle-%s.vsix", - repo = "microsoft/vscode-gradle", - }) - .with_receipt() - - ctx.fs:rename(path.concat { "extension", "lib" }, "lib") - ctx.fs:rmrf "extension" - ctx:link_bin( - "gradle-language-server", - ctx:write_shell_exec_wrapper( - "gradle-language-server", - ("java -jar %q"):format( - path.concat { ctx.package:get_install_path(), "lib", "gradle-language-server.jar" } - ) - ) - ) - end, -} diff --git a/lua/mason-registry/grammarly-languageserver/init.lua b/lua/mason-registry/grammarly-languageserver/init.lua deleted file mode 100644 index b0a9a739..00000000 --- a/lua/mason-registry/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-registry/graphql-language-service-cli/init.lua b/lua/mason-registry/graphql-language-service-cli/init.lua deleted file mode 100644 index 0bf6f1e6..00000000 --- a/lua/mason-registry/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-registry/groovy-language-server/init.lua b/lua/mason-registry/groovy-language-server/init.lua deleted file mode 100644 index 1470c7a4..00000000 --- a/lua/mason-registry/groovy-language-server/init.lua +++ /dev/null @@ -1,33 +0,0 @@ -local Pkg = require "mason-core.package" -local std = require "mason-core.managers.std" -local git = require "mason-core.managers.git" -local path = require "mason-core.path" - -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() }, - } - - ctx:link_bin( - "groovy-language-server", - ctx:write_shell_exec_wrapper( - "groovy-language-server", - ("java -jar %q"):format( - path.concat { ctx.package:get_install_path(), "build", "libs", "groovy-language-server-all.jar" } - ) - ) - ) - end, -} diff --git a/lua/mason-registry/hadolint/init.lua b/lua/mason-registry/hadolint/init.lua deleted file mode 100644 index 55a77873..00000000 --- a/lua/mason-registry/hadolint/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 = "hadolint", - desc = [[Dockerfile linter, validate inline bash, written in Haskell]], - homepage = "https://github.com/hadolint/hadolint", - languages = { Pkg.Lang.Docker }, - categories = { Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "hadolint/hadolint", - out_file = platform.is.win and "hadolint.exe" or "hadolint", - asset_file = coalesce( - when(platform.is.mac, "hadolint-Darwin-x86_64"), - when(platform.is.linux_arm64, "hadolint-Linux-arm64"), - when(platform.is.linux_x64, "hadolint-Linux-x86_64"), - when(platform.is.win_x64, "hadolint-Windows-x86_64.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "hadolint" }) - ctx:link_bin("hadolint", platform.is.win and "hadolint.exe" or "hadolint") - end, -} diff --git a/lua/mason-registry/haml-lint/init.lua b/lua/mason-registry/haml-lint/init.lua deleted file mode 100644 index d6edabdd..00000000 --- a/lua/mason-registry/haml-lint/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local gem = require "mason-core.managers.gem" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "haml-lint", - desc = _.dedent [[ - haml-lint is a tool to help keep your HAML files clean and readable. In addition to HAML-specific style and lint - checks, it integrates with RuboCop to bring its powerful static analysis tools to your HAML documents. - ]], - homepage = "https://github.com/sds/haml-lint", - languages = { Pkg.Lang.HAML }, - categories = { Pkg.Cat.Linter }, - install = gem.packages { "haml_lint", bin = { "haml-lint" } }, -} diff --git a/lua/mason-registry/haskell-language-server/init.lua b/lua/mason-registry/haskell-language-server/init.lua deleted file mode 100644 index 8f0e3d42..00000000 --- a/lua/mason-registry/haskell-language-server/init.lua +++ /dev/null @@ -1,55 +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 = require "mason-core.managers.github" -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 source = github.release_version { repo = "haskell/haskell-language-server" } - source.with_receipt() - - std.ensure_executable("ghcup", { help_url = "https://www.haskell.org/ghcup/" }) - ctx:promote_cwd() - ctx.spawn.ghcup { "install", "hls", source.release, "-i", ctx.cwd:get() } - - 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 deleted file mode 100644 index 77a14e46..00000000 --- a/lua/mason-registry/haxe-language-server/init.lua +++ /dev/null @@ -1,26 +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.spawn.npm { "install", "--production" } - 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 deleted file mode 100644 index 5d5ee234..00000000 --- a/lua/mason-registry/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-registry/html-lsp/init.lua b/lua/mason-registry/html-lsp/init.lua deleted file mode 100644 index ff8de04d..00000000 --- a/lua/mason-registry/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-registry/iferr/init.lua b/lua/mason-registry/iferr/init.lua deleted file mode 100644 index fbac2180..00000000 --- a/lua/mason-registry/iferr/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 = "iferr", - desc = [[Go tool to generate if err != nil block for the current function.]], - homepage = "https://github.com/koron/iferr", - categories = {}, - languages = { Pkg.Lang.Go }, - install = go.packages { "github.com/koron/iferr", bin = { "iferr" } }, -} diff --git a/lua/mason-registry/impl/init.lua b/lua/mason-registry/impl/init.lua deleted file mode 100644 index 5969132f..00000000 --- a/lua/mason-registry/impl/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 = "impl", - desc = [[impl generates method stubs for implementing an interface.]], - homepage = "https://github.com/josharian/impl", - categories = {}, - languages = { Pkg.Lang.Go }, - install = go.packages { "github.com/josharian/impl", bin = { "impl" } }, -} diff --git a/lua/mason-registry/index.lua b/lua/mason-registry/index.lua deleted file mode 100644 index 86c1cb85..00000000 --- a/lua/mason-registry/index.lua +++ /dev/null @@ -1,283 +0,0 @@ --- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY. --- stylua: ignore start -return { - actionlint = "mason-registry.actionlint", - ["ada-language-server"] = "mason-registry.ada-language-server", - alex = "mason-registry.alex", - ["angular-language-server"] = "mason-registry.angular-language-server", - ["ansible-language-server"] = "mason-registry.ansible-language-server", - ["ansible-lint"] = "mason-registry.ansible-lint", - ["antlers-language-server"] = "mason-registry.antlers-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", - autoflake = "mason-registry.autoflake", - autopep8 = "mason-registry.autopep8", - ["awk-language-server"] = "mason-registry.awk-language-server", - ["bash-debug-adapter"] = "mason-registry.bash-debug-adapter", - ["bash-language-server"] = "mason-registry.bash-language-server", - ["beancount-language-server"] = "mason-registry.beancount-language-server", - beautysh = "mason-registry.beautysh", - ["bicep-lsp"] = "mason-registry.bicep-lsp", - black = "mason-registry.black", - ["blackd-client"] = "mason-registry.blackd-client", - ["blade-formatter"] = "mason-registry.blade-formatter", - blue = "mason-registry.blue", - brighterscript = "mason-registry.brighterscript", - ["brighterscript-formatter"] = "mason-registry.brighterscript-formatter", - ["bsl-language-server"] = "mason-registry.bsl-language-server", - buf = "mason-registry.buf", - ["buf-language-server"] = "mason-registry.buf-language-server", - buildifier = "mason-registry.buildifier", - cbfmt = "mason-registry.cbfmt", - ["cfn-lint"] = "mason-registry.cfn-lint", - ["chrome-debug-adapter"] = "mason-registry.chrome-debug-adapter", - ["clang-format"] = "mason-registry.clang-format", - clangd = "mason-registry.clangd", - ["clarity-lsp"] = "mason-registry.clarity-lsp", - ["clojure-lsp"] = "mason-registry.clojure-lsp", - ["cmake-language-server"] = "mason-registry.cmake-language-server", - cmakelang = "mason-registry.cmakelang", - codelldb = "mason-registry.codelldb", - codeql = "mason-registry.codeql", - codespell = "mason-registry.codespell", - ["colorgen-nvim"] = "mason-registry.colorgen-nvim", - commitlint = "mason-registry.commitlint", - cpplint = "mason-registry.cpplint", - cpptools = "mason-registry.cpptools", - crystalline = "mason-registry.crystalline", - ["csharp-language-server"] = "mason-registry.csharp-language-server", - csharpier = "mason-registry.csharpier", - cspell = "mason-registry.cspell", - ["css-lsp"] = "mason-registry.css-lsp", - ["cssmodules-language-server"] = "mason-registry.cssmodules-language-server", - ["cucumber-language-server"] = "mason-registry.cucumber-language-server", - cueimports = "mason-registry.cueimports", - cuelsp = "mason-registry.cuelsp", - curlylint = "mason-registry.curlylint", - ["dart-debug-adapter"] = "mason-registry.dart-debug-adapter", - debugpy = "mason-registry.debugpy", - delve = "mason-registry.delve", - deno = "mason-registry.deno", - ["dhall-lsp"] = "mason-registry.dhall-lsp", - ["diagnostic-languageserver"] = "mason-registry.diagnostic-languageserver", - djlint = "mason-registry.djlint", - ["docker-compose-language-service"] = "mason-registry.docker-compose-language-service", - ["dockerfile-language-server"] = "mason-registry.dockerfile-language-server", - ["dot-language-server"] = "mason-registry.dot-language-server", - dprint = "mason-registry.dprint", - ["drools-lsp"] = "mason-registry.drools-lsp", - ["editorconfig-checker"] = "mason-registry.editorconfig-checker", - 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", - ["erb-lint"] = "mason-registry.erb-lint", - erg = "mason-registry.erg", - ["erg-language-server"] = "mason-registry.erg-language-server", - ["erlang-ls"] = "mason-registry.erlang-ls", - esbonio = "mason-registry.esbonio", - ["eslint-lsp"] = "mason-registry.eslint-lsp", - eslint_d = "mason-registry.eslint_d", - fantomas = "mason-registry.fantomas", - ["fennel-language-server"] = "mason-registry.fennel-language-server", - ["firefox-debug-adapter"] = "mason-registry.firefox-debug-adapter", - fixjson = "mason-registry.fixjson", - flake8 = "mason-registry.flake8", - ["flux-lsp"] = "mason-registry.flux-lsp", - ["foam-language-server"] = "mason-registry.foam-language-server", - fortls = "mason-registry.fortls", - fourmolu = "mason-registry.fourmolu", - fsautocomplete = "mason-registry.fsautocomplete", - gersemi = "mason-registry.gersemi", - gitlint = "mason-registry.gitlint", - gitui = "mason-registry.gitui", - glint = "mason-registry.glint", - glow = "mason-registry.glow", - ["go-debug-adapter"] = "mason-registry.go-debug-adapter", - gofumpt = "mason-registry.gofumpt", - goimports = "mason-registry.goimports", - ["goimports-reviser"] = "mason-registry.goimports-reviser", - ["golangci-lint"] = "mason-registry.golangci-lint", - ["golangci-lint-langserver"] = "mason-registry.golangci-lint-langserver", - golines = "mason-registry.golines", - gomodifytags = "mason-registry.gomodifytags", - ["google-java-format"] = "mason-registry.google-java-format", - gopls = "mason-registry.gopls", - gospel = "mason-registry.gospel", - gotests = "mason-registry.gotests", - gotestsum = "mason-registry.gotestsum", - ["gradle-language-server"] = "mason-registry.gradle-language-server", - ["grammarly-languageserver"] = "mason-registry.grammarly-languageserver", - ["graphql-language-service-cli"] = "mason-registry.graphql-language-service-cli", - ["groovy-language-server"] = "mason-registry.groovy-language-server", - hadolint = "mason-registry.hadolint", - ["haml-lint"] = "mason-registry.haml-lint", - ["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", - iferr = "mason-registry.iferr", - impl = "mason-registry.impl", - intelephense = "mason-registry.intelephense", - isort = "mason-registry.isort", - ["java-debug-adapter"] = "mason-registry.java-debug-adapter", - ["java-test"] = "mason-registry.java-test", - jdtls = "mason-registry.jdtls", - ["jedi-language-server"] = "mason-registry.jedi-language-server", - joker = "mason-registry.joker", - jq = "mason-registry.jq", - ["jq-lsp"] = "mason-registry.jq-lsp", - ["js-debug-adapter"] = "mason-registry.js-debug-adapter", - ["json-lsp"] = "mason-registry.json-lsp", - ["json-to-struct"] = "mason-registry.json-to-struct", - jsonlint = "mason-registry.jsonlint", - ["jsonnet-language-server"] = "mason-registry.jsonnet-language-server", - ["julia-lsp"] = "mason-registry.julia-lsp", - ["kotlin-debug-adapter"] = "mason-registry.kotlin-debug-adapter", - ["kotlin-language-server"] = "mason-registry.kotlin-language-server", - ktlint = "mason-registry.ktlint", - latexindent = "mason-registry.latexindent", - 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", - luacheck = "mason-registry.luacheck", - luaformatter = "mason-registry.luaformatter", - ["luau-lsp"] = "mason-registry.luau-lsp", - markdownlint = "mason-registry.markdownlint", - marksman = "mason-registry.marksman", - ["metamath-zero-lsp"] = "mason-registry.metamath-zero-lsp", - misspell = "mason-registry.misspell", - mockdebug = "mason-registry.mockdebug", - ["move-analyzer"] = "mason-registry.move-analyzer", - mypy = "mason-registry.mypy", - neocmakelsp = "mason-registry.neocmakelsp", - netcoredbg = "mason-registry.netcoredbg", - ["nginx-language-server"] = "mason-registry.nginx-language-server", - ["nickel-lang-lsp"] = "mason-registry.nickel-lang-lsp", - ["nil"] = "mason-registry.nil", - nimlsp = "mason-registry.nimlsp", - ["node-debug2-adapter"] = "mason-registry.node-debug2-adapter", - nxls = "mason-registry.nxls", - ["ocaml-lsp"] = "mason-registry.ocaml-lsp", - ocamlformat = "mason-registry.ocamlformat", - omnisharp = "mason-registry.omnisharp", - ["omnisharp-mono"] = "mason-registry.omnisharp-mono", - ["opencl-language-server"] = "mason-registry.opencl-language-server", - ["openscad-lsp"] = "mason-registry.openscad-lsp", - perlnavigator = "mason-registry.perlnavigator", - ["php-cs-fixer"] = "mason-registry.php-cs-fixer", - ["php-debug-adapter"] = "mason-registry.php-debug-adapter", - phpactor = "mason-registry.phpactor", - phpcbf = "mason-registry.phpcbf", - phpcs = "mason-registry.phpcs", - phpmd = "mason-registry.phpmd", - phpstan = "mason-registry.phpstan", - pint = "mason-registry.pint", - ["powershell-editor-services"] = "mason-registry.powershell-editor-services", - prettier = "mason-registry.prettier", - prettierd = "mason-registry.prettierd", - ["prisma-language-server"] = "mason-registry.prisma-language-server", - proselint = "mason-registry.proselint", - ["prosemd-lsp"] = "mason-registry.prosemd-lsp", - protolint = "mason-registry.protolint", - psalm = "mason-registry.psalm", - ["puppet-editor-services"] = "mason-registry.puppet-editor-services", - ["purescript-language-server"] = "mason-registry.purescript-language-server", - pydocstyle = "mason-registry.pydocstyle", - pylama = "mason-registry.pylama", - pylint = "mason-registry.pylint", - ["pyproject-flake8"] = "mason-registry.pyproject-flake8", - pyre = "mason-registry.pyre", - 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", - ["raku-navigator"] = "mason-registry.raku-navigator", - ["reason-language-server"] = "mason-registry.reason-language-server", - ["remark-cli"] = "mason-registry.remark-cli", - ["remark-language-server"] = "mason-registry.remark-language-server", - ["reorder-python-imports"] = "mason-registry.reorder-python-imports", - ["rescript-lsp"] = "mason-registry.rescript-lsp", - revive = "mason-registry.revive", - ["rnix-lsp"] = "mason-registry.rnix-lsp", - ["robotframework-lsp"] = "mason-registry.robotframework-lsp", - rome = "mason-registry.rome", - rstcheck = "mason-registry.rstcheck", - rubocop = "mason-registry.rubocop", - ["ruby-lsp"] = "mason-registry.ruby-lsp", - ruff = "mason-registry.ruff", - ["ruff-lsp"] = "mason-registry.ruff-lsp", - ["rust-analyzer"] = "mason-registry.rust-analyzer", - rustfmt = "mason-registry.rustfmt", - rustywind = "mason-registry.rustywind", - ["salt-lsp"] = "mason-registry.salt-lsp", - selene = "mason-registry.selene", - semgrep = "mason-registry.semgrep", - ["serve-d"] = "mason-registry.serve-d", - shellcheck = "mason-registry.shellcheck", - shellharden = "mason-registry.shellharden", - shfmt = "mason-registry.shfmt", - ["shopify-theme-check"] = "mason-registry.shopify-theme-check", - ["slint-lsp"] = "mason-registry.slint-lsp", - ["smithy-language-server"] = "mason-registry.smithy-language-server", - solang = "mason-registry.solang", - solargraph = "mason-registry.solargraph", - solhint = "mason-registry.solhint", - solidity = "mason-registry.solidity", - ["solidity-ls"] = "mason-registry.solidity-ls", - sorbet = "mason-registry.sorbet", - sourcery = "mason-registry.sourcery", - ["spectral-language-server"] = "mason-registry.spectral-language-server", - ["sql-formatter"] = "mason-registry.sql-formatter", - sqlfluff = "mason-registry.sqlfluff", - sqlls = "mason-registry.sqlls", - sqls = "mason-registry.sqls", - standardrb = "mason-registry.standardrb", - staticcheck = "mason-registry.staticcheck", - ["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", - tectonic = "mason-registry.tectonic", - ["terraform-ls"] = "mason-registry.terraform-ls", - texlab = "mason-registry.texlab", - textlint = "mason-registry.textlint", - tflint = "mason-registry.tflint", - twigcs = "mason-registry.twigcs", - ["typescript-language-server"] = "mason-registry.typescript-language-server", - ["unocss-language-server"] = "mason-registry.unocss-language-server", - usort = "mason-registry.usort", - vacuum = "mason-registry.vacuum", - ["vala-language-server"] = "mason-registry.vala-language-server", - vale = "mason-registry.vale", - verible = "mason-registry.verible", - ["veryl-ls"] = "mason-registry.veryl-ls", - ["vetur-vls"] = "mason-registry.vetur-vls", - ["vim-language-server"] = "mason-registry.vim-language-server", - vint = "mason-registry.vint", - ["visualforce-language-server"] = "mason-registry.visualforce-language-server", - vls = "mason-registry.vls", - vtsls = "mason-registry.vtsls", - ["vue-language-server"] = "mason-registry.vue-language-server", - vulture = "mason-registry.vulture", - ["wgsl-analyzer"] = "mason-registry.wgsl-analyzer", - ["write-good"] = "mason-registry.write-good", - xmlformatter = "mason-registry.xmlformatter", - xo = "mason-registry.xo", - ["yaml-language-server"] = "mason-registry.yaml-language-server", - yamlfmt = "mason-registry.yamlfmt", - yamllint = "mason-registry.yamllint", - yapf = "mason-registry.yapf", - zk = "mason-registry.zk", - zls = "mason-registry.zls" -} \ No newline at end of file diff --git a/lua/mason-registry/index/actionlint/init.lua b/lua/mason-registry/index/actionlint/init.lua new file mode 100644 index 00000000..4d6e71bb --- /dev/null +++ b/lua/mason-registry/index/actionlint/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 std = require "mason-core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "actionlint", + desc = [[Static checker for GitHub Actions workflow files]], + homepage = "https://github.com/rhysd/actionlint", + languages = { Pkg.Lang.YAML }, + categories = { Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "rhysd/actionlint" + local function format_release_file(file) + return _.compose(_.format(file), _.gsub("^v", "")) + end + + platform.when { + unix = function() + github + .untargz_release_file({ + repo = repo, + asset_file = coalesce( + when(platform.is.mac_x64, format_release_file "actionlint_%s_darwin_amd64.tar.gz"), + when(platform.is.mac_arm64, format_release_file "actionlint_%s_darwin_arm64.tar.gz"), + when(platform.is.linux_x64, format_release_file "actionlint_%s_linux_amd64.tar.gz"), + when(platform.is.linux_arm, format_release_file "actionlint_%s_linux_armv6.tar.gz"), + when(platform.is.linux_arm64, format_release_file "actionlint_%s_linux_arm64.tar.gz"), + when(platform.is.linux_x86, format_release_file "actionlint_%s_linux_386.tar.gz") + ), + }) + .with_receipt() + std.chmod("+x", { "actionlint" }) + end, + win = function() + github + .unzip_release_file({ + repo = repo, + asset_file = coalesce( + when(platform.is.win_arm64, format_release_file "actionlint_%s_windows_arm64.zip"), + when(platform.is.win_x64, format_release_file "actionlint_%s_windows_amd64.zip"), + when(platform.is.win_x86, format_release_file "actionlint_%s_windows_386.zip") + ), + }) + .with_receipt() + end, + } + ctx:link_bin("actionlint", platform.is.win and "actionlint.exe" or "actionlint") + end, +} diff --git a/lua/mason-registry/index/ada-language-server/init.lua b/lua/mason-registry/index/ada-language-server/init.lua new file mode 100644 index 00000000..da870817 --- /dev/null +++ b/lua/mason-registry/index/ada-language-server/init.lua @@ -0,0 +1,40 @@ +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 = "ada-language-server", + desc = [[Ada/SPARK language server]], + homepage = "https://github.com/AdaCore/ada_language_server", + languages = { Pkg.Lang.Ada }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "AdaCore/ada_language_server", + asset_file = function(release) + local target = coalesce( + when(platform.is.mac, "als-%s-macOS_amd64.zip"), + when(platform.is.linux_x64, "als-%s-Linux_amd64.zip"), + when(platform.is.win_x64, "als-%s-Windows_amd64.zip") + ) + return target and target:format(release) + end, + }) + .with_receipt() + + local binary = coalesce( + when(platform.is.mac, path.concat { "darwin", "ada_language_server" }), + when(platform.is.linux_x64, path.concat { "linux", "ada_language_server" }), + when(platform.is.win_x64, path.concat { "win32", "ada_language_server.exe" }) + ) + ctx:link_bin("ada_language_server", binary) + end, +} diff --git a/lua/mason-registry/index/alex/init.lua b/lua/mason-registry/index/alex/init.lua new file mode 100644 index 00000000..67d40455 --- /dev/null +++ b/lua/mason-registry/index/alex/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "alex", + desc = [[Catch insensitive, inconsiderate writing]], + homepage = "https://github.com/get-alex/alex", + languages = { Pkg.Lang.Markdown }, + categories = { Pkg.Cat.Linter }, + install = npm.packages { "alex", bin = { "alex" } }, +} diff --git a/lua/mason-registry/index/angular-language-server/init.lua b/lua/mason-registry/index/angular-language-server/init.lua new file mode 100644 index 00000000..f56dd4cb --- /dev/null +++ b/lua/mason-registry/index/angular-language-server/init.lua @@ -0,0 +1,16 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "angular-language-server", + desc = _.dedent [[ + 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/index/ansible-language-server/init.lua b/lua/mason-registry/index/ansible-language-server/init.lua new file mode 100644 index 00000000..abb6e1df --- /dev/null +++ b/lua/mason-registry/index/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/index/ansible-lint/init.lua b/lua/mason-registry/index/ansible-lint/init.lua new file mode 100644 index 00000000..1727e182 --- /dev/null +++ b/lua/mason-registry/index/ansible-lint/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "ansible-lint", + desc = _.dedent [[ + Ansible Lint is a command-line tool for linting playbooks, + roles and collections aimed toward any Ansible users. + ]], + homepage = "https://github.com/ansible/ansible-lint", + languages = { Pkg.Lang.Ansible }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "ansible-lint", bin = { "ansible-lint" } }, +} diff --git a/lua/mason-registry/index/antlers-language-server/init.lua b/lua/mason-registry/index/antlers-language-server/init.lua new file mode 100644 index 00000000..c518ed8c --- /dev/null +++ b/lua/mason-registry/index/antlers-language-server/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "antlers-language-server", + desc = _.dedent [[ + Provides rich language features for Statamic's Antlers templating language, including code completions, syntax + highlighting, and more. + ]], + homepage = "https://github.com/Stillat/vscode-antlers-language-server", + languages = { Pkg.Lang.Antlers }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "antlers-language-server", bin = { "antlersls" } }, +} diff --git a/lua/mason-registry/index/apex-language-server/init.lua b/lua/mason-registry/index/apex-language-server/init.lua new file mode 100644 index 00000000..e32dd98d --- /dev/null +++ b/lua/mason-registry/index/apex-language-server/init.lua @@ -0,0 +1,43 @@ +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 = _.dedent [[ + 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", "dist", JAR_FILE }, JAR_FILE) + ctx.fs:rmrf "extension" + end, +} diff --git a/lua/mason-registry/index/arduino-language-server/init.lua b/lua/mason-registry/index/arduino-language-server/init.lua new file mode 100644 index 00000000..1d2e686c --- /dev/null +++ b/lua/mason-registry/index/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_%s_Windows_64bit.zip"), + when(platform.is.win_x86, "arduino-language-server_%s_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/index/asm-lsp/init.lua b/lua/mason-registry/index/asm-lsp/init.lua new file mode 100644 index 00000000..9b2cc6fd --- /dev/null +++ b/lua/mason-registry/index/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/index/astro-language-server/init.lua b/lua/mason-registry/index/astro-language-server/init.lua new file mode 100644 index 00000000..8e69ddfe --- /dev/null +++ b/lua/mason-registry/index/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", "typescript", bin = { "astro-ls" } }, +} diff --git a/lua/mason-registry/index/autoflake/init.lua b/lua/mason-registry/index/autoflake/init.lua new file mode 100644 index 00000000..121abf34 --- /dev/null +++ b/lua/mason-registry/index/autoflake/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "autoflake", + desc = [[autoflake removes unused imports and unused variables from Python code.]], + homepage = "https://pypi.org/project/autoflake/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "autoflake", bin = { "autoflake" } }, +} diff --git a/lua/mason-registry/index/autopep8/init.lua b/lua/mason-registry/index/autopep8/init.lua new file mode 100644 index 00000000..18f34530 --- /dev/null +++ b/lua/mason-registry/index/autopep8/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "autopep8", + desc = [[A tool that automatically formats Python code to conform to the PEP 8 style guide]], + homepage = "https://pypi.org/project/autopep8/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "autopep8", bin = { "autopep8" } }, +} diff --git a/lua/mason-registry/index/awk-language-server/init.lua b/lua/mason-registry/index/awk-language-server/init.lua new file mode 100644 index 00000000..9b725cfa --- /dev/null +++ b/lua/mason-registry/index/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/index/bash-debug-adapter/init.lua b/lua/mason-registry/index/bash-debug-adapter/init.lua new file mode 100644 index 00000000..6d98e2e8 --- /dev/null +++ b/lua/mason-registry/index/bash-debug-adapter/init.lua @@ -0,0 +1,44 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local github_client = require "mason-core.managers.github.client" +local _ = require "mason-core.functional" +local path = require "mason-core.path" +local Optional = require "mason-core.optional" + +return Pkg.new { + name = "bash-debug-adapter", + desc = [[Bash shell debugger, based on bashdb.]], + homepage = "https://github.com/rogalmic/vscode-bash-debug", + languages = { Pkg.Lang.Bash }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "rogalmic/vscode-bash-debug" + ---@type GitHubRelease + local 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 release_asset = _.find_first(_.prop_satisfies(_.matches "%.vsix$", "name"), release.assets) + + github + .unzip_release_file({ + repo = repo, + asset_file = release_asset.name, + version = Optional.of(release.tag_name), + }) + .with_receipt() + + ctx.fs:rmrf(path.concat { "extension", "images" }) + ctx:link_bin( + "bash-debug-adapter", + ctx:write_node_exec_wrapper("bash-debug-adapter", path.concat { "extension", "out", "bashDebug.js" }) + ) + end, +} diff --git a/lua/mason-registry/index/bash-language-server/init.lua b/lua/mason-registry/index/bash-language-server/init.lua new file mode 100644 index 00000000..26e16b7f --- /dev/null +++ b/lua/mason-registry/index/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/index/beancount-language-server/init.lua b/lua/mason-registry/index/beancount-language-server/init.lua new file mode 100644 index 00000000..9c545ff0 --- /dev/null +++ b/lua/mason-registry/index/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/index/beautysh/init.lua b/lua/mason-registry/index/beautysh/init.lua new file mode 100644 index 00000000..786540a8 --- /dev/null +++ b/lua/mason-registry/index/beautysh/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "beautysh", + desc = [[beautysh - A Bash beautifier for the masses.]], + homepage = "https://github.com/lovesegfault/beautysh", + languages = { Pkg.Lang.Bash, Pkg.Lang.Csh, Pkg.Lang.Ksh, Pkg.Lang.Sh, Pkg.Lang.Zsh }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "beautysh", bin = { "beautysh" } }, +} diff --git a/lua/mason-registry/index/bicep-lsp/init.lua b/lua/mason-registry/index/bicep-lsp/init.lua new file mode 100644 index 00000000..8472505a --- /dev/null +++ b/lua/mason-registry/index/bicep-lsp/init.lua @@ -0,0 +1,42 @@ +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" }, "bicepLanguageServer") + ctx.fs:rmrf "vscode" + + ctx:link_bin( + "bicep-lsp", + ctx:write_shell_exec_wrapper( + "bicep-lsp", + ("dotnet %q"):format(path.concat { + ctx.package:get_install_path(), + "bicepLanguageServer", + "Bicep.LangServer.dll", + }) + ) + ) + end, +} diff --git a/lua/mason-registry/index/black/init.lua b/lua/mason-registry/index/black/init.lua new file mode 100644 index 00000000..5f26fe9a --- /dev/null +++ b/lua/mason-registry/index/black/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "black", + desc = [[Black, the uncompromising Python code formatter]], + homepage = "https://pypi.org/project/black/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "black", bin = { "black" } }, +} diff --git a/lua/mason-registry/index/blackd-client/init.lua b/lua/mason-registry/index/blackd-client/init.lua new file mode 100644 index 00000000..c90e5754 --- /dev/null +++ b/lua/mason-registry/index/blackd-client/init.lua @@ -0,0 +1,31 @@ +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 std = require "mason-core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "blackd-client", + desc = [[Tiny HTTP client for the Black (blackd) Python code formatter]], + homepage = "https://github.com/disrupted/blackd-client", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "disrupted/blackd-client", + asset_file = coalesce( + when(platform.is.mac, "blackd-client_macos"), + when(platform.is.linux_x64_gnu, "blackd-client_linux") + ), + out_file = "blackd-client", + }) + .with_receipt() + std.chmod("+x", { "blackd-client" }) + ctx:link_bin("blackd-client", "blackd-client") + end, +} diff --git a/lua/mason-registry/index/blade-formatter/init.lua b/lua/mason-registry/index/blade-formatter/init.lua new file mode 100644 index 00000000..1a16e183 --- /dev/null +++ b/lua/mason-registry/index/blade-formatter/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "blade-formatter", + desc = [[An opinionated blade template formatter for Laravel that respects readability]], + homepage = "https://github.com/shufo/blade-formatter", + languages = { Pkg.Lang.Blade }, + categories = { Pkg.Cat.Formatter }, + install = npm.packages { "blade-formatter", bin = { "blade-formatter" } }, +} diff --git a/lua/mason-registry/index/blue/init.lua b/lua/mason-registry/index/blue/init.lua new file mode 100644 index 00000000..339d35d2 --- /dev/null +++ b/lua/mason-registry/index/blue/init.lua @@ -0,0 +1,17 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "blue", + desc = _.dedent [[ + blue is a somewhat less uncompromising code formatter than black, the OG of Python formatters. We love the idea + of automatically formatting Python code, for the same reasons that inspired black, however we take issue with + some of the decisions black makes. Kudos to black for pioneering code formatting for Python, and for its + excellent implementation. + ]], + homepage = "https://blue.readthedocs.io/en/latest/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "blue", bin = { "blue" } }, +} diff --git a/lua/mason-registry/index/brighterscript-formatter/init.lua b/lua/mason-registry/index/brighterscript-formatter/init.lua new file mode 100644 index 00000000..1e993aad --- /dev/null +++ b/lua/mason-registry/index/brighterscript-formatter/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "brighterscript-formatter", + desc = [[A code formatter for BrightScript and BrighterScript.]], + homepage = "https://github.com/rokucommunity/brighterscript-formatter", + languages = { Pkg.Lang.BrighterScript }, + categories = { Pkg.Cat.Formatter }, + install = npm.packages { "brighterscript-formatter", bin = { "bsfmt" } }, +} diff --git a/lua/mason-registry/index/brighterscript/init.lua b/lua/mason-registry/index/brighterscript/init.lua new file mode 100644 index 00000000..677fe690 --- /dev/null +++ b/lua/mason-registry/index/brighterscript/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "brighterscript", + desc = [[A superset of Roku's BrightScript language.]], + homepage = "https://github.com/RokuCommunity/brighterscript", + languages = { Pkg.Lang.BrighterScript }, + categories = { Pkg.Cat.LSP, Pkg.Cat.Compiler }, + install = npm.packages { "brighterscript", bin = { "bsc" } }, +} diff --git a/lua/mason-registry/index/bsl-language-server/init.lua b/lua/mason-registry/index/bsl-language-server/init.lua new file mode 100644 index 00000000..2b5ad2ab --- /dev/null +++ b/lua/mason-registry/index/bsl-language-server/init.lua @@ -0,0 +1,33 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local path = require "mason-core.path" + +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 + ---@param ctx InstallContext + install = function(ctx) + 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() + + ctx:link_bin( + "bsl-language-server", + ctx:write_shell_exec_wrapper( + "bsl-language-server", + ("java -jar %q"):format(path.concat { ctx.package:get_install_path(), "bsl-lsp.jar" }) + ) + ) + end, +} diff --git a/lua/mason-registry/index/buf-language-server/init.lua b/lua/mason-registry/index/buf-language-server/init.lua new file mode 100644 index 00000000..fb18788f --- /dev/null +++ b/lua/mason-registry/index/buf-language-server/init.lua @@ -0,0 +1,14 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "buf-language-server", + desc = [[`bufls` is a prototype for the beginnings of a Protobuf language server compatible with Buf modules and workspaces.]], + homepage = "https://github.com/bufbuild/buf-language-server", + languages = { Pkg.Lang.Protobuf }, + categories = { Pkg.Cat.LSP }, + install = go.packages { + "github.com/bufbuild/buf-language-server/cmd/bufls", + bin = { "bufls" }, + }, +} diff --git a/lua/mason-registry/index/buf/init.lua b/lua/mason-registry/index/buf/init.lua new file mode 100644 index 00000000..28ab3e2a --- /dev/null +++ b/lua/mason-registry/index/buf/init.lua @@ -0,0 +1,39 @@ +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 = "buf", + desc = _.dedent [[ + The Buf CLI is a one stop shop for your local Protocol Buffers needs. It comes with a linter that enforces good + API designs, a breaking change detector, a generator, a formatter that formats your Protobuf files in accordance + with industry standards. It also helps you manage your Protobuf assets on the Buf Schema Registry. + ]], + homepage = "https://buf.build", + languages = { Pkg.Lang.Protobuf }, + categories = { Pkg.Cat.Linter, Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "bufbuild/buf", + out_file = platform.is.win and "buf.exe" or "buf", + asset_file = coalesce( + when(platform.is.mac_x64, "buf-Darwin-x86_64"), + when(platform.is.mac_arm64, "buf-Darwin-arm64"), + when(platform.is.linux_x64, "buf-Linux-x86_64"), + when(platform.is.linux_arm64, "buf-Linux-aarch64"), + when(platform.is.win_arm64, "buf-Windows-arm64.exe"), + when(platform.is.win_x64, "buf-Windows-x86_64.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "buf" }) + ctx:link_bin("buf", platform.is.win and "buf.exe" or "buf") + end, +} diff --git a/lua/mason-registry/index/buildifier/init.lua b/lua/mason-registry/index/buildifier/init.lua new file mode 100644 index 00000000..d245011e --- /dev/null +++ b/lua/mason-registry/index/buildifier/init.lua @@ -0,0 +1,34 @@ +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 coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "buildifier", + desc = [[buildifier is a tool for formatting and linting bazel BUILD, WORKSPACE, and .bzl files.]], + homepage = "https://github.com/bazelbuild/buildtools", + languages = { Pkg.Lang.Bazel }, + categories = { Pkg.Cat.Linter, Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "bazelbuild/buildtools", + out_file = platform.is.win and "buildifier.exe" or "buildifier", + asset_file = coalesce( + when(platform.is.mac_x64, "buildifier-darwin-amd64"), + when(platform.is.mac_arm64, "buildifier-darwin-arm64"), + when(platform.is.linux_x64, "buildifier-linux-amd64"), + when(platform.is.linux_arm64, "buildifier-linux-arm64"), + when(platform.is.win_x64, "buildifier-windows-amd64.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "buildifier" }) + ctx:link_bin("buildifier", platform.is.win and "buildifier.exe" or "buildifier") + end, +} diff --git a/lua/mason-registry/index/cbfmt/init.lua b/lua/mason-registry/index/cbfmt/init.lua new file mode 100644 index 00000000..1fda9ce7 --- /dev/null +++ b/lua/mason-registry/index/cbfmt/init.lua @@ -0,0 +1,49 @@ +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 = "cbfmt", + desc = _.dedent [[ + A tool to format codeblocks inside markdown and org documents. It iterates over all codeblocks, and formats them + with the tool(s) specified for the language of the block. + ]], + homepage = "https://github.com/lukas-reineke/cbfmt", + languages = { Pkg.Lang.Markdown }, + categories = { Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local asset_file = coalesce( + when(platform.is.mac, "cbfmt_macos-x86_64_%s.tar.gz"), + when(platform.is.linux_x64_gnu, "cbfmt_linux-x86_64_%s.tar.gz"), + when(platform.is.linux_x64_musl, "cbfmt_linux-x86_64-musl_%s.tar.gz"), + when(platform.is.win_x64, "cbfmt_windows-x86_64-msvc_%s.zip") + ) + + local source = platform.when { + unix = function() + return github.untargz_release_file { + repo = "lukas-reineke/cbfmt", + asset_file = _.format(asset_file), + } + end, + win = function() + return github.unzip_release_file { + repo = "lukas-reineke/cbfmt", + asset_file = _.format(asset_file), + } + end, + } + source.with_receipt() + local strip_extension = _.compose(_.gsub("%.zip$", ""), _.gsub("%.tar%.gz$", "")) + ctx:link_bin( + "cbfmt", + path.concat { strip_extension(source.asset_file), platform.is.win and "cbfmt.exe" or "cbfmt" } + ) + end, +} diff --git a/lua/mason-registry/index/cfn-lint/init.lua b/lua/mason-registry/index/cfn-lint/init.lua new file mode 100644 index 00000000..7eeee2f9 --- /dev/null +++ b/lua/mason-registry/index/cfn-lint/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "cfn-lint", + desc = _.dedent [[ + CloudFormation Linter. Validate AWS CloudFormation YAML/JSON templates against the AWS CloudFormation Resource + Specification and additional checks. Includes checking valid values for resource properties and best practices. + ]], + homepage = "https://github.com/aws-cloudformation/cfn-lint", + languages = { Pkg.Lang.YAML, Pkg.Lang.JSON }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "cfn-lint", bin = { "cfn-lint" } }, +} diff --git a/lua/mason-registry/index/chrome-debug-adapter/init.lua b/lua/mason-registry/index/chrome-debug-adapter/init.lua new file mode 100644 index 00000000..3ebfb736 --- /dev/null +++ b/lua/mason-registry/index/chrome-debug-adapter/init.lua @@ -0,0 +1,32 @@ +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" } + ctx.spawn.npm { "install", "--production", "--ignore-scripts" } + -- 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/index/clang-format/init.lua b/lua/mason-registry/index/clang-format/init.lua new file mode 100644 index 00000000..62a9e4b9 --- /dev/null +++ b/lua/mason-registry/index/clang-format/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "clang-format", + desc = [[clang-format is formatter for C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code]], + homepage = "https://pypi.org/project/clang-format/", + languages = { Pkg.Lang.C, Pkg.Lang["C++"], Pkg.Lang.Java, Pkg.Lang.JavaScript, Pkg.Lang.JSON, Pkg.Lang["C#"] }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "clang-format", bin = { "clang-format" } }, +} diff --git a/lua/mason-registry/index/clangd/init.lua b/lua/mason-registry/index/clangd/init.lua new file mode 100644 index 00000000..5e52c789 --- /dev/null +++ b/lua/mason-registry/index/clangd/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 path = require "mason-core.path" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "clangd", + desc = _.dedent [[ + 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/index/clarity-lsp/init.lua b/lua/mason-registry/index/clarity-lsp/init.lua new file mode 100644 index 00000000..d919ad85 --- /dev/null +++ b/lua/mason-registry/index/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/index/clojure-lsp/init.lua b/lua/mason-registry/index/clojure-lsp/init.lua new file mode 100644 index 00000000..81f59143 --- /dev/null +++ b/lua/mason-registry/index/clojure-lsp/init.lua @@ -0,0 +1,34 @@ +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_musl, "clojure-lsp-native-static-linux-amd64.zip"), + when(platform.is.linux_x64_gnu, "clojure-lsp-native-linux-amd64.zip"), + when(platform.is.linux_arm64, "clojure-lsp-native-linux-aarch64.zip"), + when(platform.is.win_x64, "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/index/cmake-language-server/init.lua b/lua/mason-registry/index/cmake-language-server/init.lua new file mode 100644 index 00000000..40290488 --- /dev/null +++ b/lua/mason-registry/index/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/index/cmakelang/init.lua b/lua/mason-registry/index/cmakelang/init.lua new file mode 100644 index 00000000..9ecaffbf --- /dev/null +++ b/lua/mason-registry/index/cmakelang/init.lua @@ -0,0 +1,19 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "cmakelang", + desc = [[Language tools for cmake (format, lint, etc)]], + homepage = "https://pypi.org/project/cmakelang/", + languages = { Pkg.Lang.CMake }, + categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, + install = pip3.packages { + "cmakelang", + bin = { + "cmake-annotate", + "cmake-format", + "cmake-lint", + "ctest-to", + }, + }, +} diff --git a/lua/mason-registry/index/codelldb/init.lua b/lua/mason-registry/index/codelldb/init.lua new file mode 100644 index 00000000..4cbdcf04 --- /dev/null +++ b/lua/mason-registry/index/codelldb/init.lua @@ -0,0 +1,41 @@ +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_gnu, "codelldb-x86_64-linux.vsix"), + _.when(platform.is.linux_arm64_gnu, "codelldb-aarch64-linux.vsix"), + _.when(platform.is.linux_arm_gnu, "codelldb-arm-linux.vsix"), + _.when(platform.is.win_x64, "codelldb-x86_64-windows.vsix") + ), + }) + .with_receipt() + platform.when { + unix = function() + ctx:link_bin( + "codelldb", + ctx:write_exec_wrapper("codelldb", path.concat { "extension", "adapter", "codelldb" }) + ) + end, + win = function() + ctx:link_bin("codelldb", path.concat { "extension", "adapter", "codelldb.exe" }) + end, + } + end, +} diff --git a/lua/mason-registry/index/codeql/init.lua b/lua/mason-registry/index/codeql/init.lua new file mode 100644 index 00000000..a96567d1 --- /dev/null +++ b/lua/mason-registry/index/codeql/init.lua @@ -0,0 +1,34 @@ +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 = _.dedent [[ + 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/index/codespell/init.lua b/lua/mason-registry/index/codespell/init.lua new file mode 100644 index 00000000..73639783 --- /dev/null +++ b/lua/mason-registry/index/codespell/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "codespell", + desc = [[check code for common misspellings]], + homepage = "https://github.com/codespell-project/codespell", + languages = {}, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "codespell", bin = { "codespell" } }, +} diff --git a/lua/mason-registry/index/colorgen-nvim/init.lua b/lua/mason-registry/index/colorgen-nvim/init.lua new file mode 100644 index 00000000..d1d55c1f --- /dev/null +++ b/lua/mason-registry/index/colorgen-nvim/init.lua @@ -0,0 +1,17 @@ +local Pkg = require "mason-core.package" +local cargo = require "mason-core.managers.cargo" + +return Pkg.new { + name = "colorgen-nvim", + desc = [[Blazingly fast colorscheme generator for Neovim written in Rust]], + homepage = "https://github.com/ChristianChiarulli/colorgen-nvim", + languages = {}, + categories = { Pkg.Cat.Compiler }, + install = cargo.crate("colorgen-nvim", { + git = { + url = "https://github.com/ChristianChiarulli/colorgen-nvim", + tag = false, + }, + bin = { "colorgen-nvim" }, + }), +} diff --git a/lua/mason-registry/index/commitlint/init.lua b/lua/mason-registry/index/commitlint/init.lua new file mode 100644 index 00000000..02f23ccf --- /dev/null +++ b/lua/mason-registry/index/commitlint/init.lua @@ -0,0 +1,17 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "commitlint", + desc = "commitlint checks if your commit messages meet the conventional commit format.", + homepage = "https://commitlint.js.org/", + languages = { Pkg.Lang.GitCommit }, + categories = { Pkg.Cat.Linter }, + install = npm.packages { + "@commitlint/cli", + "@commitlint/config-conventional", + "commitlint-format-json", + bin = { "commitlint" }, + }, +} diff --git a/lua/mason-registry/index/cpplint/init.lua b/lua/mason-registry/index/cpplint/init.lua new file mode 100644 index 00000000..2b9eab14 --- /dev/null +++ b/lua/mason-registry/index/cpplint/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "cpplint", + desc = [[Cpplint is a command-line tool to check C/C++ files for style issues following Google's C++ style guide]], + homepage = "https://pypi.org/project/cpplint/", + languages = { Pkg.Lang.C, Pkg.Lang["C++"] }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "cpplint", bin = { "cpplint" } }, +} diff --git a/lua/mason-registry/index/cpptools/init.lua b/lua/mason-registry/index/cpptools/init.lua new file mode 100644 index 00000000..86b6ecd6 --- /dev/null +++ b/lua/mason-registry/index/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/index/crystalline/init.lua b/lua/mason-registry/index/crystalline/init.lua new file mode 100644 index 00000000..34128fdf --- /dev/null +++ b/lua/mason-registry/index/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-musl.gz") + ), + out_file = "crystalline", + }) + .with_receipt() + std.chmod("+x", { "crystalline" }) + ctx:link_bin("crystalline", "crystalline") + end, +} diff --git a/lua/mason-registry/index/csharp-language-server/init.lua b/lua/mason-registry/index/csharp-language-server/init.lua new file mode 100644 index 00000000..34093a9f --- /dev/null +++ b/lua/mason-registry/index/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/index/csharpier/init.lua b/lua/mason-registry/index/csharpier/init.lua new file mode 100644 index 00000000..d3600eb3 --- /dev/null +++ b/lua/mason-registry/index/csharpier/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local dotnet = require "mason-core.managers.dotnet" + +return Pkg.new { + name = "csharpier", + desc = [[CSharpier is an opinionated code formatter for c#]], + homepage = "https://csharpier.com", + languages = { Pkg.Lang["C#"] }, + categories = { Pkg.Cat.Formatter }, + install = dotnet.package("csharpier", { bin = { "dotnet-csharpier" } }), +} diff --git a/lua/mason-registry/index/cspell/init.lua b/lua/mason-registry/index/cspell/init.lua new file mode 100644 index 00000000..9c3a9ce7 --- /dev/null +++ b/lua/mason-registry/index/cspell/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "cspell", + desc = [[A Spell Checker for Code]], + homepage = "https://github.com/streetsidesoftware/cspell", + languages = {}, + categories = { Pkg.Cat.Linter }, + install = npm.packages { "cspell", bin = { "cspell" } }, +} diff --git a/lua/mason-registry/index/css-lsp/init.lua b/lua/mason-registry/index/css-lsp/init.lua new file mode 100644 index 00000000..be94b476 --- /dev/null +++ b/lua/mason-registry/index/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/index/cssmodules-language-server/init.lua b/lua/mason-registry/index/cssmodules-language-server/init.lua new file mode 100644 index 00000000..98527d69 --- /dev/null +++ b/lua/mason-registry/index/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-definition 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/index/cucumber-language-server/init.lua b/lua/mason-registry/index/cucumber-language-server/init.lua new file mode 100644 index 00000000..8e4c8434 --- /dev/null +++ b/lua/mason-registry/index/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/index/cueimports/init.lua b/lua/mason-registry/index/cueimports/init.lua new file mode 100644 index 00000000..a6a345f4 --- /dev/null +++ b/lua/mason-registry/index/cueimports/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "cueimports", + desc = [[CUE tool that updates your import lines, adding missing ones and removing unused ones.]], + homepage = "https://github.com/asdine/cueimports", + languages = { Pkg.Lang.Cue }, + categories = { Pkg.Cat.Formatter }, + install = go.packages { "github.com/asdine/cueimports/cmd/cueimports", bin = { "cueimports" } }, +} diff --git a/lua/mason-registry/index/cuelsp/init.lua b/lua/mason-registry/index/cuelsp/init.lua new file mode 100644 index 00000000..db4b42ff --- /dev/null +++ b/lua/mason-registry/index/cuelsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "cuelsp", + desc = [[Language Server implementation for CUE, with built-in support for Dagger.]], + homepage = "https://github.com/dagger/cuelsp", + languages = { Pkg.Lang.Cue }, + categories = { Pkg.Cat.LSP }, + install = go.packages { "github.com/dagger/cuelsp/cmd/cuelsp", bin = { "cuelsp" } }, +} diff --git a/lua/mason-registry/index/curlylint/init.lua b/lua/mason-registry/index/curlylint/init.lua new file mode 100644 index 00000000..074a3ae9 --- /dev/null +++ b/lua/mason-registry/index/curlylint/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "curlylint", + desc = [[Experimental HTML templates linting for Jinja, Nunjucks, Django templates, Twig, Liquid]], + homepage = "https://www.curlylint.org/", + languages = { Pkg.Lang.Django, Pkg.Lang.Jinja, Pkg.Lang.Nunjucks, Pkg.Lang.Twig, Pkg.Lang.Liquid }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "curlylint", bin = { "curlylint" } }, +} diff --git a/lua/mason-registry/index/dart-debug-adapter/init.lua b/lua/mason-registry/index/dart-debug-adapter/init.lua new file mode 100644 index 00000000..402a82cc --- /dev/null +++ b/lua/mason-registry/index/dart-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 = "dart-debug-adapter", + desc = [[Dart debug adapter sourced from the Dart VSCode extension.]], + homepage = "https://github.com/Dart-Code/Dart-Code", + languages = { Pkg.Lang.Dart }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "Dart-Code/Dart-Code", + asset_file = _.compose(_.format "dart-code-%s.vsix", _.gsub("^v", "")), + }) + .with_receipt() + ctx.fs:rmrf(path.concat { "extension", "media" }) + ctx:link_bin( + "dart-debug-adapter", + ctx:write_node_exec_wrapper("dart-debug-adapter", path.concat { "extension", "out", "dist", "debug.js" }) + ) + end, +} diff --git a/lua/mason-registry/index/debugpy/init.lua b/lua/mason-registry/index/debugpy/init.lua new file mode 100644 index 00000000..51587a8a --- /dev/null +++ b/lua/mason-registry/index/debugpy/init.lua @@ -0,0 +1,18 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" +local path = require "mason-core.path" + +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 }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + pip3.install({ "debugpy" }).with_receipt() + ctx:link_bin("debugpy", ctx:write_pyvenv_exec_wrapper("debugpy", "debugpy")) + ctx:link_bin("debugpy-adapter", ctx:write_pyvenv_exec_wrapper("debugpy-adapter", "debugpy.adapter")) + end, +} diff --git a/lua/mason-registry/index/delve/init.lua b/lua/mason-registry/index/delve/init.lua new file mode 100644 index 00000000..a0e3e121 --- /dev/null +++ b/lua/mason-registry/index/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/index/deno/init.lua b/lua/mason-registry/index/deno/init.lua new file mode 100644 index 00000000..cf9d5e34 --- /dev/null +++ b/lua/mason-registry/index/deno/init.lua @@ -0,0 +1,33 @@ +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 = _.dedent [[ + 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/index/dhall-lsp/init.lua b/lua/mason-registry/index/dhall-lsp/init.lua new file mode 100644 index 00000000..6e69d68d --- /dev/null +++ b/lua/mason-registry/index/dhall-lsp/init.lua @@ -0,0 +1,75 @@ +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" +local Result = require "mason-core.result" + +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 asset_name_pattern = assert( + _.coalesce( + _.when(platform.is.mac, "dhall%-lsp%-server%-.+%-x86_64%-[mM]acos.tar.bz2"), + _.when(platform.is.linux_x64, "dhall%-lsp%-server%-.+%-x86_64%-[lL]inux.tar.bz2"), + _.when(platform.is.win_x64, "dhall%-lsp%-server%-.+%-x86_64%-[wW]indows.zip") + ), + "Current platform is not supported." + ) + local find_lsp_server_asset = + _.compose(_.find_first(_.prop_satisfies(_.matches(asset_name_pattern), "name")), _.prop "assets") + + local repo = "dhall-lang/dhall-haskell" + ---@type GitHubRelease + local release = ctx.requested_version + :map(function(version) + return github_client.fetch_release(repo, version):and_then( + _.if_else( + find_lsp_server_asset, + Result.success, + _.always(Result.failure "Unable to find asset file in GitHub release.") + ) + ) + end) + :or_else_get(function() + return github_client.fetch_releases(repo):and_then(function(releases) + return Optional.of_nilable(_.find_first(find_lsp_server_asset, releases)) + :ok_or "Unable to find GitHub release." + end) + end) + :get_or_throw "Unable to find GitHub release." + + local asset = find_lsp_server_asset(release) + + platform.when { + win = function() + std.download_file(asset.browser_download_url, "dhall-lsp-server.zip") + std.unzip("dhall-lsp-server.zip", ".") + end, + unix = function() + 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 = release.tag_name, + } + + 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/index/diagnostic-languageserver/init.lua b/lua/mason-registry/index/diagnostic-languageserver/init.lua new file mode 100644 index 00000000..f05775bc --- /dev/null +++ b/lua/mason-registry/index/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/index/djlint/init.lua b/lua/mason-registry/index/djlint/init.lua new file mode 100644 index 00000000..1a1d4aee --- /dev/null +++ b/lua/mason-registry/index/djlint/init.lua @@ -0,0 +1,19 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "djlint", + desc = [[HTML Template Linter and Formatter. Django - Jinja - Nunjucks - Handlebars - GoLang]], + homepage = "https://github.com/Riverside-Healthcare/djLint", + languages = { + Pkg.Lang.Django, + Pkg.Lang.Go, + Pkg.Lang.Nunjucks, + Pkg.Lang.Handlebargs, + Pkg.Lang.Mustache, + Pkg.Lang.Angular, + Pkg.Lang.Jinja, + }, + categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, + install = pip3.packages { "djlint", bin = { "djlint" } }, +} diff --git a/lua/mason-registry/index/docker-compose-language-service/init.lua b/lua/mason-registry/index/docker-compose-language-service/init.lua new file mode 100644 index 00000000..aa97aa48 --- /dev/null +++ b/lua/mason-registry/index/docker-compose-language-service/init.lua @@ -0,0 +1,12 @@ +local Pkg = require "mason-core.package" +local path = require "mason-core.path" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "docker-compose-language-service", + desc = [[A language server for Docker Compose.]], + homepage = "https://github.com/microsoft/compose-language-service", + languages = { Pkg.Lang.Docker }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "@microsoft/compose-language-service", bin = { "docker-compose-langserver" } }, +} diff --git a/lua/mason-registry/index/dockerfile-language-server/init.lua b/lua/mason-registry/index/dockerfile-language-server/init.lua new file mode 100644 index 00000000..e1eb6df1 --- /dev/null +++ b/lua/mason-registry/index/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.Docker }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "dockerfile-language-server-nodejs", bin = { "docker-langserver" } }, +} diff --git a/lua/mason-registry/index/dot-language-server/init.lua b/lua/mason-registry/index/dot-language-server/init.lua new file mode 100644 index 00000000..6d51d3d8 --- /dev/null +++ b/lua/mason-registry/index/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/index/dprint/init.lua b/lua/mason-registry/index/dprint/init.lua new file mode 100644 index 00000000..60c95053 --- /dev/null +++ b/lua/mason-registry/index/dprint/init.lua @@ -0,0 +1,32 @@ +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" + +return Pkg.new { + name = "dprint", + desc = [[A pluggable and configurable code formatting platform written in Rust.]], + homepage = "https://dprint.dev/", + languages = {}, + categories = { Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "dprint/dprint", + asset_file = _.coalesce( + _.when(platform.is.mac_arm64, "dprint-aarch64-apple-darwin.zip"), + _.when(platform.is.mac_x64, "dprint-x86_64-apple-darwin.zip"), + _.when(platform.is.linux_arm64_gnu, "dprint-aarch64-unknown-linux-gnu.zip"), + _.when(platform.is.linux_x64_gnu, "dprint-x86_64-unknown-linux-gnu.zip"), + _.when(platform.is.linux_x64, "dprint-x86_64-unknown-linux-musl.zip"), + _.when(platform.is.win_x64, "dprint-x86_64-pc-windows-msvc.zip") + ), + }) + .with_receipt() + std.chmod("+x", { "dprint" }) + ctx:link_bin("dprint", platform.is.win and "dprint.exe" or "dprint") + end, +} diff --git a/lua/mason-registry/index/drools-lsp/init.lua b/lua/mason-registry/index/drools-lsp/init.lua new file mode 100644 index 00000000..5573d97d --- /dev/null +++ b/lua/mason-registry/index/drools-lsp/init.lua @@ -0,0 +1,23 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local Optional = require "mason-core.optional" + +return Pkg.new { + name = "drools-lsp", + desc = [[An implementation of a language server for the Drools Rule Language.]], + homepage = "https://github.com/kiegroup/drools-lsp", + languages = { Pkg.Lang.Drools }, + categories = { Pkg.Cat.LSP }, + ---@async + install = function() + local jar = "drools-lsp-server-jar-with-dependencies.jar" + github + .download_release_file({ + repo = "kiegroup/drools-lsp", + version = Optional.of "latest", + asset_file = jar, + out_file = jar, + }) + .with_receipt() + end, +} diff --git a/lua/mason-registry/index/editorconfig-checker/init.lua b/lua/mason-registry/index/editorconfig-checker/init.lua new file mode 100644 index 00000000..486c832e --- /dev/null +++ b/lua/mason-registry/index/editorconfig-checker/init.lua @@ -0,0 +1,35 @@ +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 = "editorconfig-checker", + desc = [[A tool to verify that your files are in harmony with your `.editorconfig`.]], + homepage = "https://github.com/editorconfig-checker/editorconfig-checker", + languages = {}, + categories = { Pkg.Cat.Linter }, + install = function(ctx) + local source = github.untargz_release_file { + repo = "editorconfig-checker/editorconfig-checker", + asset_file = coalesce( + when(platform.is.mac_arm64, "ec-darwin-arm64.tar.gz"), + when(platform.is.mac_x64, "ec-darwin-amd64.tar.gz"), + when(platform.is.linux_x64_openbsd, "ec-openbsd-amd64.tar.gz"), + when(platform.is.linux_arm64_openbsd, "ec-openbsd-arm64.tar.gz"), + when(platform.is.linux_arm64, "ec-linux-arm64.tar.gz"), + when(platform.is.linux_x64, "ec-linux-amd64.tar.gz"), + when(platform.is.win_x86, "ec-windows-386.exe.tar.gz"), + when(platform.is.win_x64, "ec-windows-amd64.exe.tar.gz"), + when(platform.is.win_arm64, "ec-windows-arm64.exe.tar.gz"), + when(platform.is.win_arm, "ec-windows-arm.exe.tar.gz") + ), + } + source.with_receipt() + local prog = source.asset_file:gsub("%.tar%.gz$", "") + ctx:link_bin("editorconfig-checker", path.concat { "bin", prog }) + end, +} diff --git a/lua/mason-registry/index/efm/init.lua b/lua/mason-registry/index/efm/init.lua new file mode 100644 index 00000000..30891f79 --- /dev/null +++ b/lua/mason-registry/index/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/index/elixir-ls/init.lua b/lua/mason-registry/index/elixir-ls/init.lua new file mode 100644 index 00000000..b84b9032 --- /dev/null +++ b/lua/mason-registry/index/elixir-ls/init.lua @@ -0,0 +1,28 @@ +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 = "elixir-ls", + desc = _.dedent [[ + 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() + + ctx:link_bin("elixir-ls", platform.is.win and "language_server.bat" or "language_server.sh") + ctx:link_bin("elixir-ls-debugger", platform.is.win and "debugger.bat" or "debugger.sh") + end, +} diff --git a/lua/mason-registry/index/elm-format/init.lua b/lua/mason-registry/index/elm-format/init.lua new file mode 100644 index 00000000..00028b35 --- /dev/null +++ b/lua/mason-registry/index/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/index/elm-language-server/init.lua b/lua/mason-registry/index/elm-language-server/init.lua new file mode 100644 index 00000000..279a0649 --- /dev/null +++ b/lua/mason-registry/index/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/index/ember-language-server/init.lua b/lua/mason-registry/index/ember-language-server/init.lua new file mode 100644 index 00000000..b22b2292 --- /dev/null +++ b/lua/mason-registry/index/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/index/emmet-ls/init.lua b/lua/mason-registry/index/emmet-ls/init.lua new file mode 100644 index 00000000..dbc766ee --- /dev/null +++ b/lua/mason-registry/index/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/index/erb-lint/init.lua b/lua/mason-registry/index/erb-lint/init.lua new file mode 100644 index 00000000..358a124b --- /dev/null +++ b/lua/mason-registry/index/erb-lint/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local gem = require "mason-core.managers.gem" + +return Pkg.new { + name = "erb-lint", + desc = [[erb-lint is a tool to help lint your ERB or HTML files using the included linters or by writing your own]], + homepage = "https://github.com/Shopify/erb-lint", + languages = { Pkg.Lang.HTML, Pkg.Lang.Ruby }, + categories = { Pkg.Cat.Linter }, + install = gem.packages { "erb_lint", bin = { "erblint" } }, +} diff --git a/lua/mason-registry/index/erg-language-server/init.lua b/lua/mason-registry/index/erg-language-server/init.lua new file mode 100644 index 00000000..4bbae8a0 --- /dev/null +++ b/lua/mason-registry/index/erg-language-server/init.lua @@ -0,0 +1,45 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local platform = require "mason-core.platform" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "erg-language-server", + desc = [[ELS is a language server for the Erg programing language.]], + homepage = "https://github.com/erg-lang/erg-language-server", + languages = { Pkg.Lang.Erg }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "erg-lang/erg-language-server" + local asset_file = _.coalesce( + _.when(platform.is.mac_x64, "els-x86_64-apple-darwin.tar.gz"), + _.when(platform.is.mac_arm64, "els-aarch64-apple-darwin.tar.gz"), + _.when(platform.is.linux_arm64_gnu, "els-aarch64-unknown-linux-gnu.tar.gz"), + _.when(platform.is.linux_x64_gnu, "els-x86_64-unknown-linux-gnu.tar.gz"), + _.when(platform.is.linux_x64, "els-x86_64-unknown-linux-musl.tar.gz"), + _.when(platform.is.win_x64, "els-x86_64-pc-windows-msvc.zip") + ) + platform.when { + unix = function() + github + .untargz_release_file({ + repo = repo, + asset_file = asset_file, + }) + .with_receipt() + ctx:link_bin("els", "els") + end, + win = function() + github + .unzip_release_file({ + repo = repo, + asset_file = asset_file, + }) + .with_receipt() + ctx:link_bin("els", "els.exe") + end, + } + end, +} diff --git a/lua/mason-registry/index/erg/init.lua b/lua/mason-registry/index/erg/init.lua new file mode 100644 index 00000000..d0b8b50b --- /dev/null +++ b/lua/mason-registry/index/erg/init.lua @@ -0,0 +1,43 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local platform = require "mason-core.platform" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "erg", + desc = [[A statically typed language that can deeply improve the Python ecosystem.]], + homepage = "https://github.com/erg-lang/erg", + languages = { Pkg.Lang.Erg }, + categories = { Pkg.Cat.LSP, Pkg.Cat.Compiler }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "erg-lang/erg" + local asset_file = _.coalesce( + _.when(platform.is.mac_x64, "erg-x86_64-apple-darwin.tar.gz"), + _.when(platform.is.mac_arm64, "erg-aarch64-apple-darwin.tar.gz"), + _.when(platform.is.linux_x64_gnu, "erg-x86_64-unknown-linux-gnu.tar.gz"), + _.when(platform.is.win_x64, "erg-x86_64-pc-windows-msvc.zip") + ) + platform.when { + unix = function() + github + .untargz_release_file({ + repo = repo, + asset_file = asset_file, + }) + .with_receipt() + ctx:link_bin("erg", "erg") + end, + win = function() + github + .unzip_release_file({ + repo = repo, + asset_file = asset_file, + }) + .with_receipt() + ctx:link_bin("erg", "erg.exe") + end, + } + end, +} diff --git a/lua/mason-registry/index/erlang-ls/init.lua b/lua/mason-registry/index/erlang-ls/init.lua new file mode 100644 index 00000000..839f5987 --- /dev/null +++ b/lua/mason-registry/index/erlang-ls/init.lua @@ -0,0 +1,40 @@ +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 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 = _.dedent [[ + 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/index/esbonio/init.lua b/lua/mason-registry/index/esbonio/init.lua new file mode 100644 index 00000000..9b607180 --- /dev/null +++ b/lua/mason-registry/index/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/index/eslint-lsp/init.lua b/lua/mason-registry/index/eslint-lsp/init.lua new file mode 100644 index 00000000..6c9f57d7 --- /dev/null +++ b/lua/mason-registry/index/eslint-lsp/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "eslint-lsp", + desc = _.dedent [[ + 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/index/eslint_d/init.lua b/lua/mason-registry/index/eslint_d/init.lua new file mode 100644 index 00000000..2cdaee06 --- /dev/null +++ b/lua/mason-registry/index/eslint_d/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "eslint_d", + desc = [[Makes eslint the fastest linter on the planet]], + homepage = "https://github.com/mantoni/eslint_d.js/", + languages = { Pkg.Lang.TypeScript, Pkg.Lang.JavaScript }, + categories = { Pkg.Cat.Linter }, + install = npm.packages { "eslint_d", bin = { "eslint_d" } }, +} diff --git a/lua/mason-registry/index/fantomas/init.lua b/lua/mason-registry/index/fantomas/init.lua new file mode 100644 index 00000000..98fc8671 --- /dev/null +++ b/lua/mason-registry/index/fantomas/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local dotnet = require "mason-core.managers.dotnet" + +return Pkg.new { + name = "fantomas", + desc = [[Fantomas is an opinionated code formatter for f#]], + homepage = "https://fsprojects.github.io/fantomas", + languages = { Pkg.Lang["F#"] }, + categories = { Pkg.Cat.Formatter }, + install = dotnet.package("fantomas", { bin = { "fantomas" } }), +} diff --git a/lua/mason-registry/index/fennel-language-server/init.lua b/lua/mason-registry/index/fennel-language-server/init.lua new file mode 100644 index 00000000..85af5495 --- /dev/null +++ b/lua/mason-registry/index/fennel-language-server/init.lua @@ -0,0 +1,17 @@ +local Pkg = require "mason-core.package" +local cargo = require "mason-core.managers.cargo" + +local github_repo = "https://github.com/rydesun/fennel-language-server" +return Pkg.new { + name = "fennel-language-server", + desc = [[Fennel language server protocol (LSP) support. ]], + homepage = github_repo, + languages = { Pkg.Lang.Fennel }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("fennel-language-server", { + git = { + url = github_repo, + }, + bin = { "fennel-language-server" }, + }), +} diff --git a/lua/mason-registry/index/firefox-debug-adapter/init.lua b/lua/mason-registry/index/firefox-debug-adapter/init.lua new file mode 100644 index 00000000..8606f1bf --- /dev/null +++ b/lua/mason-registry/index/firefox-debug-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 = "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.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/index/fixjson/init.lua b/lua/mason-registry/index/fixjson/init.lua new file mode 100644 index 00000000..99642410 --- /dev/null +++ b/lua/mason-registry/index/fixjson/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "fixjson", + desc = [[A JSON file fixer/formatter for humans using (relaxed) JSON5]], + homepage = "https://github.com/rhysd/fixjson", + languages = { + Pkg.Lang.JSON, + }, + categories = { Pkg.Cat.Formatter }, + install = npm.packages { "fixjson", bin = { "fixjson" } }, +} diff --git a/lua/mason-registry/index/flake8/init.lua b/lua/mason-registry/index/flake8/init.lua new file mode 100644 index 00000000..afc1fd86 --- /dev/null +++ b/lua/mason-registry/index/flake8/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "flake8", + desc = _.dedent [[ + flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the + style and quality of some python code. + ]], + homepage = "https://github.com/PyCQA/flake8", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "flake8", bin = { "flake8" } }, +} diff --git a/lua/mason-registry/index/flux-lsp/init.lua b/lua/mason-registry/index/flux-lsp/init.lua new file mode 100644 index 00000000..afef8c72 --- /dev/null +++ b/lua/mason-registry/index/flux-lsp/init.lua @@ -0,0 +1,17 @@ +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("flux-lsp", { + git = { + url = "https://github.com/influxdata/flux-lsp", + tag = true, + }, + bin = { "flux-lsp" }, + }), +} diff --git a/lua/mason-registry/index/foam-language-server/init.lua b/lua/mason-registry/index/foam-language-server/init.lua new file mode 100644 index 00000000..e1b0c95b --- /dev/null +++ b/lua/mason-registry/index/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/index/fortls/init.lua b/lua/mason-registry/index/fortls/init.lua new file mode 100644 index 00000000..5d9f605c --- /dev/null +++ b/lua/mason-registry/index/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/index/fourmolu/init.lua b/lua/mason-registry/index/fourmolu/init.lua new file mode 100644 index 00000000..f6849474 --- /dev/null +++ b/lua/mason-registry/index/fourmolu/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 std = require "mason-core.managers.std" + +return Pkg.new { + name = "fourmolu", + desc = [[A fork of Ormolu that uses four space indentation and allows arbitrary configuration.]], + homepage = "https://hackage.haskell.org/package/fourmolu", + languages = { Pkg.Lang.Haskell }, + categories = { Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + ---@param template string + local function release_file(template_string) + return _.compose(_.format(template_string), _.gsub("^v", "")) + end + + github + .download_release_file({ + repo = "fourmolu/fourmolu", + out_file = "fourmolu", + asset_file = _.coalesce( + _.when(platform.is.mac_x64, release_file "fourmolu-%s-osx-x86_64"), + _.when(platform.is.linux_x64_gnu, release_file "fourmolu-%s-linux-x86_64") + ), + }) + .with_receipt() + std.chmod("+x", { "fourmolu" }) + ctx:link_bin("fourmolu", "fourmolu") + end, +} diff --git a/lua/mason-registry/index/fsautocomplete/init.lua b/lua/mason-registry/index/fsautocomplete/init.lua new file mode 100644 index 00000000..52e456a7 --- /dev/null +++ b/lua/mason-registry/index/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/index/gersemi/init.lua b/lua/mason-registry/index/gersemi/init.lua new file mode 100644 index 00000000..bed8c410 --- /dev/null +++ b/lua/mason-registry/index/gersemi/init.lua @@ -0,0 +1,16 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "gersemi", + desc = [[gersemi - A formatter to make your CMake code the real treasure.]], + homepage = "https://github.com/BlankSpruce/gersemi", + languages = { Pkg.Lang.CMake }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { + "gersemi", + bin = { + "gersemi", + }, + }, +} diff --git a/lua/mason-registry/index/gitlint/init.lua b/lua/mason-registry/index/gitlint/init.lua new file mode 100644 index 00000000..e8f85a6b --- /dev/null +++ b/lua/mason-registry/index/gitlint/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "gitlint", + desc = [[Gitlint is a git commit message linter written in python: it checks your commit messages for style.]], + homepage = "https://jorisroovers.com/gitlint/", + languages = { Pkg.Lang.GitCommit }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "gitlint", bin = { "gitlint" } }, +} diff --git a/lua/mason-registry/index/gitui/init.lua b/lua/mason-registry/index/gitui/init.lua new file mode 100644 index 00000000..18f18f9f --- /dev/null +++ b/lua/mason-registry/index/gitui/init.lua @@ -0,0 +1,34 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local github = require "mason-core.managers.github" +local platform = require "mason-core.platform" +local std = require "mason-core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "gitui", + desc = [[Blazing fast terminal-ui for git written in Rust]], + homepage = "https://github.com/extrawurst/gitui", + languages = {}, + categories = {}, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .untargz_release_file({ + repo = "extrawurst/gitui", + out_file = "gitui", + asset_file = coalesce( + when(platform.is.mac, "gitui-mac.tar.gz"), + when(platform.is.linux_x64, "gitui-linux-musl.tar.gz"), + when(platform.is.linux_arm64, "gitui-linux-aarch64.tar.gz"), + when(platform.is.linux_arm, "gitui-linux-arm.tar.gz"), + when(platform.is.win_x64, "gitui-win.tar.gz") + ), + }) + .with_receipt() + std.chmod("+x", { "gitui" }) + ctx:link_bin("gitui", platform.is.win and "gitui.exe" or "gitui") + end, +} diff --git a/lua/mason-registry/index/glint/init.lua b/lua/mason-registry/index/glint/init.lua new file mode 100644 index 00000000..baf9035c --- /dev/null +++ b/lua/mason-registry/index/glint/init.lua @@ -0,0 +1,22 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "glint", + desc = _.dedent [[ + Glint is a set of tools to aid in developing code that uses the Glimmer VM for rendering, such as + Ember.js v3.24+ and GlimmerX projects. Similar to Vetur for Vue projects or Svelte Language Tools, Glint + consists of a CLI and a language server to provide feedback and enforce correctness both locally during editing + and project-wide in CI. + ]], + homepage = "https://typed-ember.gitbook.io/glint/", + categories = { Pkg.Cat.LSP, Pkg.Cat.Linter }, + languages = { + Pkg.Lang.Handlebars, + Pkg.Lang.Glimmer, + Pkg.Lang.TypeScript, + Pkg.Lang.JavaScript, + }, + install = npm.packages { "@glint/core", "typescript", bin = { "glint", "glint-language-server" } }, +} diff --git a/lua/mason-registry/index/glow/init.lua b/lua/mason-registry/index/glow/init.lua new file mode 100644 index 00000000..0ef1c2db --- /dev/null +++ b/lua/mason-registry/index/glow/init.lua @@ -0,0 +1,47 @@ +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 = "glow", + desc = [[Render markdown on the CLI, with pizzazz]], + homepage = "https://github.com/charmbracelet/glow", + languages = { Pkg.Lang.Markdown }, + categories = {}, + install = function(ctx) + ---@param template_string string + local function release_file(template_string) + return _.compose(_.format(template_string), _.gsub("^v", "")) + end + local asset_file = coalesce( + when(platform.is.mac_arm64, release_file "glow_%s_Darwin_arm64.tar.gz"), + when(platform.is.mac_x64, release_file "glow_%s_Darwin_x86_64.tar.gz"), + when(platform.is.linux_x64_openbsd, release_file "glow_%s_openbsd_x86_64.tar.gz"), + when(platform.is.linux_arm64_openbsd, release_file "glow_%s_openbsd_arm64.tar.gz"), + when(platform.is.linux_arm64, release_file "glow_%s_linux_arm64.tar.gz"), + when(platform.is.linux_x64, release_file "glow_%s_linux_x86_64.tar.gz"), + when(platform.is.win_x86, release_file "glow_%s_Windows_i386.zip"), + when(platform.is.win_x64, release_file "glow_%s_Windows_x86_64.zip") + ) + local source = platform.when { + unix = function() + return github.untargz_release_file { + repo = "charmbracelet/glow", + asset_file = asset_file, + } + end, + win = function() + return github.unzip_release_file { + repo = "charmbracelet/glow", + asset_file = asset_file, + } + end, + } + source.with_receipt() + ctx:link_bin("glow", platform.is.win and "glow.exe" or "glow") + end, +} diff --git a/lua/mason-registry/index/go-debug-adapter/init.lua b/lua/mason-registry/index/go-debug-adapter/init.lua new file mode 100644 index 00000000..23e0f360 --- /dev/null +++ b/lua/mason-registry/index/go-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 = "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/index/gofumpt/init.lua b/lua/mason-registry/index/gofumpt/init.lua new file mode 100644 index 00000000..909007f2 --- /dev/null +++ b/lua/mason-registry/index/gofumpt/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "gofumpt", + desc = [[A stricter gofmt]], + homepage = "https://pkg.go.dev/mvdan.cc/gofumpt", + categories = { Pkg.Cat.Formatter }, + languages = { Pkg.Lang.Go }, + install = go.packages { "mvdan.cc/gofumpt", bin = { "gofumpt" } }, +} diff --git a/lua/mason-registry/index/goimports-reviser/init.lua b/lua/mason-registry/index/goimports-reviser/init.lua new file mode 100644 index 00000000..0ea92d68 --- /dev/null +++ b/lua/mason-registry/index/goimports-reviser/init.lua @@ -0,0 +1,38 @@ +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 = "goimports-reviser", + desc = _.dedent [[ + Tool for Golang to sort goimports by 3-4 groups: std, general, company (optional), and project dependencies. + Also, formatting for your code will be prepared (so, you don't need to use gofmt or goimports separately). + Use additional option -rm-unused to remove unused imports and -set-alias to rewrite import aliases for + versioned packages. + ]], + homepage = "https://pkg.go.dev/github.com/incu6us/goimports-reviser", + categories = { Pkg.Cat.Formatter }, + languages = { Pkg.Lang.Go }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local function format_release_file(template) + return _.compose(_.format(template), _.gsub("^v", "")) + end + + github + .untargz_release_file({ + repo = "incu6us/goimports-reviser", + asset_file = _.coalesce( + _.when(platform.is.mac_x64, format_release_file "goimports-reviser_%s_darwin_amd64.tar.gz"), + _.when(platform.is.mac_arm64, format_release_file "goimports-reviser_%s_darwin_arm64.tar.gz"), + _.when(platform.is.linux_x64, format_release_file "goimports-reviser_%s_linux_amd64.tar.gz"), + _.when(platform.is.win_x64, format_release_file "goimports-reviser_%s_windows_amd64.tar.gz") + ), + }) + .with_receipt() + + ctx:link_bin("goimports-reviser", platform.is.win and "goimports-reviser.exe" or "goimports-reviser") + end, +} diff --git a/lua/mason-registry/index/goimports/init.lua b/lua/mason-registry/index/goimports/init.lua new file mode 100644 index 00000000..012dbea2 --- /dev/null +++ b/lua/mason-registry/index/goimports/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "goimports", + desc = _.dedent [[ + A golang formatter which formats your code in the same style as gofmt and additionally updates your Go import + lines, adding missing ones and removing unreferenced ones. + ]], + homepage = "https://pkg.go.dev/golang.org/x/tools/cmd/goimports", + categories = { Pkg.Cat.Formatter }, + languages = { Pkg.Lang.Go }, + install = go.packages { "golang.org/x/tools/cmd/goimports", bin = { "goimports" } }, +} diff --git a/lua/mason-registry/index/golangci-lint-langserver/init.lua b/lua/mason-registry/index/golangci-lint-langserver/init.lua new file mode 100644 index 00000000..6a6c396d --- /dev/null +++ b/lua/mason-registry/index/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/index/golangci-lint/init.lua b/lua/mason-registry/index/golangci-lint/init.lua new file mode 100644 index 00000000..1d925733 --- /dev/null +++ b/lua/mason-registry/index/golangci-lint/init.lua @@ -0,0 +1,56 @@ +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 = "golangci-lint", + desc = _.dedent [[ + 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 = function(ctx) + local repo = "golangci/golangci-lint" + ---@param template_string string + local function release_file(template_string) + return _.compose(_.format(template_string), _.gsub("^v", "")) + end + + platform.when { + unix = function() + local source = github.untargz_release_file { + repo = repo, + asset_file = coalesce( + when(platform.is.linux_armv6l, release_file "golangci-lint-%s-linux-armv6.tar.gz"), + when(platform.is.linux_armv7l, release_file "golangci-lint-%s-linux-armv7.tar.gz"), + when(platform.is.linux_x64, release_file "golangci-lint-%s-linux-amd64.tar.gz"), + when(platform.is.linux_x86, release_file "golangci-lint-%s-linux-386.tar.gz"), + when(platform.is.darwin_x64, release_file "golangci-lint-%s-darwin-amd64.tar.gz"), + when(platform.is.darwin_arm64, release_file "golangci-lint-%s-darwin-arm64.tar.gz") + ), + } + source.with_receipt() + local directory = source.asset_file:gsub("%.tar%.gz$", "") + ctx:link_bin("golangci-lint", path.concat { directory, "golangci-lint" }) + end, + win = function() + local source = github.unzip_release_file { + repo = repo, + asset_file = coalesce( + when(platform.is.win_x64, release_file "golangci-lint-%s-windows-amd64.zip"), + when(platform.is.win_x86, release_file "golangci-lint-%s-windows-386.zip") + ), + } + source.with_receipt() + local directory = source.asset_file:gsub("%.zip$", "") + ctx:link_bin("golangci-lint", path.concat { directory, "golangci-lint.exe" }) + end, + } + end, +} diff --git a/lua/mason-registry/index/golines/init.lua b/lua/mason-registry/index/golines/init.lua new file mode 100644 index 00000000..d755cd23 --- /dev/null +++ b/lua/mason-registry/index/golines/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "golines", + desc = [[A golang formatter that fixes long lines]], + homepage = "https://github.com/segmentio/golines", + categories = { Pkg.Cat.Formatter }, + languages = { Pkg.Lang.Go }, + install = go.packages { "github.com/segmentio/golines", bin = { "golines" } }, +} diff --git a/lua/mason-registry/index/gomodifytags/init.lua b/lua/mason-registry/index/gomodifytags/init.lua new file mode 100644 index 00000000..1e5e226e --- /dev/null +++ b/lua/mason-registry/index/gomodifytags/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "gomodifytags", + desc = [[Go tool to modify/update field tags in structs]], + homepage = "https://github.com/fatih/gomodifytags", + categories = {}, + languages = { Pkg.Lang.Go }, + install = go.packages { "github.com/fatih/gomodifytags", bin = { "gomodifytags" } }, +} diff --git a/lua/mason-registry/index/google-java-format/init.lua b/lua/mason-registry/index/google-java-format/init.lua new file mode 100644 index 00000000..58cef182 --- /dev/null +++ b/lua/mason-registry/index/google-java-format/init.lua @@ -0,0 +1,33 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local path = require "mason-core.path" + +return Pkg.new { + name = "google-java-format", + desc = [[google-java-format is a program that reformats Java source code to comply with Google Java Style.]], + homepage = "https://github.com/google/google-java-format", + languages = { Pkg.Lang.Java }, + categories = { Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "google/google-java-format", + out_file = "google-java-format.jar", + asset_file = function(release) + local version = release:gsub("^v", "") + return ("google-java-format-%s-all-deps.jar"):format(version) + end, + }) + .with_receipt() + + ctx:link_bin( + "google-java-format", + ctx:write_shell_exec_wrapper( + "google-java-format", + ("java -jar %q"):format(path.concat { ctx.package:get_install_path(), "google-java-format.jar" }) + ) + ) + end, +} diff --git a/lua/mason-registry/index/gopls/init.lua b/lua/mason-registry/index/gopls/init.lua new file mode 100644 index 00000000..95421b14 --- /dev/null +++ b/lua/mason-registry/index/gopls/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "gopls", + desc = _.dedent [[ + 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/index/gospel/init.lua b/lua/mason-registry/index/gospel/init.lua new file mode 100644 index 00000000..9b740e82 --- /dev/null +++ b/lua/mason-registry/index/gospel/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "gospel", + desc = [[misspelled word linter for Go comments, string literals and embedded files]], + homepage = "https://github.com/kortschak/gospel", + categories = { Pkg.Cat.Linter }, + languages = { Pkg.Lang.Go }, + install = go.packages { "github.com/kortschak/gospel", bin = { "gospel" } }, +} diff --git a/lua/mason-registry/index/gotests/init.lua b/lua/mason-registry/index/gotests/init.lua new file mode 100644 index 00000000..d7aae651 --- /dev/null +++ b/lua/mason-registry/index/gotests/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "gotests", + desc = _.dedent [[ + Gotests is a Golang commandline tool that generates table driven tests based on its target source files' + function and method signatures. + ]], + homepage = "https://github.com/cweill/gotests", + categories = {}, + languages = { Pkg.Lang.Go }, + install = go.packages { "github.com/cweill/gotests/...", bin = { "gotests" } }, +} diff --git a/lua/mason-registry/index/gotestsum/init.lua b/lua/mason-registry/index/gotestsum/init.lua new file mode 100644 index 00000000..199c36e9 --- /dev/null +++ b/lua/mason-registry/index/gotestsum/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "gotestsum", + desc = _.dedent [[ + 'go test' runner with output optimized for humans, JUnit XML for CI integration, and + a summary of the test results. + ]], + homepage = "https://github.com/gotestyourself/gotestsum", + categories = {}, + languages = { Pkg.Lang.Go }, + install = go.packages { "gotest.tools/gotestsum", bin = { "gotestsum" } }, +} diff --git a/lua/mason-registry/index/gradle-language-server/init.lua b/lua/mason-registry/index/gradle-language-server/init.lua new file mode 100644 index 00000000..61cbee5e --- /dev/null +++ b/lua/mason-registry/index/gradle-language-server/init.lua @@ -0,0 +1,34 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local path = require "mason-core.path" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "gradle-language-server", + desc = [[Gradle language server.]], + homepage = "https://github.com/microsoft/vscode-gradle", + languages = { Pkg.Lang.Gradle }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + asset_file = _.format "vscjava.vscode-gradle-%s.vsix", + repo = "microsoft/vscode-gradle", + }) + .with_receipt() + + ctx.fs:rename(path.concat { "extension", "lib" }, "lib") + ctx.fs:rmrf "extension" + ctx:link_bin( + "gradle-language-server", + ctx:write_shell_exec_wrapper( + "gradle-language-server", + ("java -jar %q"):format( + path.concat { ctx.package:get_install_path(), "lib", "gradle-language-server.jar" } + ) + ) + ) + end, +} diff --git a/lua/mason-registry/index/grammarly-languageserver/init.lua b/lua/mason-registry/index/grammarly-languageserver/init.lua new file mode 100644 index 00000000..b0a9a739 --- /dev/null +++ b/lua/mason-registry/index/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/index/graphql-language-service-cli/init.lua b/lua/mason-registry/index/graphql-language-service-cli/init.lua new file mode 100644 index 00000000..0bf6f1e6 --- /dev/null +++ b/lua/mason-registry/index/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/index/groovy-language-server/init.lua b/lua/mason-registry/index/groovy-language-server/init.lua new file mode 100644 index 00000000..1470c7a4 --- /dev/null +++ b/lua/mason-registry/index/groovy-language-server/init.lua @@ -0,0 +1,33 @@ +local Pkg = require "mason-core.package" +local std = require "mason-core.managers.std" +local git = require "mason-core.managers.git" +local path = require "mason-core.path" + +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() }, + } + + ctx:link_bin( + "groovy-language-server", + ctx:write_shell_exec_wrapper( + "groovy-language-server", + ("java -jar %q"):format( + path.concat { ctx.package:get_install_path(), "build", "libs", "groovy-language-server-all.jar" } + ) + ) + ) + end, +} diff --git a/lua/mason-registry/index/hadolint/init.lua b/lua/mason-registry/index/hadolint/init.lua new file mode 100644 index 00000000..55a77873 --- /dev/null +++ b/lua/mason-registry/index/hadolint/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 = "hadolint", + desc = [[Dockerfile linter, validate inline bash, written in Haskell]], + homepage = "https://github.com/hadolint/hadolint", + languages = { Pkg.Lang.Docker }, + categories = { Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "hadolint/hadolint", + out_file = platform.is.win and "hadolint.exe" or "hadolint", + asset_file = coalesce( + when(platform.is.mac, "hadolint-Darwin-x86_64"), + when(platform.is.linux_arm64, "hadolint-Linux-arm64"), + when(platform.is.linux_x64, "hadolint-Linux-x86_64"), + when(platform.is.win_x64, "hadolint-Windows-x86_64.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "hadolint" }) + ctx:link_bin("hadolint", platform.is.win and "hadolint.exe" or "hadolint") + end, +} diff --git a/lua/mason-registry/index/haml-lint/init.lua b/lua/mason-registry/index/haml-lint/init.lua new file mode 100644 index 00000000..d6edabdd --- /dev/null +++ b/lua/mason-registry/index/haml-lint/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local gem = require "mason-core.managers.gem" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "haml-lint", + desc = _.dedent [[ + haml-lint is a tool to help keep your HAML files clean and readable. In addition to HAML-specific style and lint + checks, it integrates with RuboCop to bring its powerful static analysis tools to your HAML documents. + ]], + homepage = "https://github.com/sds/haml-lint", + languages = { Pkg.Lang.HAML }, + categories = { Pkg.Cat.Linter }, + install = gem.packages { "haml_lint", bin = { "haml-lint" } }, +} diff --git a/lua/mason-registry/index/haskell-language-server/init.lua b/lua/mason-registry/index/haskell-language-server/init.lua new file mode 100644 index 00000000..8f0e3d42 --- /dev/null +++ b/lua/mason-registry/index/haskell-language-server/init.lua @@ -0,0 +1,55 @@ +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 = require "mason-core.managers.github" +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 source = github.release_version { repo = "haskell/haskell-language-server" } + source.with_receipt() + + std.ensure_executable("ghcup", { help_url = "https://www.haskell.org/ghcup/" }) + ctx:promote_cwd() + ctx.spawn.ghcup { "install", "hls", source.release, "-i", ctx.cwd:get() } + + 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/index/haxe-language-server/init.lua b/lua/mason-registry/index/haxe-language-server/init.lua new file mode 100644 index 00000000..77a14e46 --- /dev/null +++ b/lua/mason-registry/index/haxe-language-server/init.lua @@ -0,0 +1,26 @@ +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.spawn.npm { "install", "--production" } + 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/index/hoon-language-server/init.lua b/lua/mason-registry/index/hoon-language-server/init.lua new file mode 100644 index 00000000..5d5ee234 --- /dev/null +++ b/lua/mason-registry/index/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/index/html-lsp/init.lua b/lua/mason-registry/index/html-lsp/init.lua new file mode 100644 index 00000000..ff8de04d --- /dev/null +++ b/lua/mason-registry/index/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/iferr/init.lua b/lua/mason-registry/index/iferr/init.lua new file mode 100644 index 00000000..fbac2180 --- /dev/null +++ b/lua/mason-registry/index/iferr/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "iferr", + desc = [[Go tool to generate if err != nil block for the current function.]], + homepage = "https://github.com/koron/iferr", + categories = {}, + languages = { Pkg.Lang.Go }, + install = go.packages { "github.com/koron/iferr", bin = { "iferr" } }, +} diff --git a/lua/mason-registry/index/impl/init.lua b/lua/mason-registry/index/impl/init.lua new file mode 100644 index 00000000..5969132f --- /dev/null +++ b/lua/mason-registry/index/impl/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "impl", + desc = [[impl generates method stubs for implementing an interface.]], + homepage = "https://github.com/josharian/impl", + categories = {}, + languages = { Pkg.Lang.Go }, + install = go.packages { "github.com/josharian/impl", bin = { "impl" } }, +} diff --git a/lua/mason-registry/index/init.lua b/lua/mason-registry/index/init.lua new file mode 100644 index 00000000..f9af1add --- /dev/null +++ b/lua/mason-registry/index/init.lua @@ -0,0 +1,283 @@ +-- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY. +-- stylua: ignore start +return { + actionlint = "mason-registry.index.actionlint", + ["ada-language-server"] = "mason-registry.index.ada-language-server", + alex = "mason-registry.index.alex", + ["angular-language-server"] = "mason-registry.index.angular-language-server", + ["ansible-language-server"] = "mason-registry.index.ansible-language-server", + ["ansible-lint"] = "mason-registry.index.ansible-lint", + ["antlers-language-server"] = "mason-registry.index.antlers-language-server", + ["apex-language-server"] = "mason-registry.index.apex-language-server", + ["arduino-language-server"] = "mason-registry.index.arduino-language-server", + ["asm-lsp"] = "mason-registry.index.asm-lsp", + ["astro-language-server"] = "mason-registry.index.astro-language-server", + autoflake = "mason-registry.index.autoflake", + autopep8 = "mason-registry.index.autopep8", + ["awk-language-server"] = "mason-registry.index.awk-language-server", + ["bash-debug-adapter"] = "mason-registry.index.bash-debug-adapter", + ["bash-language-server"] = "mason-registry.index.bash-language-server", + ["beancount-language-server"] = "mason-registry.index.beancount-language-server", + beautysh = "mason-registry.index.beautysh", + ["bicep-lsp"] = "mason-registry.index.bicep-lsp", + black = "mason-registry.index.black", + ["blackd-client"] = "mason-registry.index.blackd-client", + ["blade-formatter"] = "mason-registry.index.blade-formatter", + blue = "mason-registry.index.blue", + brighterscript = "mason-registry.index.brighterscript", + ["brighterscript-formatter"] = "mason-registry.index.brighterscript-formatter", + ["bsl-language-server"] = "mason-registry.index.bsl-language-server", + buf = "mason-registry.index.buf", + ["buf-language-server"] = "mason-registry.index.buf-language-server", + buildifier = "mason-registry.index.buildifier", + cbfmt = "mason-registry.index.cbfmt", + ["cfn-lint"] = "mason-registry.index.cfn-lint", + ["chrome-debug-adapter"] = "mason-registry.index.chrome-debug-adapter", + ["clang-format"] = "mason-registry.index.clang-format", + clangd = "mason-registry.index.clangd", + ["clarity-lsp"] = "mason-registry.index.clarity-lsp", + ["clojure-lsp"] = "mason-registry.index.clojure-lsp", + ["cmake-language-server"] = "mason-registry.index.cmake-language-server", + cmakelang = "mason-registry.index.cmakelang", + codelldb = "mason-registry.index.codelldb", + codeql = "mason-registry.index.codeql", + codespell = "mason-registry.index.codespell", + ["colorgen-nvim"] = "mason-registry.index.colorgen-nvim", + commitlint = "mason-registry.index.commitlint", + cpplint = "mason-registry.index.cpplint", + cpptools = "mason-registry.index.cpptools", + crystalline = "mason-registry.index.crystalline", + ["csharp-language-server"] = "mason-registry.index.csharp-language-server", + csharpier = "mason-registry.index.csharpier", + cspell = "mason-registry.index.cspell", + ["css-lsp"] = "mason-registry.index.css-lsp", + ["cssmodules-language-server"] = "mason-registry.index.cssmodules-language-server", + ["cucumber-language-server"] = "mason-registry.index.cucumber-language-server", + cueimports = "mason-registry.index.cueimports", + cuelsp = "mason-registry.index.cuelsp", + curlylint = "mason-registry.index.curlylint", + ["dart-debug-adapter"] = "mason-registry.index.dart-debug-adapter", + debugpy = "mason-registry.index.debugpy", + delve = "mason-registry.index.delve", + deno = "mason-registry.index.deno", + ["dhall-lsp"] = "mason-registry.index.dhall-lsp", + ["diagnostic-languageserver"] = "mason-registry.index.diagnostic-languageserver", + djlint = "mason-registry.index.djlint", + ["docker-compose-language-service"] = "mason-registry.index.docker-compose-language-service", + ["dockerfile-language-server"] = "mason-registry.index.dockerfile-language-server", + ["dot-language-server"] = "mason-registry.index.dot-language-server", + dprint = "mason-registry.index.dprint", + ["drools-lsp"] = "mason-registry.index.drools-lsp", + ["editorconfig-checker"] = "mason-registry.index.editorconfig-checker", + efm = "mason-registry.index.efm", + ["elixir-ls"] = "mason-registry.index.elixir-ls", + ["elm-format"] = "mason-registry.index.elm-format", + ["elm-language-server"] = "mason-registry.index.elm-language-server", + ["ember-language-server"] = "mason-registry.index.ember-language-server", + ["emmet-ls"] = "mason-registry.index.emmet-ls", + ["erb-lint"] = "mason-registry.index.erb-lint", + erg = "mason-registry.index.erg", + ["erg-language-server"] = "mason-registry.index.erg-language-server", + ["erlang-ls"] = "mason-registry.index.erlang-ls", + esbonio = "mason-registry.index.esbonio", + ["eslint-lsp"] = "mason-registry.index.eslint-lsp", + eslint_d = "mason-registry.index.eslint_d", + fantomas = "mason-registry.index.fantomas", + ["fennel-language-server"] = "mason-registry.index.fennel-language-server", + ["firefox-debug-adapter"] = "mason-registry.index.firefox-debug-adapter", + fixjson = "mason-registry.index.fixjson", + flake8 = "mason-registry.index.flake8", + ["flux-lsp"] = "mason-registry.index.flux-lsp", + ["foam-language-server"] = "mason-registry.index.foam-language-server", + fortls = "mason-registry.index.fortls", + fourmolu = "mason-registry.index.fourmolu", + fsautocomplete = "mason-registry.index.fsautocomplete", + gersemi = "mason-registry.index.gersemi", + gitlint = "mason-registry.index.gitlint", + gitui = "mason-registry.index.gitui", + glint = "mason-registry.index.glint", + glow = "mason-registry.index.glow", + ["go-debug-adapter"] = "mason-registry.index.go-debug-adapter", + gofumpt = "mason-registry.index.gofumpt", + goimports = "mason-registry.index.goimports", + ["goimports-reviser"] = "mason-registry.index.goimports-reviser", + ["golangci-lint"] = "mason-registry.index.golangci-lint", + ["golangci-lint-langserver"] = "mason-registry.index.golangci-lint-langserver", + golines = "mason-registry.index.golines", + gomodifytags = "mason-registry.index.gomodifytags", + ["google-java-format"] = "mason-registry.index.google-java-format", + gopls = "mason-registry.index.gopls", + gospel = "mason-registry.index.gospel", + gotests = "mason-registry.index.gotests", + gotestsum = "mason-registry.index.gotestsum", + ["gradle-language-server"] = "mason-registry.index.gradle-language-server", + ["grammarly-languageserver"] = "mason-registry.index.grammarly-languageserver", + ["graphql-language-service-cli"] = "mason-registry.index.graphql-language-service-cli", + ["groovy-language-server"] = "mason-registry.index.groovy-language-server", + hadolint = "mason-registry.index.hadolint", + ["haml-lint"] = "mason-registry.index.haml-lint", + ["haskell-language-server"] = "mason-registry.index.haskell-language-server", + ["haxe-language-server"] = "mason-registry.index.haxe-language-server", + ["hoon-language-server"] = "mason-registry.index.hoon-language-server", + ["html-lsp"] = "mason-registry.index.html-lsp", + iferr = "mason-registry.index.iferr", + impl = "mason-registry.index.impl", + intelephense = "mason-registry.index.intelephense", + isort = "mason-registry.index.isort", + ["java-debug-adapter"] = "mason-registry.index.java-debug-adapter", + ["java-test"] = "mason-registry.index.java-test", + jdtls = "mason-registry.index.jdtls", + ["jedi-language-server"] = "mason-registry.index.jedi-language-server", + joker = "mason-registry.index.joker", + jq = "mason-registry.index.jq", + ["jq-lsp"] = "mason-registry.index.jq-lsp", + ["js-debug-adapter"] = "mason-registry.index.js-debug-adapter", + ["json-lsp"] = "mason-registry.index.json-lsp", + ["json-to-struct"] = "mason-registry.index.json-to-struct", + jsonlint = "mason-registry.index.jsonlint", + ["jsonnet-language-server"] = "mason-registry.index.jsonnet-language-server", + ["julia-lsp"] = "mason-registry.index.julia-lsp", + ["kotlin-debug-adapter"] = "mason-registry.index.kotlin-debug-adapter", + ["kotlin-language-server"] = "mason-registry.index.kotlin-language-server", + ktlint = "mason-registry.index.ktlint", + latexindent = "mason-registry.index.latexindent", + lelwel = "mason-registry.index.lelwel", + lemminx = "mason-registry.index.lemminx", + ["lemmy-help"] = "mason-registry.index.lemmy-help", + ["ltex-ls"] = "mason-registry.index.ltex-ls", + ["lua-language-server"] = "mason-registry.index.lua-language-server", + luacheck = "mason-registry.index.luacheck", + luaformatter = "mason-registry.index.luaformatter", + ["luau-lsp"] = "mason-registry.index.luau-lsp", + markdownlint = "mason-registry.index.markdownlint", + marksman = "mason-registry.index.marksman", + ["metamath-zero-lsp"] = "mason-registry.index.metamath-zero-lsp", + misspell = "mason-registry.index.misspell", + mockdebug = "mason-registry.index.mockdebug", + ["move-analyzer"] = "mason-registry.index.move-analyzer", + mypy = "mason-registry.index.mypy", + neocmakelsp = "mason-registry.index.neocmakelsp", + netcoredbg = "mason-registry.index.netcoredbg", + ["nginx-language-server"] = "mason-registry.index.nginx-language-server", + ["nickel-lang-lsp"] = "mason-registry.index.nickel-lang-lsp", + ["nil"] = "mason-registry.index.nil", + nimlsp = "mason-registry.index.nimlsp", + ["node-debug2-adapter"] = "mason-registry.index.node-debug2-adapter", + nxls = "mason-registry.index.nxls", + ["ocaml-lsp"] = "mason-registry.index.ocaml-lsp", + ocamlformat = "mason-registry.index.ocamlformat", + omnisharp = "mason-registry.index.omnisharp", + ["omnisharp-mono"] = "mason-registry.index.omnisharp-mono", + ["opencl-language-server"] = "mason-registry.index.opencl-language-server", + ["openscad-lsp"] = "mason-registry.index.openscad-lsp", + perlnavigator = "mason-registry.index.perlnavigator", + ["php-cs-fixer"] = "mason-registry.index.php-cs-fixer", + ["php-debug-adapter"] = "mason-registry.index.php-debug-adapter", + phpactor = "mason-registry.index.phpactor", + phpcbf = "mason-registry.index.phpcbf", + phpcs = "mason-registry.index.phpcs", + phpmd = "mason-registry.index.phpmd", + phpstan = "mason-registry.index.phpstan", + pint = "mason-registry.index.pint", + ["powershell-editor-services"] = "mason-registry.index.powershell-editor-services", + prettier = "mason-registry.index.prettier", + prettierd = "mason-registry.index.prettierd", + ["prisma-language-server"] = "mason-registry.index.prisma-language-server", + proselint = "mason-registry.index.proselint", + ["prosemd-lsp"] = "mason-registry.index.prosemd-lsp", + protolint = "mason-registry.index.protolint", + psalm = "mason-registry.index.psalm", + ["puppet-editor-services"] = "mason-registry.index.puppet-editor-services", + ["purescript-language-server"] = "mason-registry.index.purescript-language-server", + pydocstyle = "mason-registry.index.pydocstyle", + pylama = "mason-registry.index.pylama", + pylint = "mason-registry.index.pylint", + ["pyproject-flake8"] = "mason-registry.index.pyproject-flake8", + pyre = "mason-registry.index.pyre", + pyright = "mason-registry.index.pyright", + ["python-lsp-server"] = "mason-registry.index.python-lsp-server", + ["quick-lint-js"] = "mason-registry.index.quick-lint-js", + ["r-languageserver"] = "mason-registry.index.r-languageserver", + ["raku-navigator"] = "mason-registry.index.raku-navigator", + ["reason-language-server"] = "mason-registry.index.reason-language-server", + ["remark-cli"] = "mason-registry.index.remark-cli", + ["remark-language-server"] = "mason-registry.index.remark-language-server", + ["reorder-python-imports"] = "mason-registry.index.reorder-python-imports", + ["rescript-lsp"] = "mason-registry.index.rescript-lsp", + revive = "mason-registry.index.revive", + ["rnix-lsp"] = "mason-registry.index.rnix-lsp", + ["robotframework-lsp"] = "mason-registry.index.robotframework-lsp", + rome = "mason-registry.index.rome", + rstcheck = "mason-registry.index.rstcheck", + rubocop = "mason-registry.index.rubocop", + ["ruby-lsp"] = "mason-registry.index.ruby-lsp", + ruff = "mason-registry.index.ruff", + ["ruff-lsp"] = "mason-registry.index.ruff-lsp", + ["rust-analyzer"] = "mason-registry.index.rust-analyzer", + rustfmt = "mason-registry.index.rustfmt", + rustywind = "mason-registry.index.rustywind", + ["salt-lsp"] = "mason-registry.index.salt-lsp", + selene = "mason-registry.index.selene", + semgrep = "mason-registry.index.semgrep", + ["serve-d"] = "mason-registry.index.serve-d", + shellcheck = "mason-registry.index.shellcheck", + shellharden = "mason-registry.index.shellharden", + shfmt = "mason-registry.index.shfmt", + ["shopify-theme-check"] = "mason-registry.index.shopify-theme-check", + ["slint-lsp"] = "mason-registry.index.slint-lsp", + ["smithy-language-server"] = "mason-registry.index.smithy-language-server", + solang = "mason-registry.index.solang", + solargraph = "mason-registry.index.solargraph", + solhint = "mason-registry.index.solhint", + solidity = "mason-registry.index.solidity", + ["solidity-ls"] = "mason-registry.index.solidity-ls", + sorbet = "mason-registry.index.sorbet", + sourcery = "mason-registry.index.sourcery", + ["spectral-language-server"] = "mason-registry.index.spectral-language-server", + ["sql-formatter"] = "mason-registry.index.sql-formatter", + sqlfluff = "mason-registry.index.sqlfluff", + sqlls = "mason-registry.index.sqlls", + sqls = "mason-registry.index.sqls", + standardrb = "mason-registry.index.standardrb", + staticcheck = "mason-registry.index.staticcheck", + ["stylelint-lsp"] = "mason-registry.index.stylelint-lsp", + stylua = "mason-registry.index.stylua", + ["svelte-language-server"] = "mason-registry.index.svelte-language-server", + svlangserver = "mason-registry.index.svlangserver", + svls = "mason-registry.index.svls", + ["tailwindcss-language-server"] = "mason-registry.index.tailwindcss-language-server", + taplo = "mason-registry.index.taplo", + ["teal-language-server"] = "mason-registry.index.teal-language-server", + tectonic = "mason-registry.index.tectonic", + ["terraform-ls"] = "mason-registry.index.terraform-ls", + texlab = "mason-registry.index.texlab", + textlint = "mason-registry.index.textlint", + tflint = "mason-registry.index.tflint", + twigcs = "mason-registry.index.twigcs", + ["typescript-language-server"] = "mason-registry.index.typescript-language-server", + ["unocss-language-server"] = "mason-registry.index.unocss-language-server", + usort = "mason-registry.index.usort", + vacuum = "mason-registry.index.vacuum", + ["vala-language-server"] = "mason-registry.index.vala-language-server", + vale = "mason-registry.index.vale", + verible = "mason-registry.index.verible", + ["veryl-ls"] = "mason-registry.index.veryl-ls", + ["vetur-vls"] = "mason-registry.index.vetur-vls", + ["vim-language-server"] = "mason-registry.index.vim-language-server", + vint = "mason-registry.index.vint", + ["visualforce-language-server"] = "mason-registry.index.visualforce-language-server", + vls = "mason-registry.index.vls", + vtsls = "mason-registry.index.vtsls", + ["vue-language-server"] = "mason-registry.index.vue-language-server", + vulture = "mason-registry.index.vulture", + ["wgsl-analyzer"] = "mason-registry.index.wgsl-analyzer", + ["write-good"] = "mason-registry.index.write-good", + xmlformatter = "mason-registry.index.xmlformatter", + xo = "mason-registry.index.xo", + ["yaml-language-server"] = "mason-registry.index.yaml-language-server", + yamlfmt = "mason-registry.index.yamlfmt", + yamllint = "mason-registry.index.yamllint", + yapf = "mason-registry.index.yapf", + zk = "mason-registry.index.zk", + zls = "mason-registry.index.zls" +} \ No newline at end of file diff --git a/lua/mason-registry/index/intelephense/init.lua b/lua/mason-registry/index/intelephense/init.lua new file mode 100644 index 00000000..fd8cd7c1 --- /dev/null +++ b/lua/mason-registry/index/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/index/isort/init.lua b/lua/mason-registry/index/isort/init.lua new file mode 100644 index 00000000..01c129e4 --- /dev/null +++ b/lua/mason-registry/index/isort/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "isort", + desc = [[isort is a Python utility / library to sort imports alphabetically]], + homepage = "https://pypi.org/project/isort/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "isort", bin = { "isort" } }, +} diff --git a/lua/mason-registry/index/java-debug-adapter/init.lua b/lua/mason-registry/index/java-debug-adapter/init.lua new file mode 100644 index 00000000..923804be --- /dev/null +++ b/lua/mason-registry/index/java-debug-adapter/init.lua @@ -0,0 +1,25 @@ +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 = "java-debug-adapter", + desc = [[The debug server implementation for Java. It conforms to the debugger adapter protocol.]], + homepage = "https://github.com/microsoft/java-debug", + languages = { Pkg.Lang.Java }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "microsoft/vscode-java-debug", + asset_file = _.format "vscjava.vscode-java-debug-%s.vsix", + }) + .with_receipt() + + ctx.fs:rmrf(path.concat { "extension", "images" }) + ctx.fs:rmrf(path.concat { "extension", "dist" }) + end, +} diff --git a/lua/mason-registry/index/java-test/init.lua b/lua/mason-registry/index/java-test/init.lua new file mode 100644 index 00000000..6366572d --- /dev/null +++ b/lua/mason-registry/index/java-test/init.lua @@ -0,0 +1,37 @@ +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 = "java-test", + desc = _.dedent [[ + The Test Runner for Java works with java-debug-adapter to provide the following features: + - Run/Debug test cases + - Customize test configurations + - View test report + - View tests in Test Explorer + + Enables support for the following test frameworks: + + - JUnit 4 (v4.8.0+) + - JUnit 5 (v5.1.0+) + - TestNG (v6.8.0+) + ]], + homepage = "https://github.com/microsoft/vscode-java-test", + languages = { Pkg.Lang.Java }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "microsoft/vscode-java-test", + asset_file = _.format "vscjava.vscode-java-test-%s.vsix", + }) + .with_receipt() + + ctx.fs:rmrf(path.concat { "extension", "resources" }) + ctx.fs:rmrf(path.concat { "extension", "dist" }) + end, +} diff --git a/lua/mason-registry/index/jdtls/init.lua b/lua/mason-registry/index/jdtls/init.lua new file mode 100644 index 00000000..b3a5f640 --- /dev/null +++ b/lua/mason-registry/index/jdtls/init.lua @@ -0,0 +1,61 @@ +local Pkg = require "mason-core.package" +local installer = require "mason-core.installer" +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 platform = require "mason-core.platform" +local fetch = require "mason-core.fetch" + +---@async +local function download_jdtls() + local source = github.tag { repo = "eclipse/eclipse.jdt.ls" } + source.with_receipt() + + local version = _.gsub("^v", "", source.tag) + local response = + fetch(("https://download.eclipse.org/jdtls/milestones/%s/latest.txt"):format(version)):get_or_throw "Failed to fetch latest release from eclipse.org." + local release_file = _.head(_.split("\n", response)) + + std.download_file( + ("https://download.eclipse.org/jdtls/milestones/%s/%s"):format(version, release_file), + "archive.tar.gz" + ) + std.untar "archive.tar.gz" +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 + ---@param ctx InstallContext + install = function(ctx) + installer.run_concurrently { download_jdtls, download_lombok } + platform.when { + unix = function() + ctx:link_bin("jdtls", path.concat { "bin", "jdtls" }) + end, + win = function() + ctx:link_bin( + "jdtls", + ctx:write_shell_exec_wrapper( + path.concat { "bin", "jdtls-win" }, + ("python %q"):format(path.concat { + ctx.package:get_install_path(), + "bin", + "jdtls.py", + }) + ) + ) + end, + } + end, +} diff --git a/lua/mason-registry/index/jedi-language-server/init.lua b/lua/mason-registry/index/jedi-language-server/init.lua new file mode 100644 index 00000000..b19eb3c3 --- /dev/null +++ b/lua/mason-registry/index/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/index/joker/init.lua b/lua/mason-registry/index/joker/init.lua new file mode 100644 index 00000000..2774e0cc --- /dev/null +++ b/lua/mason-registry/index/joker/init.lua @@ -0,0 +1,31 @@ +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 = "joker", + desc = [[Small Clojure interpreter, linter and formatter]], + homepage = "https://github.com/candid82/joker", + languages = { Pkg.Lang.Clojure, Pkg.Lang.ClojureScript }, + categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "candid82/joker", + asset_file = coalesce( + when(platform.is.mac, "joker-mac-amd64.zip"), + when(platform.is.linux_x64, "joker-linux-amd64.zip"), + when(platform.is.win_x64, "joker-win-amd64.zip") + ), + }) + .with_receipt() + std.chmod("+x", { "joker" }) + ctx:link_bin("joker", platform.is.win and "joker.exe" or "joker") + end, +} diff --git a/lua/mason-registry/index/jq-lsp/init.lua b/lua/mason-registry/index/jq-lsp/init.lua new file mode 100644 index 00000000..f96ec79b --- /dev/null +++ b/lua/mason-registry/index/jq-lsp/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "jq-lsp", + desc = _.dedent [[ + jq-lsp is a language server for the jq language, developed by Mattias Wadman. It provides IDE features to any + LSP-compatible editor. + ]], + homepage = "https://github.com/wader/jq-lsp", + languages = { Pkg.Lang.Jq }, + categories = { Pkg.Cat.LSP }, + install = go.packages { "github.com/wader/jq-lsp", bin = { "jq-lsp" } }, +} diff --git a/lua/mason-registry/index/jq/init.lua b/lua/mason-registry/index/jq/init.lua new file mode 100644 index 00000000..e3a5db5b --- /dev/null +++ b/lua/mason-registry/index/jq/init.lua @@ -0,0 +1,34 @@ +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 = "jq", + desc = [[Command-line JSON processor]], + homepage = "https://github.com/stedolan/jq", + languages = { Pkg.Lang.JSON }, + categories = { Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "stedolan/jq", + out_file = platform.is.win and "jq.exe" or "jq", + asset_file = coalesce( + when(platform.is.mac, "jq-osx-amd64"), + when(platform.is.linux_x86, "jq-linux32"), + when(platform.is.linux_x64, "jq-linux64"), + when(platform.is.win_x86, "jq-win32.exe"), + when(platform.is.win_x64, "jq-win64.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "jq" }) + ctx:link_bin("jq", platform.is.win and "jq.exe" or "jq") + end, +} diff --git a/lua/mason-registry/index/js-debug-adapter/init.lua b/lua/mason-registry/index/js-debug-adapter/init.lua new file mode 100644 index 00000000..aec75201 --- /dev/null +++ b/lua/mason-registry/index/js-debug-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 = "js-debug-adapter", + desc = [[The VS Code JavaScript debugger]], + homepage = "https://github.com/microsoft/vscode-js-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-js-debug" } + source.with_receipt() + git.clone { "https://github.com/microsoft/vscode-js-debug", version = Optional.of(source.tag) } + ctx.spawn.npm { "install", "--ignore-scripts", "--legacy-peer-deps" } + ctx.spawn.npm { "run", "compile" } + ctx.spawn.npm { "install", "--production", "--ignore-scripts", "--legacy-peer-deps" } + ctx:link_bin( + "js-debug-adapter", + ctx:write_node_exec_wrapper("js-debug-adapter", path.concat { "out", "src", "vsDebugServer.js" }) + ) + end, +} diff --git a/lua/mason-registry/index/json-lsp/init.lua b/lua/mason-registry/index/json-lsp/init.lua new file mode 100644 index 00000000..a1141103 --- /dev/null +++ b/lua/mason-registry/index/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/index/json-to-struct/init.lua b/lua/mason-registry/index/json-to-struct/init.lua new file mode 100644 index 00000000..e92ca20b --- /dev/null +++ b/lua/mason-registry/index/json-to-struct/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "json-to-struct", + desc = [[A simple command-line tool for generating to struct definitions from JSON]], + homepage = "https://github.com/tmc/json-to-struct", + categories = {}, + languages = { Pkg.Lang.Go }, + install = go.packages { "github.com/tmc/json-to-struct", bin = { "json-to-struct" } }, +} diff --git a/lua/mason-registry/index/jsonlint/init.lua b/lua/mason-registry/index/jsonlint/init.lua new file mode 100644 index 00000000..d07b8f9e --- /dev/null +++ b/lua/mason-registry/index/jsonlint/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "jsonlint", + desc = [[A pure JavaScript version of the service provided at jsonlint.com.]], + homepage = "https://github.com/zaach/jsonlint", + languages = { + Pkg.Lang.JSON, + }, + categories = { Pkg.Cat.Linter }, + install = npm.packages { "jsonlint", bin = { "jsonlint" } }, +} diff --git a/lua/mason-registry/index/jsonnet-language-server/init.lua b/lua/mason-registry/index/jsonnet-language-server/init.lua new file mode 100644 index 00000000..a337957e --- /dev/null +++ b/lua/mason-registry/index/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/index/julia-lsp/init.lua b/lua/mason-registry/index/julia-lsp/init.lua new file mode 100644 index 00000000..d3dacdfe --- /dev/null +++ b/lua/mason-registry/index/julia-lsp/init.lua @@ -0,0 +1,86 @@ +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 platform = require "mason-core.platform" + +local server_script = [[ +if VERSION < v"1.0.0" + error("julia language server only works with julia 1.0.0+") +end + +import Pkg +version_specific_env_path = joinpath(@__DIR__, "scripts", "environments", "languageserver", "v$(VERSION.major).$(VERSION.minor)") +if isdir(version_specific_env_path) + Pkg.activate(version_specific_env_path) +else + Pkg.activate(joinpath(@__DIR__, "scripts", "environments", "languageserver", "fallback")) +end + +using LanguageServer, SymbolServer, Pkg + +OLD_DEPOT_PATH = ARGS[1] +ENV_PATH = ARGS[2] + +runserver( + stdin, + stdout, + ENV_PATH, + OLD_DEPOT_PATH, + nothing, + ENV["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) + ctx:link_bin( + "julia-lsp", + ctx:write_shell_exec_wrapper( + "julia-lsp", + ("julia --startup-file=no --history-file=no --depwarn=no %q"):format(path.concat { + ctx.package:get_install_path(), + "nvim-lsp.jl", + }), + { + SYMBOLSTORE_PATH = path.concat { ctx.package:get_install_path(), "symbolstorev5" }, + JULIA_DEPOT_PATH = path.concat { ctx.package:get_install_path(), "lsdepot" }, + JULIA_LOAD_PATH = platform.is.win and ";" or ":", + } + ) + ) + end, +} diff --git a/lua/mason-registry/index/kotlin-debug-adapter/init.lua b/lua/mason-registry/index/kotlin-debug-adapter/init.lua new file mode 100644 index 00000000..2e7aa17c --- /dev/null +++ b/lua/mason-registry/index/kotlin-debug-adapter/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-debug-adapter", + desc = [[Kotlin/JVM debugging for any editor/IDE using the Debug Adapter Protocol]], + homepage = "https://github.com/fwcd/kotlin-debug-adapter", + languages = { Pkg.Lang.Kotlin }, + categories = { Pkg.Cat.DAP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "fwcd/kotlin-debug-adapter", + asset_file = "adapter.zip", + }) + .with_receipt() + ctx:link_bin( + "kotlin-debug-adapter", + path.concat { + "adapter", + "bin", + platform.is.win and "kotlin-debug-adapter.bat" or "kotlin-debug-adapter", + } + ) + end, +} diff --git a/lua/mason-registry/index/kotlin-language-server/init.lua b/lua/mason-registry/index/kotlin-language-server/init.lua new file mode 100644 index 00000000..77c6cb6d --- /dev/null +++ b/lua/mason-registry/index/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/index/ktlint/init.lua b/lua/mason-registry/index/ktlint/init.lua new file mode 100644 index 00000000..ef346dc0 --- /dev/null +++ b/lua/mason-registry/index/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/index/latexindent/init.lua b/lua/mason-registry/index/latexindent/init.lua new file mode 100644 index 00000000..c08bf7e9 --- /dev/null +++ b/lua/mason-registry/index/latexindent/init.lua @@ -0,0 +1,36 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local platform = require "mason-core.platform" +local std = require "mason-core.managers.std" +local _ = require "mason-core.functional" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "latexindent", + desc = _.dedent [[ + latexindent.pl is a perl script to beautify/tidy/format/indent (add horizontal leading space to) code within + environments, commands, after headings and within special code blocks. + ]], + homepage = "https://github.com/cmhughes/latexindent.pl", + languages = { Pkg.Lang.LaTeX }, + categories = { Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "cmhughes/latexindent.pl", + out_file = platform.is.win and "latexindent.exe" or "latexindent", + asset_file = coalesce( + when(platform.is.mac_x64, "latexindent-macos"), + when(platform.is.mac_arm64, "latexindent-macos"), + when(platform.is.linux_x64_gnu, "latexindent-linux"), + when(platform.is.win_x64, "latexindent.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "latexindent" }) + ctx:link_bin("latexindent", platform.is.win and "latexindent.exe" or "latexindent") + end, +} diff --git a/lua/mason-registry/index/lelwel/init.lua b/lua/mason-registry/index/lelwel/init.lua new file mode 100644 index 00000000..f6b416e5 --- /dev/null +++ b/lua/mason-registry/index/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/index/lemminx/init.lua b/lua/mason-registry/index/lemminx/init.lua new file mode 100644 index 00000000..ba92561b --- /dev/null +++ b/lua/mason-registry/index/lemminx/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 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 source = github.unzip_release_file { + repo = "redhat-developer/vscode-xml", + asset_file = coalesce( + when(platform.is.mac, "lemminx-osx-x86_64.zip"), + when(platform.is.linux_x64, "lemminx-linux.zip"), + when(platform.is.win, "lemminx-win32.zip") + ), + } + source.with_receipt() + local unzipped_binary = _.gsub("%.zip$", "", source.asset_file) + ctx.fs:rename( + platform.is.win and ("%s.exe"):format(unzipped_binary) or unzipped_binary, + platform.is.win and "lemminx.exe" or "lemminx" + ) + ctx:link_bin("lemminx", platform.is.win and "lemminx.exe" or "lemminx") + end, +} diff --git a/lua/mason-registry/index/lemmy-help/init.lua b/lua/mason-registry/index/lemmy-help/init.lua new file mode 100644 index 00000000..db593590 --- /dev/null +++ b/lua/mason-registry/index/lemmy-help/init.lua @@ -0,0 +1,45 @@ +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 = "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 }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "numToStr/lemmy-help" + local asset_file = _.coalesce( + _.when(platform.is.mac, "lemmy-help-x86_64-apple-darwin.tar.gz"), + _.when(platform.is.linux_x64_gnu, "lemmy-help-x86_64-unknown-linux-gnu.tar.gz"), + _.when(platform.is.linux_x64, "lemmy-help-x86_64-unknown-linux-musl.tar.gz"), + _.when(platform.is.linux_arm64_gnu, "lemmy-help-aarch64-unknown-linux-gnu.tar.gz"), + _.when(platform.is.linux_arm64, "lemmy-help-aarch64-unknown-linux-musl.tar.gz"), + _.when(platform.is.win_x64, "lemmy-help-x86_64-pc-windows-msvc.zip") + ) + platform.when { + unix = function() + github + .untargz_release_file({ + repo = repo, + asset_file = asset_file, + }) + .with_receipt() + ctx:link_bin("lemmy-help", "lemmy-help") + end, + win = function() + github + .unzip_release_file({ + repo = repo, + asset_file = asset_file, + }) + .with_receipt() + ctx:link_bin("lemmy-help", "lemmy-help.exe") + end, + } + end, +} diff --git a/lua/mason-registry/index/ltex-ls/init.lua b/lua/mason-registry/index/ltex-ls/init.lua new file mode 100644 index 00000000..e2cace82 --- /dev/null +++ b/lua/mason-registry/index/ltex-ls/init.lua @@ -0,0 +1,75 @@ +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_x64, "ltex-ls-%s-linux-x64.tar.gz") + ) + return target and target:format(version) + end, + } + end, + win = function() + return github.unzip_release_file { + repo = repo, + asset_file = function(version) + local target = coalesce(when(platform.is.win_x64, "ltex-ls-%s-windows-x64.zip")) + return target and target: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 = _.dedent [[ + 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/index/lua-language-server/init.lua b/lua/mason-registry/index/lua-language-server/init.lua new file mode 100644 index 00000000..1c710935 --- /dev/null +++ b/lua/mason-registry/index/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 = [[A language server that offers Lua language support - programmed in Lua.]], + languages = { Pkg.Lang.Lua }, + categories = { Pkg.Cat.LSP }, + homepage = "https://github.com/LuaLS/lua-language-server", + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "LuaLS/lua-language-server" + platform.when { + unix = function() + github + .untargz_release_file({ + repo = repo, + asset_file = coalesce( + when(platform.is.mac_x64, _.format "lua-language-server-%s-darwin-x64.tar.gz"), + when(platform.is.mac_arm64, _.format "lua-language-server-%s-darwin-arm64.tar.gz"), + when(platform.is.linux_x64_gnu, _.format "lua-language-server-%s-linux-x64.tar.gz"), + when(platform.is.linux_arm64_gnu, _.format "lua-language-server-%s-linux-arm64.tar.gz") + ), + }) + .with_receipt() + + ctx:link_bin( + "lua-language-server", + ctx:write_exec_wrapper( + "lua-language-server", + path.concat { + "bin", + "lua-language-server", + } + ) + ) + end, + win = function() + github + .unzip_release_file({ + repo = repo, + asset_file = coalesce( + when(platform.is.win_x64, _.format "lua-language-server-%s-win32-x64.zip"), + when(platform.is.win_x86, _.format "lua-language-server-%s-win32-ia32.zip") + ), + }) + .with_receipt() + ctx:link_bin( + "lua-language-server", + path.concat { + "bin", + "lua-language-server.exe", + } + ) + end, + } + end, +} diff --git a/lua/mason-registry/index/luacheck/init.lua b/lua/mason-registry/index/luacheck/init.lua new file mode 100644 index 00000000..f4fae381 --- /dev/null +++ b/lua/mason-registry/index/luacheck/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason-core.package" +local luarocks = require "mason-core.managers.luarocks" + +return Pkg.new { + name = "luacheck", + desc = [[A tool for linting and static analysis of Lua code.]], + homepage = "https://github.com/mpeterv/luacheck", + languages = { Pkg.Lang.Lua }, + categories = { Pkg.Cat.Linter }, + install = luarocks.package("luacheck", { + bin = { "luacheck" }, + }), +} diff --git a/lua/mason-registry/index/luaformatter/init.lua b/lua/mason-registry/index/luaformatter/init.lua new file mode 100644 index 00000000..f4e4c888 --- /dev/null +++ b/lua/mason-registry/index/luaformatter/init.lua @@ -0,0 +1,14 @@ +local Pkg = require "mason-core.package" +local luarocks = require "mason-core.managers.luarocks" + +return Pkg.new { + name = "luaformatter", + desc = [[Code formatter for Lua]], + homepage = "https://github.com/Koihik/LuaFormatter", + languages = { Pkg.Lang.Lua }, + categories = { Pkg.Cat.Formatter }, + install = luarocks.package("luaformatter", { + server = "https://luarocks.org/dev", + bin = { "lua-format" }, + }), +} diff --git a/lua/mason-registry/index/luau-lsp/init.lua b/lua/mason-registry/index/luau-lsp/init.lua new file mode 100644 index 00000000..94324271 --- /dev/null +++ b/lua/mason-registry/index/luau-lsp/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 = "luau-lsp", + desc = [[An implementation of a language server for the Luau programming language.]], + languages = { Pkg.Lang.Luau }, + categories = { Pkg.Cat.LSP }, + homepage = "https://github.com/JohnnyMorganz/luau-lsp", + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "JohnnyMorganz/luau-lsp", + asset_file = coalesce( + when(platform.is.mac, "luau-lsp-macos.zip"), + when(platform.is.linux_x64, "luau-lsp-linux.zip"), + when(platform.is.win_x64, "luau-lsp-win64.zip") + ), + }) + .with_receipt() + + ctx:link_bin("luau-lsp", platform.is.win and "luau-lsp.exe" or "luau-lsp") + end, +} diff --git a/lua/mason-registry/index/markdownlint/init.lua b/lua/mason-registry/index/markdownlint/init.lua new file mode 100644 index 00000000..eb63ec71 --- /dev/null +++ b/lua/mason-registry/index/markdownlint/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "markdownlint", + desc = [[A Node.js style checker and lint tool for Markdown/CommonMark files]], + homepage = "https://github.com/igorshubovych/markdownlint-cli", + languages = { Pkg.Lang.Markdown }, + categories = { Pkg.Cat.Linter, Pkg.Cat.Formatter }, + install = npm.packages { "markdownlint-cli", bin = { "markdownlint" } }, +} diff --git a/lua/mason-registry/index/marksman/init.lua b/lua/mason-registry/index/marksman/init.lua new file mode 100644 index 00000000..7d2404dc --- /dev/null +++ b/lua/mason-registry/index/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/index/metamath-zero-lsp/init.lua b/lua/mason-registry/index/metamath-zero-lsp/init.lua new file mode 100644 index 00000000..e5fc28b1 --- /dev/null +++ b/lua/mason-registry/index/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/index/misspell/init.lua b/lua/mason-registry/index/misspell/init.lua new file mode 100644 index 00000000..d9ae6f13 --- /dev/null +++ b/lua/mason-registry/index/misspell/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "misspell", + desc = [[Correct commonly misspelled English words in source files]], + homepage = "https://github.com/client9/misspell", + languages = {}, + categories = { Pkg.Cat.Linter }, + install = go.packages { "github.com/client9/misspell/cmd/misspell", bin = { "misspell" } }, +} diff --git a/lua/mason-registry/index/mockdebug/init.lua b/lua/mason-registry/index/mockdebug/init.lua new file mode 100644 index 00000000..4b539a72 --- /dev/null +++ b/lua/mason-registry/index/mockdebug/init.lua @@ -0,0 +1,31 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local git = require "mason-core.managers.git" +local path = require "mason-core.path" +local _ = require "mason-core.functional" +local Optional = require "mason-core.optional" + +return Pkg.new { + name = "mockdebug", + desc = _.dedent [[ + 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" } + ctx:link_bin( + "mock-debug-adapter", + ctx:write_node_exec_wrapper("mock-debug-adapter", path.concat { "out", "debugAdapter.js" }) + ) + end, +} diff --git a/lua/mason-registry/index/move-analyzer/init.lua b/lua/mason-registry/index/move-analyzer/init.lua new file mode 100644 index 00000000..e7e15093 --- /dev/null +++ b/lua/mason-registry/index/move-analyzer/init.lua @@ -0,0 +1,16 @@ +local Pkg = require "mason-core.package" +local cargo = require "mason-core.managers.cargo" + +return Pkg.new { + name = "move-analyzer", + desc = [[move-analyzer is a language server implementation for the Move programming language.]], + homepage = "https://github.com/move-language/move", + languages = { Pkg.Lang.Move }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("move-analyzer", { + git = { + url = "https://github.com/move-language/move", + }, + bin = { "move-analyzer" }, + }), +} diff --git a/lua/mason-registry/index/mypy/init.lua b/lua/mason-registry/index/mypy/init.lua new file mode 100644 index 00000000..05f68afd --- /dev/null +++ b/lua/mason-registry/index/mypy/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "mypy", + desc = [[Mypy is a static type checker for Python. ]], + homepage = "https://github.com/python/mypy", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "mypy", bin = { "mypy" } }, +} diff --git a/lua/mason-registry/index/neocmakelsp/init.lua b/lua/mason-registry/index/neocmakelsp/init.lua new file mode 100644 index 00000000..2fe76e44 --- /dev/null +++ b/lua/mason-registry/index/neocmakelsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local cargo = require "mason-core.managers.cargo" + +return Pkg.new { + name = "neocmakelsp", + desc = [[CMake LSP implementation based on Tower and Tree-sitter]], + homepage = "https://github.com/Decodetalkers/neocmakelsp", + languages = { Pkg.Lang.CMake }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("neocmakelsp", { bin = { "neocmakelsp" } }), +} diff --git a/lua/mason-registry/index/netcoredbg/init.lua b/lua/mason-registry/index/netcoredbg/init.lua new file mode 100644 index 00000000..10a5c1ae --- /dev/null +++ b/lua/mason-registry/index/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#"], Pkg.Lang["F#"] }, + 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/index/nginx-language-server/init.lua b/lua/mason-registry/index/nginx-language-server/init.lua new file mode 100644 index 00000000..88512cdc --- /dev/null +++ b/lua/mason-registry/index/nginx-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 = "nginx-language-server", + desc = [[A language server for nginx configuration files.]], + homepage = "https://github.com/pappasam/nginx-language-server", + languages = { Pkg.Lang.Nginx }, + categories = { Pkg.Cat.LSP }, + install = pip3.packages { "nginx-language-server", bin = { "nginx-language-server" } }, +} diff --git a/lua/mason-registry/index/nickel-lang-lsp/init.lua b/lua/mason-registry/index/nickel-lang-lsp/init.lua new file mode 100644 index 00000000..8e0cc510 --- /dev/null +++ b/lua/mason-registry/index/nickel-lang-lsp/init.lua @@ -0,0 +1,17 @@ +local Pkg = require "mason-core.package" +local cargo = require "mason-core.managers.cargo" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "nickel-lang-lsp", + desc = _.dedent [[ + 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/index/nil/init.lua b/lua/mason-registry/index/nil/init.lua new file mode 100644 index 00000000..708022a4 --- /dev/null +++ b/lua/mason-registry/index/nil/init.lua @@ -0,0 +1,17 @@ +local Pkg = require "mason-core.package" +local cargo = require "mason-core.managers.cargo" + +return Pkg.new { + name = "nil", + desc = [[Language Server for Nix]], + homepage = "https://github.com/oxalica/nil", + languages = { Pkg.Lang.Nix }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("nil", { + git = { + url = "https://github.com/oxalica/nil", + tag = true, + }, + bin = { "nil" }, + }), +} diff --git a/lua/mason-registry/index/nimlsp/init.lua b/lua/mason-registry/index/nimlsp/init.lua new file mode 100644 index 00000000..ceb759af --- /dev/null +++ b/lua/mason-registry/index/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/index/node-debug2-adapter/init.lua b/lua/mason-registry/index/node-debug2-adapter/init.lua new file mode 100644 index 00000000..4487b6a4 --- /dev/null +++ b/lua/mason-registry/index/node-debug2-adapter/init.lua @@ -0,0 +1,36 @@ +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" +local platform = require "mason-core.platform" + +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" } + local node_env = platform + .get_node_version() + :map(_.cond { + { _.prop_satisfies(_.gte(18), "major"), _.always { NODE_OPTIONS = "--no-experimental-fetch" } }, + { _.T, _.always {} }, + }) + :get_or_else {} + ctx.spawn.npm { "run", "build", env = node_env } + 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/index/nxls/init.lua b/lua/mason-registry/index/nxls/init.lua new file mode 100644 index 00000000..fb955b5e --- /dev/null +++ b/lua/mason-registry/index/nxls/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "nxls", + desc = [[A language server that provides code completion and more for Nx workspaces.]], + homepage = "https://github.com/nrwl/nx-console/tree/master/apps/nxls", + languages = { + Pkg.Lang.JSON, + }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "nxls", bin = { "nxls" } }, +} diff --git a/lua/mason-registry/index/ocaml-lsp/init.lua b/lua/mason-registry/index/ocaml-lsp/init.lua new file mode 100644 index 00000000..b1d02807 --- /dev/null +++ b/lua/mason-registry/index/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/index/ocamlformat/init.lua b/lua/mason-registry/index/ocamlformat/init.lua new file mode 100644 index 00000000..e24f33a9 --- /dev/null +++ b/lua/mason-registry/index/ocamlformat/init.lua @@ -0,0 +1,15 @@ +local _ = require "mason-core.functional" +local Pkg = require "mason-core.package" +local opam = require "mason-core.managers.opam" + +return Pkg.new { + name = "ocamlformat", + desc = _.dedent [[ + ocamlformat is a tool for formatting OCaml code. It automatically adjusts the layout of your code to follow the + recommended style guidelines, making it easier to read and understand. + ]], + homepage = "https://github.com/ocaml-ppx/ocamlformat", + languages = { Pkg.Lang.OCaml }, + categories = { Pkg.Cat.Formatter }, + install = opam.packages { "ocamlformat", bin = { "ocamlformat" } }, +} diff --git a/lua/mason-registry/index/omnisharp-mono/init.lua b/lua/mason-registry/index/omnisharp-mono/init.lua new file mode 100644 index 00000000..a09ee7e5 --- /dev/null +++ b/lua/mason-registry/index/omnisharp-mono/init.lua @@ -0,0 +1,48 @@ +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 = "omnisharp-mono", + desc = _.dedent [[ + OmniSharp language server based on Roslyn workspaces. This version of Omnisharp requires Mono to be installed on + Linux & macOS. + ]], + homepage = "https://github.com/OmniSharp/omnisharp-roslyn", + languages = { Pkg.Lang["C#"] }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + platform.when { + unix = function() + github + .untargz_release_file({ + repo = "OmniSharp/omnisharp-roslyn", + asset_file = coalesce( + when(platform.is.mac, "omnisharp-osx.tar.gz"), + when(platform.is.linux_x64, "omnisharp-linux-x64.tar.gz"), + when(platform.is.linux_x86, "omnisharp-linux-x86.tar.gz") + ), + }) + .with_receipt() + ctx:link_bin("omnisharp-mono", ctx:write_exec_wrapper("omnisharp-mono", "run")) + end, + win = function() + github + .unzip_release_file({ + repo = "OmniSharp/omnisharp-roslyn", + asset_file = coalesce( + when(platform.is.win_x64, "omnisharp-win-x64.zip"), + when(platform.is.win_x86, "omnisharp-win-x86.zip") + ), + }) + .with_receipt() + ctx:link_bin("omnisharp-mono", "OmniSharp.exe") + end, + } + end, +} diff --git a/lua/mason-registry/index/omnisharp/init.lua b/lua/mason-registry/index/omnisharp/init.lua new file mode 100644 index 00000000..cb1164a3 --- /dev/null +++ b/lua/mason-registry/index/omnisharp/init.lua @@ -0,0 +1,46 @@ +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 = "omnisharp", + desc = _.dedent [[ + OmniSharp language server based on Roslyn workspaces. This version of Omnisharp requires dotnet (.NET 6.0) to be + installed. + ]], + homepage = "https://github.com/OmniSharp/omnisharp-roslyn", + languages = { Pkg.Lang["C#"] }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + 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") + ), + }) + .with_receipt() + + ctx:link_bin( + "omnisharp", + ctx:write_shell_exec_wrapper( + "omnisharp", + ("dotnet %q"):format(path.concat { + ctx.package:get_install_path(), + "OmniSharp.dll", + }) + ) + ) + end, +} diff --git a/lua/mason-registry/index/opencl-language-server/init.lua b/lua/mason-registry/index/opencl-language-server/init.lua new file mode 100644 index 00000000..665a5c55 --- /dev/null +++ b/lua/mason-registry/index/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/index/openscad-lsp/init.lua b/lua/mason-registry/index/openscad-lsp/init.lua new file mode 100644 index 00000000..2caf582d --- /dev/null +++ b/lua/mason-registry/index/openscad-lsp/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason-core.package" +local cargo = require "mason-core.managers.cargo" + +return Pkg.new { + name = "openscad-lsp", + desc = [[Language Server Protocol implementation for OpenSCAD, written in Rust.]], + homepage = "https://github.com/Leathong/openscad-LSP", + languages = { Pkg.Lang.OpenSCAD }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("openscad-lsp", { + bin = { "openscad-lsp" }, + }), +} diff --git a/lua/mason-registry/index/perlnavigator/init.lua b/lua/mason-registry/index/perlnavigator/init.lua new file mode 100644 index 00000000..654ecb94 --- /dev/null +++ b/lua/mason-registry/index/perlnavigator/init.lua @@ -0,0 +1,23 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" +local path = require "mason-core.path" + +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 }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + npm.packages { "perlnavigator-server" }() + ctx:link_bin( + "perlnavigator", + ctx:write_node_exec_wrapper( + "perlnavigator", + path.concat { "node_modules", "perlnavigator-server", "out", "server.js" } + ) + ) + end, +} diff --git a/lua/mason-registry/index/php-cs-fixer/init.lua b/lua/mason-registry/index/php-cs-fixer/init.lua new file mode 100644 index 00000000..84dd0078 --- /dev/null +++ b/lua/mason-registry/index/php-cs-fixer/init.lua @@ -0,0 +1,37 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local github = require "mason-core.managers.github" +local std = require "mason-core.managers.std" +local platform = require "mason-core.platform" + +return Pkg.new { + name = "php-cs-fixer", + desc = _.dedent [[ + The PHP Coding Standards Fixer (PHP CS Fixer) tool fixes your code to follow standards; whether you want to + follow PHP coding standards as defined in the PSR-1, PSR-2, etc., or other community driven ones like the + Symfony one. You can also define your (team's) style through configuration.') + ]], + homepage = "https://github.com/FriendsOfPHP/PHP-CS-Fixer", + languages = { Pkg.Lang.PHP }, + categories = { Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "FriendsOfPHP/PHP-CS-Fixer", + asset_file = "php-cs-fixer.phar", + out_file = platform.is.win and "php-cs-fixer.phar" or "php-cs-fixer", + }) + .with_receipt() + platform.when { + unix = function() + std.chmod("+x", { "php-cs-fixer" }) + ctx:link_bin("php-cs-fixer", "php-cs-fixer") + end, + win = function() + ctx:link_bin("php-cs-fixer", ctx:write_php_exec_wrapper("php-cs-fixer", "php-cs-fixer.phar")) + end, + } + end, +} diff --git a/lua/mason-registry/index/php-debug-adapter/init.lua b/lua/mason-registry/index/php-debug-adapter/init.lua new file mode 100644 index 00000000..d4350c91 --- /dev/null +++ b/lua/mason-registry/index/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/index/phpactor/init.lua b/lua/mason-registry/index/phpactor/init.lua new file mode 100644 index 00000000..99f0b5f5 --- /dev/null +++ b/lua/mason-registry/index/phpactor/init.lua @@ -0,0 +1,29 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +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 = _.dedent [[ + 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/index/phpcbf/init.lua b/lua/mason-registry/index/phpcbf/init.lua new file mode 100644 index 00000000..6dd062f5 --- /dev/null +++ b/lua/mason-registry/index/phpcbf/init.lua @@ -0,0 +1,33 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local github = require "mason-core.managers.github" +local std = require "mason-core.managers.std" +local platform = require "mason-core.platform" + +return Pkg.new { + name = "phpcbf", + desc = [[phpcbf automatically corrects coding standard violations that would be detected by phpcs.]], + homepage = "https://github.com/squizlabs/PHP_CodeSniffer", + languages = { Pkg.Lang.PHP }, + categories = { Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "squizlabs/PHP_CodeSniffer", + asset_file = "phpcbf.phar", + out_file = platform.is.win and "phpcbf.phar" or "phpcbf", + }) + .with_receipt() + platform.when { + unix = function() + std.chmod("+x", { "phpcbf" }) + ctx:link_bin("phpcbf", "phpcbf") + end, + win = function() + ctx:link_bin("phpcbf", ctx:write_php_exec_wrapper("phpcbf", "phpcbf.phar")) + end, + } + end, +} diff --git a/lua/mason-registry/index/phpcs/init.lua b/lua/mason-registry/index/phpcs/init.lua new file mode 100644 index 00000000..41f82f7d --- /dev/null +++ b/lua/mason-registry/index/phpcs/init.lua @@ -0,0 +1,33 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local github = require "mason-core.managers.github" +local std = require "mason-core.managers.std" +local platform = require "mason-core.platform" + +return Pkg.new { + name = "phpcs", + desc = [[phpcs tokenizes PHP, JavaScript and CSS files to detect violations of a defined standard.]], + homepage = "https://github.com/squizlabs/PHP_CodeSniffer", + languages = { Pkg.Lang.PHP }, + categories = { Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "squizlabs/PHP_CodeSniffer", + asset_file = "phpcs.phar", + out_file = platform.is.win and "phpcs.phar" or "phpcs", + }) + .with_receipt() + platform.when { + unix = function() + std.chmod("+x", { "phpcs" }) + ctx:link_bin("phpcs", "phpcs") + end, + win = function() + ctx:link_bin("phpcs", ctx:write_php_exec_wrapper("phpcs", "phpcs.phar")) + end, + } + end, +} diff --git a/lua/mason-registry/index/phpmd/init.lua b/lua/mason-registry/index/phpmd/init.lua new file mode 100644 index 00000000..4543711f --- /dev/null +++ b/lua/mason-registry/index/phpmd/init.lua @@ -0,0 +1,36 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local github = require "mason-core.managers.github" +local std = require "mason-core.managers.std" +local platform = require "mason-core.platform" + +return Pkg.new { + name = "phpmd", + desc = _.dedent [[ + PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD. + PHPMD can be seen as an user friendly frontend application for the raw metrics stream measured by PHP Depend. + ]], + homepage = "https://github.com/phpmd/phpmd", + languages = { Pkg.Lang.PHP }, + categories = { Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "phpmd/phpmd", + asset_file = "phpmd.phar", + out_file = platform.is.win and "phpmd.phar" or "phpmd", + }) + .with_receipt() + platform.when { + unix = function() + std.chmod("+x", { "phpmd" }) + ctx:link_bin("phpmd", "phpmd") + end, + win = function() + ctx:link_bin("phpmd", ctx:write_php_exec_wrapper("phpmd", "phpmd.phar")) + end, + } + end, +} diff --git a/lua/mason-registry/index/phpstan/init.lua b/lua/mason-registry/index/phpstan/init.lua new file mode 100644 index 00000000..688bd75a --- /dev/null +++ b/lua/mason-registry/index/phpstan/init.lua @@ -0,0 +1,36 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local github = require "mason-core.managers.github" +local std = require "mason-core.managers.std" +local platform = require "mason-core.platform" +local path = require "mason-core.path" + +return Pkg.new { + name = "phpstan", + desc = _.dedent [[ + PHP Static Analysis Tool - discover bugs in your code without running it! + ]], + homepage = "https://github.com/phpstan/phpstan", + languages = { Pkg.Lang.PHP }, + categories = { Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "phpstan/phpstan", + asset_file = "phpstan.phar", + out_file = platform.is.win and "phpstan.phar" or "phpstan", + }) + .with_receipt() + platform.when { + unix = function() + std.chmod("+x", { "phpstan" }) + ctx:link_bin("phpstan", "phpstan") + end, + win = function() + ctx:link_bin("phpstan", ctx:write_php_exec_wrapper("phpstan", "phpstan.phar")) + end, + } + end, +} diff --git a/lua/mason-registry/index/pint/init.lua b/lua/mason-registry/index/pint/init.lua new file mode 100644 index 00000000..559434d5 --- /dev/null +++ b/lua/mason-registry/index/pint/init.lua @@ -0,0 +1,16 @@ +local Pkg = require "mason-core.package" +local composer = require "mason-core.managers.composer" + +return Pkg.new { + name = "pint", + desc = [[Laravel Pint is an opinionated PHP code style fixer for minimalists.]], + homepage = "https://laravel.com/docs/9.x/pint", + languages = { Pkg.Lang.PHP }, + categories = { Pkg.Cat.Formatter }, + install = composer.packages { + "laravel/pint", + bin = { + "pint", + }, + }, +} diff --git a/lua/mason-registry/index/powershell-editor-services/init.lua b/lua/mason-registry/index/powershell-editor-services/init.lua new file mode 100644 index 00000000..ab52478d --- /dev/null +++ b/lua/mason-registry/index/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/index/prettier/init.lua b/lua/mason-registry/index/prettier/init.lua new file mode 100644 index 00000000..04f0bd0f --- /dev/null +++ b/lua/mason-registry/index/prettier/init.lua @@ -0,0 +1,26 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "prettier", + desc = [[Prettier is an opinionated code formatter]], + homepage = "https://prettier.io", + languages = { + Pkg.Lang.JavaScript, + Pkg.Lang.TypeScript, + Pkg.Lang.Flow, + Pkg.Lang.JSX, + Pkg.Lang.JSON, + Pkg.Lang.CSS, + Pkg.Lang.SCSS, + Pkg.Lang.LESS, + Pkg.Lang.HTML, + Pkg.Lang.Vue, + Pkg.Lang.Angular, + Pkg.Lang.GraphQL, + Pkg.Lang.Markdown, + Pkg.Lang.YAML, + }, + categories = { Pkg.Cat.Formatter }, + install = npm.packages { "prettier", bin = { "prettier" } }, +} diff --git a/lua/mason-registry/index/prettierd/init.lua b/lua/mason-registry/index/prettierd/init.lua new file mode 100644 index 00000000..34a2e0c4 --- /dev/null +++ b/lua/mason-registry/index/prettierd/init.lua @@ -0,0 +1,26 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "prettierd", + desc = [[Prettier, as a daemon, for ludicrous formatting speed]], + homepage = "https://github.com/fsouza/prettierd", + languages = { + Pkg.Lang.JavaScript, + Pkg.Lang.TypeScript, + Pkg.Lang.Flow, + Pkg.Lang.JSX, + Pkg.Lang.JSON, + Pkg.Lang.CSS, + Pkg.Lang.SCSS, + Pkg.Lang.LESS, + Pkg.Lang.HTML, + Pkg.Lang.Vue, + Pkg.Lang.Angular, + Pkg.Lang.GraphQL, + Pkg.Lang.Markdown, + Pkg.Lang.YAML, + }, + categories = { Pkg.Cat.Formatter }, + install = npm.packages { "@fsouza/prettierd", bin = { "prettierd" } }, +} diff --git a/lua/mason-registry/index/prisma-language-server/init.lua b/lua/mason-registry/index/prisma-language-server/init.lua new file mode 100644 index 00000000..b54cb132 --- /dev/null +++ b/lua/mason-registry/index/prisma-language-server/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "prisma-language-server", + desc = _.dedent [[ + 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/index/proselint/init.lua b/lua/mason-registry/index/proselint/init.lua new file mode 100644 index 00000000..7e919a6c --- /dev/null +++ b/lua/mason-registry/index/proselint/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "proselint", + desc = _.dedent [[ + proselint is a linter for English prose. It places the world's greatest writers and editors by your side, where + they whisper suggestions on how to improve your prose. + ]], + homepage = "https://github.com/amperser/proselint", + languages = { Pkg.Lang.Text, Pkg.Lang.Markdown }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "proselint", bin = { "proselint" } }, +} diff --git a/lua/mason-registry/index/prosemd-lsp/init.lua b/lua/mason-registry/index/prosemd-lsp/init.lua new file mode 100644 index 00000000..4e4f7b8e --- /dev/null +++ b/lua/mason-registry/index/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_x64_gnu, "prosemd-lsp-linux"), + when(platform.is.win_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/index/protolint/init.lua b/lua/mason-registry/index/protolint/init.lua new file mode 100644 index 00000000..6830c6ea --- /dev/null +++ b/lua/mason-registry/index/protolint/init.lua @@ -0,0 +1,36 @@ +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 = "protolint", + desc = [[protolint is the pluggable linting/fixing utility for Protocol Buffer files (proto2+proto3)]], + homepage = "https://github.com/yoheimuta/protolint", + categories = { Pkg.Cat.Linter }, + languages = { Pkg.Lang.Protobuf }, + install = function(ctx) + ---@param template_string string + local function release_file(template_string) + return _.compose(_.format(template_string), _.gsub("^v", "")) + end + + github + .untargz_release_file({ + repo = "yoheimuta/protolint", + asset_file = coalesce( + when(platform.is.mac_arm64, release_file "protolint_%s_Darwin_arm64.tar.gz"), + when(platform.is.mac_x64, release_file "protolint_%s_Darwin_x86_64.tar.gz"), + when(platform.is.linux_arm64, release_file "protolint_%s_Linux_arm64.tar.gz"), + when(platform.is.linux_x64, release_file "protolint_%s_Linux_x86_64.tar.gz"), + when(platform.is.win_arm64, release_file "protolint_%s_Windows_arm64.tar.gz"), + when(platform.is.win_x64, release_file "protolint_%s_Windows_x86_64.tar.gz") + ), + }) + .with_receipt() + ctx:link_bin("protolint", platform.is.win and "protolint.exe" or "protolint") + ctx:link_bin("protoc-gen-protolint", platform.is.win and "protoc-gen-protolint.exe" or "protoc-gen-protolint") + end, +} diff --git a/lua/mason-registry/index/psalm/init.lua b/lua/mason-registry/index/psalm/init.lua new file mode 100644 index 00000000..7a994a56 --- /dev/null +++ b/lua/mason-registry/index/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/index/puppet-editor-services/init.lua b/lua/mason-registry/index/puppet-editor-services/init.lua new file mode 100644 index 00000000..d38c2359 --- /dev/null +++ b/lua/mason-registry/index/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/index/purescript-language-server/init.lua b/lua/mason-registry/index/purescript-language-server/init.lua new file mode 100644 index 00000000..dd1395ac --- /dev/null +++ b/lua/mason-registry/index/purescript-language-server/init.lua @@ -0,0 +1,16 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "purescript-language-server", + desc = _.dedent [[ + 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/index/pydocstyle/init.lua b/lua/mason-registry/index/pydocstyle/init.lua new file mode 100644 index 00000000..74d4b3af --- /dev/null +++ b/lua/mason-registry/index/pydocstyle/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "pydocstyle", + desc = "pydocstyle is a static analysis tool for checking compliance with Python docstring conventions", + homepage = "https://www.pydocstyle.org/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "pydocstyle", bin = { "pydocstyle" } }, +} diff --git a/lua/mason-registry/index/pylama/init.lua b/lua/mason-registry/index/pylama/init.lua new file mode 100644 index 00000000..42e0c562 --- /dev/null +++ b/lua/mason-registry/index/pylama/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "pylama", + desc = [[Code audit tool for Python.]], + homepage = "https://klen.github.io/pylama/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "pylama[all]", bin = { "pylama" } }, +} diff --git a/lua/mason-registry/index/pylint/init.lua b/lua/mason-registry/index/pylint/init.lua new file mode 100644 index 00000000..292847c7 --- /dev/null +++ b/lua/mason-registry/index/pylint/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "pylint", + desc = [[Pylint is a static code analyser for Python 2 or 3]], + homepage = "https://pypi.org/project/pylint/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "pylint", bin = { "pylint" } }, +} diff --git a/lua/mason-registry/index/pyproject-flake8/init.lua b/lua/mason-registry/index/pyproject-flake8/init.lua new file mode 100644 index 00000000..9657942a --- /dev/null +++ b/lua/mason-registry/index/pyproject-flake8/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "pyproject-flake8", + desc = "A monkey patching wrapper to connect flake8 with pyproject.toml configuration.", + homepage = "https://github.com/csachs/pyproject-flake8", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "pyproject-flake8", bin = { "pflake8" } }, +} diff --git a/lua/mason-registry/index/pyre/init.lua b/lua/mason-registry/index/pyre/init.lua new file mode 100644 index 00000000..878e1abe --- /dev/null +++ b/lua/mason-registry/index/pyre/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "pyre", + desc = [[Pyre is a performant type checker for Python compliant with PEP 484]], + homepage = "https://pypi.org/project/pyre-check/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Linter, Pkg.Cat.LSP }, + install = pip3.packages { "pyre-check", bin = { "pyre" } }, +} diff --git a/lua/mason-registry/index/pyright/init.lua b/lua/mason-registry/index/pyright/init.lua new file mode 100644 index 00000000..82957fa0 --- /dev/null +++ b/lua/mason-registry/index/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/index/python-lsp-server/init.lua b/lua/mason-registry/index/python-lsp-server/init.lua new file mode 100644 index 00000000..8fb212a4 --- /dev/null +++ b/lua/mason-registry/index/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/index/quick-lint-js/init.lua b/lua/mason-registry/index/quick-lint-js/init.lua new file mode 100644 index 00000000..40764b37 --- /dev/null +++ b/lua/mason-registry/index/quick-lint-js/init.lua @@ -0,0 +1,53 @@ +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 = _.dedent [[ + 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/index/r-languageserver/init.lua b/lua/mason-registry/index/r-languageserver/init.lua new file mode 100644 index 00000000..acb12ea4 --- /dev/null +++ b/lua/mason-registry/index/r-languageserver/init.lua @@ -0,0 +1,87 @@ +local a = require "mason-core.async" +local async_uv = require "mason-core.async.uv" +local Pkg = require "mason-core.package" +local path = require "mason-core.path" +local github = require "mason-core.managers.github" + +---@param install_dir string +---@param ref string +local function create_install_script(install_dir, ref) + 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, + ref = %q +); +library("languageserver", lib.loc = rlsLib); +]]):format(install_dir, ref) +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) + local source = github.release_version { repo = "REditorSupport/languageserver" } + source.with_receipt() + ctx.spawn.R { + "--no-save", + on_spawn = a.scope(function(_, stdio) + local stdin = stdio[1] + async_uv.write(stdin, create_install_script(ctx.cwd:get(), source.release)) + async_uv.shutdown(stdin) + async_uv.close(stdin) + end), + } + ctx.fs:write_file("server.R", create_server_script(ctx.package:get_install_path())) + + ctx:link_bin( + "r-languageserver", + ctx:write_shell_exec_wrapper( + "r-languageserver", + ("R --slave -f %q"):format(path.concat { ctx.package:get_install_path(), "server.R" }) + ) + ) + end, +} diff --git a/lua/mason-registry/index/raku-navigator/init.lua b/lua/mason-registry/index/raku-navigator/init.lua new file mode 100644 index 00000000..3c9cb3e1 --- /dev/null +++ b/lua/mason-registry/index/raku-navigator/init.lua @@ -0,0 +1,22 @@ +local Pkg = require "mason-core.package" +local git = require "mason-core.managers.git" +local path = require "mason-core.path" + +return Pkg.new { + name = "raku-navigator", + desc = [[Raku Language Server that includes Raku critic and code navigation]], + homepage = "https://github.com/bscan/RakuNavigator", + languages = { Pkg.Lang.Raku }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + git.clone({ "https://github.com/bscan/RakuNavigator" }).with_receipt() + ctx.spawn.npm { "install" } + ctx.spawn.npm { "run", "compile" } + ctx:link_bin( + "raku-navigator", + ctx:write_node_exec_wrapper("raku-navigator", path.concat { "server", "out", "server.js" }) + ) + end, +} diff --git a/lua/mason-registry/index/reason-language-server/init.lua b/lua/mason-registry/index/reason-language-server/init.lua new file mode 100644 index 00000000..20aab910 --- /dev/null +++ b/lua/mason-registry/index/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/index/remark-cli/init.lua b/lua/mason-registry/index/remark-cli/init.lua new file mode 100644 index 00000000..46be0619 --- /dev/null +++ b/lua/mason-registry/index/remark-cli/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "remark-cli", + desc = [[Command line interface to inspect and change markdown files with remark.]], + homepage = "https://remark.js.org/", + languages = { Pkg.Lang.Markdown }, + categories = { Pkg.Cat.Formatter }, + install = npm.packages { "remark-cli", bin = { "remark" } }, +} diff --git a/lua/mason-registry/index/remark-language-server/init.lua b/lua/mason-registry/index/remark-language-server/init.lua new file mode 100644 index 00000000..e891b370 --- /dev/null +++ b/lua/mason-registry/index/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/index/reorder-python-imports/init.lua b/lua/mason-registry/index/reorder-python-imports/init.lua new file mode 100644 index 00000000..6a267aad --- /dev/null +++ b/lua/mason-registry/index/reorder-python-imports/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "reorder-python-imports", + desc = [[Tool for automatically reordering python imports. Similar to isort but uses static analysis more.]], + homepage = "https://github.com/asottile/reorder_python_imports", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "reorder-python-imports", bin = { "reorder-python-imports" } }, +} diff --git a/lua/mason-registry/index/rescript-lsp/init.lua b/lua/mason-registry/index/rescript-lsp/init.lua new file mode 100644 index 00000000..ec79ab09 --- /dev/null +++ b/lua/mason-registry/index/rescript-lsp/init.lua @@ -0,0 +1,36 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local path = require "mason-core.path" + +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 + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "rescript-lang/rescript-vscode", + asset_file = function(version) + return ("rescript-vscode-%s.vsix"):format(version) + end, + }) + .with_receipt() + + ctx:link_bin( + "rescript-lsp", + ctx:write_node_exec_wrapper( + "rescript-lsp", + path.concat { + "extension", + "server", + "out", + "server.js", + } + ) + ) + end, +} diff --git a/lua/mason-registry/index/revive/init.lua b/lua/mason-registry/index/revive/init.lua new file mode 100644 index 00000000..3f9678d0 --- /dev/null +++ b/lua/mason-registry/index/revive/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "revive", + desc = [[~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint]], + homepage = "https://github.com/mgechev/revive", + categories = { Pkg.Cat.Linter }, + languages = { Pkg.Lang.Go }, + install = go.packages { "github.com/mgechev/revive", bin = { "revive" } }, +} diff --git a/lua/mason-registry/index/rnix-lsp/init.lua b/lua/mason-registry/index/rnix-lsp/init.lua new file mode 100644 index 00000000..75576ed6 --- /dev/null +++ b/lua/mason-registry/index/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/index/robotframework-lsp/init.lua b/lua/mason-registry/index/robotframework-lsp/init.lua new file mode 100644 index 00000000..4458e3b3 --- /dev/null +++ b/lua/mason-registry/index/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/index/rome/init.lua b/lua/mason-registry/index/rome/init.lua new file mode 100644 index 00000000..66faf621 --- /dev/null +++ b/lua/mason-registry/index/rome/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +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 }, + install = npm.packages { "rome", bin = { "rome" } }, +} diff --git a/lua/mason-registry/index/rstcheck/init.lua b/lua/mason-registry/index/rstcheck/init.lua new file mode 100644 index 00000000..0c939b04 --- /dev/null +++ b/lua/mason-registry/index/rstcheck/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "rstcheck", + desc = "Checks syntax of reStructuredText and code blocks nested within it.", + homepage = "https://rstcheck.readthedocs.io/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "rstcheck", bin = { "rstcheck" } }, +} diff --git a/lua/mason-registry/index/rubocop/init.lua b/lua/mason-registry/index/rubocop/init.lua new file mode 100644 index 00000000..8b502756 --- /dev/null +++ b/lua/mason-registry/index/rubocop/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local gem = require "mason-core.managers.gem" + +return Pkg.new { + name = "rubocop", + desc = [[The Ruby Linter/Formatter that Serves and Protects]], + homepage = "https://rubocop.org", + languages = { Pkg.Lang.Ruby }, + categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, + install = gem.packages { "rubocop", bin = { "rubocop" } }, +} diff --git a/lua/mason-registry/index/ruby-lsp/init.lua b/lua/mason-registry/index/ruby-lsp/init.lua new file mode 100644 index 00000000..d84487b3 --- /dev/null +++ b/lua/mason-registry/index/ruby-lsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local gem = require "mason-core.managers.gem" + +return Pkg.new { + name = "ruby-lsp", + desc = [[This gem is an implementation of the language server protocol specification for Ruby, used to improve editor features.]], + homepage = "https://github.com/Shopify/ruby-lsp", + languages = { Pkg.Lang.Ruby }, + categories = { Pkg.Cat.LSP }, + install = gem.packages { "ruby-lsp", bin = { "ruby-lsp" } }, +} diff --git a/lua/mason-registry/index/ruff-lsp/init.lua b/lua/mason-registry/index/ruff-lsp/init.lua new file mode 100644 index 00000000..dc9d42cd --- /dev/null +++ b/lua/mason-registry/index/ruff-lsp/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "ruff-lsp", + desc = [[A Language Server Protocol implementation for Ruff - An extremely fast Python linter, written in Rust.]], + homepage = "https://github.com/charliermarsh/ruff-lsp/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.LSP }, + install = pip3.packages { "ruff-lsp", bin = { "ruff-lsp" } }, +} diff --git a/lua/mason-registry/index/ruff/init.lua b/lua/mason-registry/index/ruff/init.lua new file mode 100644 index 00000000..354f013c --- /dev/null +++ b/lua/mason-registry/index/ruff/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "ruff", + desc = [[An extremely fast Python linter, written in Rust.]], + homepage = "https://github.com/charliermarsh/ruff/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "ruff", bin = { "ruff" } }, +} diff --git a/lua/mason-registry/index/rust-analyzer/init.lua b/lua/mason-registry/index/rust-analyzer/init.lua new file mode 100644 index 00000000..27294e29 --- /dev/null +++ b/lua/mason-registry/index/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 = _.dedent [[ + 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 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_x64_gnu, "rust-analyzer-x86_64-unknown-linux-gnu.gz"), + when(platform.is.linux_arm64_gnu, "rust-analyzer-aarch64-unknown-linux-gnu.gz"), + when(platform.is.linux_x64_musl, "rust-analyzer-x86_64-unknown-linux-musl.gz"), + when(platform.is.win_arm64, "rust-analyzer-aarch64-pc-windows-msvc.zip"), + when(platform.is.win_x64, "rust-analyzer-x86_64-pc-windows-msvc.zip") + ) + + platform.when { + unix = function() + github + .gunzip_release_file({ + repo = "rust-lang/rust-analyzer", + asset_file = asset_file, + out_file = "rust-analyzer", + }) + .with_receipt() + end, + win = function() + github + .unzip_release_file({ + repo = "rust-lang/rust-analyzer", + asset_file = asset_file, + }) + .with_receipt() + end, + } + 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/index/rustfmt/init.lua b/lua/mason-registry/index/rustfmt/init.lua new file mode 100644 index 00000000..c53aa98a --- /dev/null +++ b/lua/mason-registry/index/rustfmt/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 = "rustfmt", + desc = [[A tool for formatting Rust code according to style guidelines]], + homepage = "https://github.com/rust-lang/rustfmt", + categories = { Pkg.Cat.Formatter }, + languages = { Pkg.Lang.Rust }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + platform.when { + unix = function() + local source = github.untargz_release_file { + repo = "rust-lang/rustfmt", + asset_file = coalesce( + when(platform.is.mac, _.format "rustfmt_macos-x86_64_%s.tar.gz"), + when(platform.is.linux_x64, _.format "rustfmt_linux-x86_64_%s.tar.gz") + ), + } + source.with_receipt() + ctx:link_bin("rustfmt", path.concat { source.asset_file:gsub("%.tar%.gz$", ""), "rustfmt" }) + end, + win = function() + local source = github.unzip_release_file { + repo = "rust-lang/rustfmt", + asset_file = coalesce(when(platform.is.win_x64, _.format "rustfmt_windows-x86_64-msvc_%s.zip")), + } + source.with_receipt() + ctx:link_bin("rustfmt", path.concat { source.asset_file:gsub("%.zip$", ""), "rustfmt.exe" }) + end, + } + end, +} diff --git a/lua/mason-registry/index/rustywind/init.lua b/lua/mason-registry/index/rustywind/init.lua new file mode 100644 index 00000000..ab81db51 --- /dev/null +++ b/lua/mason-registry/index/rustywind/init.lua @@ -0,0 +1,18 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "rustywind", + desc = [[CLI for organizing Tailwind CSS classes]], + homepage = "https://github.com/avencera/rustywind", + languages = { + Pkg.Lang.JavaScript, + Pkg.Lang.TypeScript, + Pkg.Lang.JSX, + Pkg.Lang.HTML, + Pkg.Lang.Vue, + Pkg.Lang.Angular, + }, + categories = { Pkg.Cat.Formatter }, + install = npm.packages { "rustywind", bin = { "rustywind" } }, +} diff --git a/lua/mason-registry/index/salt-lsp/init.lua b/lua/mason-registry/index/salt-lsp/init.lua new file mode 100644 index 00000000..91f79be5 --- /dev/null +++ b/lua/mason-registry/index/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/index/selene/init.lua b/lua/mason-registry/index/selene/init.lua new file mode 100644 index 00000000..d6dfd963 --- /dev/null +++ b/lua/mason-registry/index/selene/init.lua @@ -0,0 +1,34 @@ +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 = "selene", + desc = [[A blazing-fast modern Lua linter written in Rust]], + homepage = "https://kampfkarren.github.io/selene/", + languages = { Pkg.Lang.Lua, Pkg.Lang.Luau }, + categories = { Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "Kampfkarren/selene", + asset_file = function(release) + local target = coalesce( + when(platform.is.mac, "selene-%s-macos.zip"), + when(platform.is.linux_x64, "selene-%s-linux.zip"), + when(platform.is.win_x64, "selene-%s-windows.zip") + ) + return target and target:format(release) + end, + }) + .with_receipt() + std.chmod("+x", { "selene" }) + ctx:link_bin("selene", platform.is.win and "selene.exe" or "selene") + end, +} diff --git a/lua/mason-registry/index/semgrep/init.lua b/lua/mason-registry/index/semgrep/init.lua new file mode 100644 index 00000000..45e766cb --- /dev/null +++ b/lua/mason-registry/index/semgrep/init.lua @@ -0,0 +1,22 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "semgrep", + desc = "Semgrep is a fast, open-source, static analysis engine for finding bugs, detecting vulnerabilities in third-party dependencies, and enforcing code standards.", + homepage = "https://github.com/returntocorp/semgrep", + languages = { + Pkg.Lang["C#"], + Pkg.Lang.Go, + Pkg.Lang.Java, + Pkg.Lang.JavaScript, + Pkg.Lang.JSON, + Pkg.Lang.PHP, + Pkg.Lang.Python, + Pkg.Lang.Ruby, + Pkg.Lang.TypeScript, + Pkg.Lang.Scala, + }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "semgrep", bin = { "semgrep" } }, +} diff --git a/lua/mason-registry/index/serve-d/init.lua b/lua/mason-registry/index/serve-d/init.lua new file mode 100644 index 00000000..77734960 --- /dev/null +++ b/lua/mason-registry/index/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/index/shellcheck/init.lua b/lua/mason-registry/index/shellcheck/init.lua new file mode 100644 index 00000000..4d6ef2bc --- /dev/null +++ b/lua/mason-registry/index/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/index/shellharden/init.lua b/lua/mason-registry/index/shellharden/init.lua new file mode 100644 index 00000000..847dc766 --- /dev/null +++ b/lua/mason-registry/index/shellharden/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local cargo = require "mason-core.managers.cargo" + +return Pkg.new { + name = "shellharden", + desc = [[The corrective bash syntax highlighter]], + homepage = "https://github.com/anordal/shellharden", + languages = { Pkg.Lang.Bash }, + categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, + install = cargo.crate("shellharden", { bin = { "shellharden" } }), +} diff --git a/lua/mason-registry/index/shfmt/init.lua b/lua/mason-registry/index/shfmt/init.lua new file mode 100644 index 00000000..798a7968 --- /dev/null +++ b/lua/mason-registry/index/shfmt/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 = "shfmt", + desc = [[A shell formatter (sh/bash/mksh)]], + homepage = "https://github.com/mvdan/sh", + languages = { Pkg.Lang.Bash, Pkg.Lang.Mksh, Pkg.Lang.Shell }, + categories = { Pkg.Cat.Formatter }, + install = function(ctx) + github + .download_release_file({ + repo = "mvdan/sh", + out_file = platform.is.win and "shfmt.exe" or "shfmt", + asset_file = coalesce( + when(platform.is.mac_arm64, _.format "shfmt_%s_darwin_arm64"), + when(platform.is.mac_x64, _.format "shfmt_%s_darwin_amd64"), + when(platform.is.linux_arm64, _.format "shfmt_%s_linux_arm64"), + when(platform.is.linux_x64, _.format "shfmt_%s_linux_amd64"), + when(platform.is.win_x86, _.format "shfmt_%s_windows_386.exe"), + when(platform.is.win_x64, _.format "shfmt_%s_windows_amd64.exe") + ), + }) + .with_receipt() + std.chmod("+x", { "shfmt" }) + ctx:link_bin("shfmt", platform.is.win and "shfmt.exe" or "shfmt") + end, +} diff --git a/lua/mason-registry/index/shopify-theme-check/init.lua b/lua/mason-registry/index/shopify-theme-check/init.lua new file mode 100644 index 00000000..bba774f8 --- /dev/null +++ b/lua/mason-registry/index/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/index/slint-lsp/init.lua b/lua/mason-registry/index/slint-lsp/init.lua new file mode 100644 index 00000000..50e26725 --- /dev/null +++ b/lua/mason-registry/index/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/index/smithy-language-server/init.lua b/lua/mason-registry/index/smithy-language-server/init.lua new file mode 100644 index 00000000..cef679c5 --- /dev/null +++ b/lua/mason-registry/index/smithy-language-server/init.lua @@ -0,0 +1,38 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local fs = require "mason-core.fs" +local git = require "mason-core.managers.git" +local path = require "mason-core.path" + +return Pkg.new { + name = "smithy-language-server", + desc = "A Language Server Protocol implementation for the Smithy IDL.", + homepage = "https://github.com/awslabs/smithy-language-server", + languages = { Pkg.Lang.Smithy }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + git.clone({ "https://github.com/awslabs/smithy-language-server" }).with_receipt() + ctx:promote_cwd() + ctx.spawn.gradlew { + "build", + with_paths = { ctx.cwd:get() }, + } + + local version = _.trim(ctx.fs:read_file "VERSION") + + ctx:link_bin( + "smithy-language-server", + ctx:write_shell_exec_wrapper( + "smithy-language-server", + ("java -jar %q"):format(path.concat { + ctx.package:get_install_path(), + "build", + "libs", + ("smithy-language-server-%s.jar"):format(version), + }) + ) + ) + end, +} diff --git a/lua/mason-registry/index/solang/init.lua b/lua/mason-registry/index/solang/init.lua new file mode 100644 index 00000000..b8b16b86 --- /dev/null +++ b/lua/mason-registry/index/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, "llvm14.0-mac-intel.tar.xz"), + when(platform.is.mac_arm64, "llvm14.0-mac-arm.tar.xz"), + when(platform.is.linux_x64, "llvm14.0-linux-x86-64.tar.xz"), + when(platform.is.linux_arm64, "llvm14.0-linux-arm64.tar.xz"), + when(platform.is.win_x64, "llvm14.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/index/solargraph/init.lua b/lua/mason-registry/index/solargraph/init.lua new file mode 100644 index 00000000..e69f84cd --- /dev/null +++ b/lua/mason-registry/index/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/index/solhint/init.lua b/lua/mason-registry/index/solhint/init.lua new file mode 100644 index 00000000..be55e2f5 --- /dev/null +++ b/lua/mason-registry/index/solhint/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "solhint", + desc = [[Solhint is a linting utility for Solidity code]], + homepage = "https://protofire.github.io/solhint/", + languages = { Pkg.Lang.Solidity }, + categories = { Pkg.Cat.Linter }, + install = npm.packages { "solhint", bin = { "solhint" } }, +} diff --git a/lua/mason-registry/index/solidity-ls/init.lua b/lua/mason-registry/index/solidity-ls/init.lua new file mode 100644 index 00000000..d5a9259e --- /dev/null +++ b/lua/mason-registry/index/solidity-ls/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "solidity-ls", + desc = [[Solidity language server.]], + homepage = "https://github.com/qiuxiang/solidity-ls", + languages = { Pkg.Lang.Solidity }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "solidity-ls", bin = { "solidity-ls" } }, +} diff --git a/lua/mason-registry/index/solidity/init.lua b/lua/mason-registry/index/solidity/init.lua new file mode 100644 index 00000000..d3b0385c --- /dev/null +++ b/lua/mason-registry/index/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/index/sorbet/init.lua b/lua/mason-registry/index/sorbet/init.lua new file mode 100644 index 00000000..4b111542 --- /dev/null +++ b/lua/mason-registry/index/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/index/sourcery/init.lua b/lua/mason-registry/index/sourcery/init.lua new file mode 100644 index 00000000..0122af55 --- /dev/null +++ b/lua/mason-registry/index/sourcery/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "sourcery", + desc = _.dedent [[ + 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/index/spectral-language-server/init.lua b/lua/mason-registry/index/spectral-language-server/init.lua new file mode 100644 index 00000000..57cc7ff4 --- /dev/null +++ b/lua/mason-registry/index/spectral-language-server/init.lua @@ -0,0 +1,35 @@ +local Pkg = require "mason-core.package" +local git = require "mason-core.managers.git" +local github = require "mason-core.managers.github" +local _ = require "mason-core.functional" +local Optional = require "mason-core.optional" +local path = require "mason-core.path" + +return Pkg.new { + name = "spectral-language-server", + desc = _.dedent [[ + Awesome Spectral JSON/YAML linter with OpenAPI/AsyncAPI support. Spectral is a flexible object linter with out + of the box support for OpenAPI v2 and v3, JSON Schema, and AsyncAPI. + ]], + homepage = "https://github.com/stoplightio/vscode-spectral", + languages = { Pkg.Lang.JSON, Pkg.Lang.YAML }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local source = github.tag { repo = "stoplightio/vscode-spectral" } + source.with_receipt() + ctx.fs:mkdir "build" + ctx:chdir("build", function() + git.clone { "https://github.com/stoplightio/vscode-spectral", version = Optional.of(source.tag) } + ctx.spawn.npm { "install" } + ctx.spawn.node { "make", "package" } + end) + ctx.fs:rename(path.concat { "build", "dist", "server", "index.js" }, "spectral-language-server.js") + ctx.fs:rmrf "build" + ctx:link_bin( + "spectral-language-server", + ctx:write_node_exec_wrapper("spectral-language-server", "spectral-language-server.js") + ) + end, +} diff --git a/lua/mason-registry/index/sql-formatter/init.lua b/lua/mason-registry/index/sql-formatter/init.lua new file mode 100644 index 00000000..c3bcf10f --- /dev/null +++ b/lua/mason-registry/index/sql-formatter/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "sql-formatter", + desc = [[A whitespace formatter for different query languages]], + homepage = "https://sql-formatter-org.github.io/sql-formatter/", + languages = { Pkg.Lang.SQL }, + categories = { Pkg.Cat.Formatter }, + install = npm.packages { "sql-formatter", bin = { "sql-formatter" } }, +} diff --git a/lua/mason-registry/index/sqlfluff/init.lua b/lua/mason-registry/index/sqlfluff/init.lua new file mode 100644 index 00000000..bbd9ed7d --- /dev/null +++ b/lua/mason-registry/index/sqlfluff/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "sqlfluff", + desc = [[SQLFluff is a dialect-flexible and configurable SQL linter]], + homepage = "https://github.com/sqlfluff/sqlfluff", + languages = { Pkg.Lang.SQL }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "sqlfluff", bin = { "sqlfluff" } }, +} diff --git a/lua/mason-registry/index/sqlls/init.lua b/lua/mason-registry/index/sqlls/init.lua new file mode 100644 index 00000000..7d719838 --- /dev/null +++ b/lua/mason-registry/index/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/index/sqls/init.lua b/lua/mason-registry/index/sqls/init.lua new file mode 100644 index 00000000..eb3215ea --- /dev/null +++ b/lua/mason-registry/index/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/index/standardrb/init.lua b/lua/mason-registry/index/standardrb/init.lua new file mode 100644 index 00000000..eefb361f --- /dev/null +++ b/lua/mason-registry/index/standardrb/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local gem = require "mason-core.managers.gem" + +return Pkg.new { + name = "standardrb", + desc = [[Ruby Style Guide, with linter and automatic code fixer]], + homepage = "https://github.com/testdouble/standard/", + languages = { Pkg.Lang.Ruby }, + categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, + install = gem.packages { "standard", bin = { "standardrb" } }, +} diff --git a/lua/mason-registry/index/staticcheck/init.lua b/lua/mason-registry/index/staticcheck/init.lua new file mode 100644 index 00000000..ab3f0fff --- /dev/null +++ b/lua/mason-registry/index/staticcheck/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local go = require "mason-core.managers.go" + +return Pkg.new { + name = "staticcheck", + desc = [[The advanced Go linter]], + homepage = "https://staticcheck.io/", + categories = { Pkg.Cat.Linter }, + languages = { Pkg.Lang.Go }, + install = go.packages { "honnef.co/go/tools/cmd/staticcheck", bin = { "staticcheck" } }, +} diff --git a/lua/mason-registry/index/stylelint-lsp/init.lua b/lua/mason-registry/index/stylelint-lsp/init.lua new file mode 100644 index 00000000..999ab033 --- /dev/null +++ b/lua/mason-registry/index/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/index/stylua/init.lua b/lua/mason-registry/index/stylua/init.lua new file mode 100644 index 00000000..59adff44 --- /dev/null +++ b/lua/mason-registry/index/stylua/init.lua @@ -0,0 +1,31 @@ +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 = "stylua", + desc = [[An opinionated Lua code formatter]], + homepage = "https://github.com/JohnnyMorganz/StyLua", + languages = { Pkg.Lang.Lua, Pkg.Lang.Luau }, + categories = { Pkg.Cat.Formatter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + repo = "johnnymorganz/stylua", + asset_file = coalesce( + when(platform.is.mac_arm64, "stylua-macos-aarch64.zip"), + when(platform.is.mac_x64, "stylua-macos.zip"), + when(platform.is.linux_x64, "stylua-linux-x86_64.zip"), + when(platform.is.linux_arm64, "stylua-linux-aarch64.zip"), + when(platform.is.win_x64, "stylua-win64.zip") + ), + }) + .with_receipt() + ctx:link_bin("stylua", platform.is.win and "stylua.exe" or "stylua") + end, +} diff --git a/lua/mason-registry/index/svelte-language-server/init.lua b/lua/mason-registry/index/svelte-language-server/init.lua new file mode 100644 index 00000000..ff495bda --- /dev/null +++ b/lua/mason-registry/index/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/index/svlangserver/init.lua b/lua/mason-registry/index/svlangserver/init.lua new file mode 100644 index 00000000..dceef60d --- /dev/null +++ b/lua/mason-registry/index/svlangserver/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "svlangserver", + desc = _.dedent [[ + 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/index/svls/init.lua b/lua/mason-registry/index/svls/init.lua new file mode 100644 index 00000000..12e6b297 --- /dev/null +++ b/lua/mason-registry/index/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/index/tailwindcss-language-server/init.lua b/lua/mason-registry/index/tailwindcss-language-server/init.lua new file mode 100644 index 00000000..9bde697a --- /dev/null +++ b/lua/mason-registry/index/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/index/taplo/init.lua b/lua/mason-registry/index/taplo/init.lua new file mode 100644 index 00000000..b84d890f --- /dev/null +++ b/lua/mason-registry/index/taplo/init.lua @@ -0,0 +1,51 @@ +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 std = require "mason-core.managers.std" + +local coalesce, when = _.coalesce, _.when + +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 }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + platform.when { + unix = function() + github + .gunzip_release_file({ + repo = "tamasfe/taplo", + asset_file = coalesce( + when(platform.is.mac_arm64, "taplo-full-darwin-aarch64.gz"), + when(platform.is.mac_x64, "taplo-full-darwin-x86_64.gz"), + when(platform.is.linux_x64, "taplo-full-linux-x86_64.gz"), + when(platform.is.linux_x86, "taplo-full-linux-x86.gz"), + when(platform.is.linux_arm64, "taplo-full-linux-aarch64.gz") + ), + out_file = "taplo", + }) + .with_receipt() + std.chmod("+x", { "taplo" }) + ctx:link_bin("taplo", "taplo") + end, + win = function() + github + .unzip_release_file({ + repo = "tamasfe/taplo", + asset_file = coalesce( + when(platform.is.win_x64, "taplo-full-windows-x86_64.zip"), + when(platform.is.win_x86, "taplo-full-windows-x86.zip") + ), + out_file = "taplo.zip", + }) + .with_receipt() + ctx:link_bin("taplo", "taplo.exe") + end, + } + end, +} diff --git a/lua/mason-registry/index/teal-language-server/init.lua b/lua/mason-registry/index/teal-language-server/init.lua new file mode 100644 index 00000000..fcbdf9c4 --- /dev/null +++ b/lua/mason-registry/index/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/index/tectonic/init.lua b/lua/mason-registry/index/tectonic/init.lua new file mode 100644 index 00000000..a35a7fdf --- /dev/null +++ b/lua/mason-registry/index/tectonic/init.lua @@ -0,0 +1,62 @@ +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 Optional = require "mason-core.optional" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "tectonic", + desc = [[Tectonic is a modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.]], + homepage = "https://tectonic-typesetting.github.io", + languages = { Pkg.Lang.LaTeX }, + categories = { Pkg.Cat.Compiler }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "tectonic-typesetting/tectonic" + local function format_release_file(file) + return _.compose(_.format(file), _.gsub("^tectonic@", "")) + end + + platform.when { + unix = function() + github + .untargz_release_file({ + repo = repo, + version = Optional.of "tectonic@0.12.0", + asset_file = coalesce( + when(platform.is.mac_x64, format_release_file "tectonic-%s-x86_64-apple-darwin.tar.gz"), + when(platform.is.mac_arm64, format_release_file "tectonic-%s-aarch64-apple-darwin.tar.gz"), + when( + platform.is.linux_x64_gnu, + format_release_file "tectonic-%s-x86_64-unknown-linux-gnu.tar.gz" + ), + when( + platform.is.linux_x64, + format_release_file "tectonic-%s-x86_64-unknown-linux-musl.tar.gz" + ), + when( + platform.is.linux_arm, + format_release_file "tectonic-%s-arm-unknown-linux-musleabihf.tar.gz" + ) + ), + }) + .with_receipt() + std.chmod("+x", { "tectonic" }) + ctx:link_bin("tectonic", "tectonic") + end, + win = function() + github + .unzip_release_file({ + repo = repo, + asset_file = format_release_file "tectonic-%s-x86_64-pc-windows-msvc.zip", + }) + .with_receipt() + ctx:link_bin("tectonic", "tectonic.exe") + end, + } + end, +} diff --git a/lua/mason-registry/index/terraform-ls/init.lua b/lua/mason-registry/index/terraform-ls/init.lua new file mode 100644 index 00000000..186f7e9e --- /dev/null +++ b/lua/mason-registry/index/terraform-ls/init.lua @@ -0,0 +1,47 @@ +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 = "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) + local source = github.release_version { + repo = "hashicorp/terraform-ls", + } + source.with_receipt() + + local version = _.strip_prefix("v", source.release) + + 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.linux_x86, "terraform-ls_%s_linux_386.zip"), + when(platform.is.win_arm64, "terraform-ls_%s_windows_arm64.zip"), + when(platform.is.win_x64, "terraform-ls_%s_windows_amd64.zip"), + when(platform.is.win_x86, "terraform-ls_%s_windows_386.zip") + ) + + assert(target, "Current platform is not supported.") + + std.download_file( + ("https://releases.hashicorp.com/terraform-ls/%s/%s"):format(version, target:format(version)), + "terraform-ls.zip" + ) + std.unzip("terraform-ls.zip", ".") + + ctx:link_bin("terraform-ls", platform.is.win and "terraform-ls.exe" or "terraform-ls") + end, +} diff --git a/lua/mason-registry/index/texlab/init.lua b/lua/mason-registry/index/texlab/init.lua new file mode 100644 index 00000000..9a31abbb --- /dev/null +++ b/lua/mason-registry/index/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/index/textlint/init.lua b/lua/mason-registry/index/textlint/init.lua new file mode 100644 index 00000000..c5126793 --- /dev/null +++ b/lua/mason-registry/index/textlint/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "textlint", + desc = [[The pluggable natural language linter for text and markdown.]], + homepage = "https://textlint.github.io", + languages = { Pkg.Lang.Text, Pkg.Lang.Markdown }, + categories = { Pkg.Cat.Linter }, + install = npm.packages { "textlint", bin = { "textlint" } }, +} diff --git a/lua/mason-registry/index/tflint/init.lua b/lua/mason-registry/index/tflint/init.lua new file mode 100644 index 00000000..a886edc4 --- /dev/null +++ b/lua/mason-registry/index/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/index/twigcs/init.lua b/lua/mason-registry/index/twigcs/init.lua new file mode 100644 index 00000000..4a0a638a --- /dev/null +++ b/lua/mason-registry/index/twigcs/init.lua @@ -0,0 +1,36 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local github = require "mason-core.managers.github" +local std = require "mason-core.managers.std" +local platform = require "mason-core.platform" + +return Pkg.new { + name = "twigcs", + desc = _.dedent [[ + The missing checkstyle for twig! Twigcs aims to be what phpcs is to php. It checks your codebase for violations + on coding standards. + ]], + homepage = "https://github.com/friendsoftwig/twigcs", + languages = { Pkg.Lang.Twig }, + categories = { Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "friendsoftwig/twigcs", + asset_file = "twigcs.phar", + out_file = platform.is.win and "twigcs.phar" or "twigcs", + }) + .with_receipt() + platform.when { + unix = function() + std.chmod("+x", { "twigcs" }) + ctx:link_bin("twigcs", "twigcs") + end, + win = function() + ctx:link_bin("twigcs", ctx:write_php_exec_wrapper("twigcs", "twigcs.phar")) + end, + } + end, +} diff --git a/lua/mason-registry/index/typescript-language-server/init.lua b/lua/mason-registry/index/typescript-language-server/init.lua new file mode 100644 index 00000000..d978c4e1 --- /dev/null +++ b/lua/mason-registry/index/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/index/unocss-language-server/init.lua b/lua/mason-registry/index/unocss-language-server/init.lua new file mode 100644 index 00000000..5d00c873 --- /dev/null +++ b/lua/mason-registry/index/unocss-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 = "unocss-language-server", + desc = [[Language Server Protocol implementation for UnoCSS.]], + homepage = "https://github.com/xna00/unocss-language-server", + languages = { Pkg.Lang.CSS }, + categories = { Pkg.Cat.LSP }, + install = npm.packages { "unocss-language-server", bin = { "unocss-language-server" } }, +} diff --git a/lua/mason-registry/index/usort/init.lua b/lua/mason-registry/index/usort/init.lua new file mode 100644 index 00000000..03c4d3a8 --- /dev/null +++ b/lua/mason-registry/index/usort/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "usort", + desc = [[Safe, minimal import sorting for Python projects.]], + homepage = "https://usort.readthedocs.io/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "usort", bin = { "usort" } }, +} diff --git a/lua/mason-registry/index/vacuum/init.lua b/lua/mason-registry/index/vacuum/init.lua new file mode 100644 index 00000000..cd4b6410 --- /dev/null +++ b/lua/mason-registry/index/vacuum/init.lua @@ -0,0 +1,43 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local platform = require "mason-core.platform" +local _ = require "mason-core.functional" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "vacuum", + desc = _.dedent [[ + vacuum is the worlds fastest OpenAPI 3, OpenAPI 2 / Swagger linter and quality analysis tool. + Built in go, it tears through API specs faster than you can think. + vacuum is compatible with Spectral rulesets and generates compatible reports. + ]], + homepage = "https://github.com/daveshanley/vacuum", + languages = { Pkg.Lang.OpenAPI }, + categories = { Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + ---@param template string + local function release_file(template) + return _.compose(_.format(template), _.strip_prefix "v") + end + + github + .untargz_release_file({ + repo = "daveshanley/vacuum", + asset_file = coalesce( + when(platform.is.darwin_arm64, release_file "vacuum_%s_darwin_arm64.tar.gz"), + when(platform.is.darwin_x64, release_file "vacuum_%s_darwin_x86_64.tar.gz"), + when(platform.is.linux_arm64, release_file "vacuum_%s_linux_arm64.tar.gz"), + when(platform.is.linux_x64, release_file "vacuum_%s_linux_x86_64.tar.gz"), + when(platform.is.linux_x86, release_file "vacuum_%s_linux_i386.tar.gz"), + when(platform.is.win_arm64, release_file "vacuum_%s_windows_arm64.tar.gz"), + when(platform.is.win_x64, release_file "vacuum_%s_windows_x86_64.tar.gz"), + when(platform.is.win_x86, release_file "vacuum_%s_windows_i386.tar.gz") + ), + }) + .with_receipt() + ctx:link_bin("vacuum", platform.is.win and "vacuum.exe" or "vacuum") + end, +} diff --git a/lua/mason-registry/index/vala-language-server/init.lua b/lua/mason-registry/index/vala-language-server/init.lua new file mode 100644 index 00000000..5708205c --- /dev/null +++ b/lua/mason-registry/index/vala-language-server/init.lua @@ -0,0 +1,36 @@ +local Pkg = require "mason-core.package" +local std = require "mason-core.managers.std" +local github = require "mason-core.managers.github" +local git = require "mason-core.managers.git" +local platform = require "mason-core.platform" +local path = require "mason-core.path" +local Optional = require "mason-core.optional" + +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 repo = "vala-lang/vala-language-server" + local source = github.tag { repo = repo } + source.with_receipt() + git.clone { ("https://github.com/%s.git"):format(repo), version = Optional.of(source.tag) } + + local install_dir = ctx.cwd:get() + ctx.spawn.meson { "setup", ("-Dprefix=%s"):format(install_dir), "build" } + ctx.spawn.meson { "compile", "-C", "build" } + ctx.spawn.meson { "install", "-C", "build" } + 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/index/vale/init.lua b/lua/mason-registry/index/vale/init.lua new file mode 100644 index 00000000..2d65a929 --- /dev/null +++ b/lua/mason-registry/index/vale/init.lua @@ -0,0 +1,49 @@ +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 = "vale", + desc = [[📝 A syntax-aware linter for prose built with speed and extensibility in mind.]], + homepage = "https://vale.sh/", + languages = { Pkg.Lang.Text, Pkg.Lang.Markdown, Pkg.Lang.LaTeX }, + categories = { Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local repo = "errata-ai/vale" + local release_file = assert( + coalesce( + when(platform.is.mac_x64, "vale_%s_macOS_64-bit.tar.gz"), + when(platform.is.mac_arm64, "vale_%s_macOS_arm64.tar.gz"), + when(platform.is.linux_x64, "vale_%s_Linux_64-bit.tar.gz"), + when(platform.is.linux_arm64, "vale_%s_Linux_arm64.tar.gz"), + when(platform.is.win_x64, "vale_%s_Windows_64-bit.zip") + ), + "Current platform is not supported." + ) + + platform.when { + unix = function() + github + .untargz_release_file({ + repo = repo, + asset_file = _.compose(_.format(release_file), _.gsub("^v", "")), + }) + .with_receipt() + end, + win = function() + github + .unzip_release_file({ + repo = repo, + asset_file = _.compose(_.format(release_file), _.gsub("^v", "")), + }) + .with_receipt() + end, + } + ctx:link_bin("vale", platform.is.win and "vale.exe" or "vale") + end, +} diff --git a/lua/mason-registry/index/verible/init.lua b/lua/mason-registry/index/verible/init.lua new file mode 100644 index 00000000..b0b2fa9c --- /dev/null +++ b/lua/mason-registry/index/verible/init.lua @@ -0,0 +1,101 @@ +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 = coalesce( + when( + os_dist.id == "ubuntu" and platform.arch == "x64", + coalesce( + when( + os_dist.version.major == 16, + _.format "verible-%s-Ubuntu-16.04-xenial-x86_64.tar.gz" + ), + when( + os_dist.version.major == 18, + _.format "verible-%s-Ubuntu-18.04-bionic-x86_64.tar.gz" + ), + when( + os_dist.version.major == 20, + _.format "verible-%s-Ubuntu-20.04-focal-x86_64.tar.gz" + ), + when( + os_dist.version.major == 22, + _.format "verible-%s-Ubuntu-22.04-jammy-x86_64.tar.gz" + ) + ) + ), + when( + os_dist.id == "centos" and platform.arch == "x64", + coalesce( + when( + os_dist.version.major == 7, + _.format "verible-%s-CentOS-7.9.2009-Core-x86_64.tar.gz" + ) + ) + ), + when(platform.is.linux_x64_gnu, _.format "verible-%s-Ubuntu-20.04-focal-x86_64.tar.gz") + ), + } + 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 = coalesce(when(platform.is.win_x64, _.format "verible-%s-win64.zip")), + } + 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/index/veryl-ls/init.lua b/lua/mason-registry/index/veryl-ls/init.lua new file mode 100644 index 00000000..6b45e20f --- /dev/null +++ b/lua/mason-registry/index/veryl-ls/init.lua @@ -0,0 +1,13 @@ +local Pkg = require "mason-core.package" +local cargo = require "mason-core.managers.cargo" + +return Pkg.new { + name = "veryl-ls", + desc = [[Veryl language server]], + homepage = "https://github.com/dalance/veryl", + languages = { Pkg.Lang.Veryl }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("veryl-ls", { + bin = { "veryl-ls" }, + }), +} diff --git a/lua/mason-registry/index/vetur-vls/init.lua b/lua/mason-registry/index/vetur-vls/init.lua new file mode 100644 index 00000000..5bb0deff --- /dev/null +++ b/lua/mason-registry/index/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/index/vim-language-server/init.lua b/lua/mason-registry/index/vim-language-server/init.lua new file mode 100644 index 00000000..e24e2f3b --- /dev/null +++ b/lua/mason-registry/index/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/index/vint/init.lua b/lua/mason-registry/index/vint/init.lua new file mode 100644 index 00000000..694a81aa --- /dev/null +++ b/lua/mason-registry/index/vint/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "vint", + desc = [[Fast and Highly Extensible Vim script Language Lint implemented in Python.]], + homepage = "https://github.com/Vimjas/vint", + languages = { Pkg.Lang.VimScript }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "vim-vint", bin = { "vint" } }, +} diff --git a/lua/mason-registry/index/visualforce-language-server/init.lua b/lua/mason-registry/index/visualforce-language-server/init.lua new file mode 100644 index 00000000..f971ee7f --- /dev/null +++ b/lua/mason-registry/index/visualforce-language-server/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 path = require "mason-core.path" + +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 + ---@param ctx InstallContext + install = function(ctx) + github + .unzip_release_file({ + asset_file = _.compose(_.format "salesforcedx-vscode-visualforce-%s.vsix", _.gsub("^v", "")), + repo = "forcedotcom/salesforcedx-vscode", + }) + .with_receipt() + + ctx:link_bin( + "visualforce-language-server", + ctx:write_node_exec_wrapper( + "visualforce-language-server", + path.concat { + "extension", + "dist", + "visualforceServer.js", + } + ) + ) + end, +} diff --git a/lua/mason-registry/index/vls/init.lua b/lua/mason-registry/index/vls/init.lua new file mode 100644 index 00000000..92ac761b --- /dev/null +++ b/lua/mason-registry/index/vls/init.lua @@ -0,0 +1,35 @@ +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" + + github + .download_release_file({ + version = Optional.of "latest", + 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/index/vtsls/init.lua b/lua/mason-registry/index/vtsls/init.lua new file mode 100644 index 00000000..89254fc7 --- /dev/null +++ b/lua/mason-registry/index/vtsls/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "vtsls", + desc = [[LSP wrapper around the TypeScript extension bundled with VSCode.]], + homepage = "https://github.com/yioneko/vtsls", + categories = { Pkg.Cat.LSP }, + languages = { Pkg.Lang.TypeScript, Pkg.Lang.JavaScript }, + install = npm.packages { "@vtsls/language-server", bin = { "vtsls" } }, +} diff --git a/lua/mason-registry/index/vue-language-server/init.lua b/lua/mason-registry/index/vue-language-server/init.lua new file mode 100644 index 00000000..a9405a41 --- /dev/null +++ b/lua/mason-registry/index/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/index/vulture/init.lua b/lua/mason-registry/index/vulture/init.lua new file mode 100644 index 00000000..d6098f5c --- /dev/null +++ b/lua/mason-registry/index/vulture/init.lua @@ -0,0 +1,19 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "vulture", + desc = _.dedent [[ + Vulture finds unused code in Python programs. This is useful for cleaning up and finding errors in large code + bases. If you run Vulture on both your library and test suite you can find untested code. + + Due to Python's dynamic nature, static code analyzers like Vulture are likely to miss some dead code. Also, code + that is only called implicitly may be reported as unused. Nonetheless, Vulture can be a very helpful tool for + higher code quality. + ]], + homepage = "https://github.com/jendrikseipp/vulture", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "vulture", bin = { "vulture" } }, +} diff --git a/lua/mason-registry/index/wgsl-analyzer/init.lua b/lua/mason-registry/index/wgsl-analyzer/init.lua new file mode 100644 index 00000000..c5ff2bb8 --- /dev/null +++ b/lua/mason-registry/index/wgsl-analyzer/init.lua @@ -0,0 +1,17 @@ +local Pkg = require "mason-core.package" +local cargo = require "mason-core.managers.cargo" + +return Pkg.new { + name = "wgsl-analyzer", + desc = [[A language server implementation for the WGSL shading language]], + homepage = "https://github.com/wgsl-analyzer/wgsl-analyzer", + languages = { Pkg.Lang.WGSL }, + categories = { Pkg.Cat.LSP }, + install = cargo.crate("wgsl_analyzer", { + git = { + url = "https://github.com/wgsl-analyzer/wgsl-analyzer", + tag = true, + }, + bin = { "wgsl_analyzer" }, + }), +} diff --git a/lua/mason-registry/index/write-good/init.lua b/lua/mason-registry/index/write-good/init.lua new file mode 100644 index 00000000..6ca66d46 --- /dev/null +++ b/lua/mason-registry/index/write-good/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "write-good", + desc = [[Naive linter for English prose for developers who can't write good and wanna learn to do other stuff good too.]], + homepage = "https://github.com/btford/write-good", + languages = { Pkg.Lang.Markdown }, + categories = { Pkg.Cat.Linter }, + install = npm.packages { "write-good", bin = { "write-good" } }, +} diff --git a/lua/mason-registry/index/xmlformatter/init.lua b/lua/mason-registry/index/xmlformatter/init.lua new file mode 100644 index 00000000..9a8e0285 --- /dev/null +++ b/lua/mason-registry/index/xmlformatter/init.lua @@ -0,0 +1,17 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "xmlformatter", + desc = _.dedent [[ + xmlformatter is an Open Source Python package that provides formatting of XML documents. xmlformatter differs + from others formatters by handling whitespaces by a distinct set of formatting rules - formatting element + content by an object style and mixed content by a text style. You may find xmlformatter useful for corrections + and presentations. + ]], + homepage = "https://github.com/pamoller/xmlformatter", + languages = { Pkg.Lang.XML }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "xmlformatter", bin = { "xmlformat" } }, +} diff --git a/lua/mason-registry/index/xo/init.lua b/lua/mason-registry/index/xo/init.lua new file mode 100644 index 00000000..17769ae7 --- /dev/null +++ b/lua/mason-registry/index/xo/init.lua @@ -0,0 +1,14 @@ +local Pkg = require "mason-core.package" +local npm = require "mason-core.managers.npm" + +return Pkg.new { + name = "xo", + desc = [[JavaScript/TypeScript linter (ESLint wrapper) with great defaults]], + homepage = "https://github.com/xojs/xo", + languages = { + Pkg.Lang.JavaScript, + Pkg.Lang.TypeScript, + }, + categories = { Pkg.Cat.Linter }, + install = npm.packages { "xo", bin = { "xo" } }, +} diff --git a/lua/mason-registry/index/yaml-language-server/init.lua b/lua/mason-registry/index/yaml-language-server/init.lua new file mode 100644 index 00000000..67010889 --- /dev/null +++ b/lua/mason-registry/index/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/index/yamlfmt/init.lua b/lua/mason-registry/index/yamlfmt/init.lua new file mode 100644 index 00000000..9f770f58 --- /dev/null +++ b/lua/mason-registry/index/yamlfmt/init.lua @@ -0,0 +1,35 @@ +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 = "yamlfmt", + desc = [[yamlfmt is an extensible command line tool or library to format yaml files.]], + homepage = "https://github.com/google/yamlfmt", + categories = { Pkg.Cat.Formatter }, + languages = { Pkg.Lang.YAML }, + install = function(ctx) + ---@param template_string string + local function release_file(template_string) + return _.compose(_.format(template_string), _.gsub("^v", "")) + end + + github + .untargz_release_file({ + repo = "google/yamlfmt", + asset_file = coalesce( + when(platform.is.mac_arm64, release_file "yamlfmt_%s_Darwin_arm64.tar.gz"), + when(platform.is.mac_x64, release_file "yamlfmt_%s_Darwin_x86_64.tar.gz"), + when(platform.is.linux_arm64, release_file "yamlfmt_%s_Linux_arm64.tar.gz"), + when(platform.is.linux_x64, release_file "yamlfmt_%s_Linux_x86_64.tar.gz"), + when(platform.is.win_x86, release_file "yamlfmt_%s_Windows_i386.tar.gz"), + when(platform.is.win_x64, release_file "yamlfmt_%s_Windows_x86_64.tar.gz") + ), + }) + .with_receipt() + ctx:link_bin("yamlfmt", platform.is.win and "yamlfmt.exe" or "yamlfmt") + end, +} diff --git a/lua/mason-registry/index/yamllint/init.lua b/lua/mason-registry/index/yamllint/init.lua new file mode 100644 index 00000000..334ac86e --- /dev/null +++ b/lua/mason-registry/index/yamllint/init.lua @@ -0,0 +1,15 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" +local _ = require "mason-core.functional" + +return Pkg.new { + name = "yamllint", + desc = _.dedent [[ + Linter for YAML files. yamllint does not only check for syntax validity, but for weirdnesses like key repetition + and cosmetic problems such as lines length, trailing spaces, indentation, etc. + ]], + homepage = "https://github.com/adrienverge/yamllint", + languages = { Pkg.Lang.YAML }, + categories = { Pkg.Cat.Linter }, + install = pip3.packages { "yamllint", bin = { "yamllint" } }, +} diff --git a/lua/mason-registry/index/yapf/init.lua b/lua/mason-registry/index/yapf/init.lua new file mode 100644 index 00000000..15041f2f --- /dev/null +++ b/lua/mason-registry/index/yapf/init.lua @@ -0,0 +1,11 @@ +local Pkg = require "mason-core.package" +local pip3 = require "mason-core.managers.pip3" + +return Pkg.new { + name = "yapf", + desc = [[YAPF, Yet Another Python Formatter]], + homepage = "https://pypi.org/project/yapf/", + languages = { Pkg.Lang.Python }, + categories = { Pkg.Cat.Formatter }, + install = pip3.packages { "yapf", "toml", bin = { "yapf" } }, +} diff --git a/lua/mason-registry/index/zk/init.lua b/lua/mason-registry/index/zk/init.lua new file mode 100644 index 00000000..8934c597 --- /dev/null +++ b/lua/mason-registry/index/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/index/zls/init.lua b/lua/mason-registry/index/zls/init.lua new file mode 100644 index 00000000..0ab94850 --- /dev/null +++ b/lua/mason-registry/index/zls/init.lua @@ -0,0 +1,36 @@ +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_arm64, "aarch64-macos.tar.zst"), + when(platform.is.mac_x64, "x86_64-macos.tar.zst"), + when(platform.is.linux_x64, "x86_64-linux.tar.zst"), + when(platform.is.linux_x86, "i386-linux.tar.zst"), + when(platform.is.win_x64, "x86_64-windows.tar.zst"), + when(platform.is.win_x86, "i386-windows.tar.zst") + ) + github + .untarzst_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-registry/init.lua b/lua/mason-registry/init.lua index 164e9c02..2aa445a4 100644 --- a/lua/mason-registry/init.lua +++ b/lua/mason-registry/init.lua @@ -4,14 +4,21 @@ local _ = require "mason-core.functional" local Optional = require "mason-core.optional" local path = require "mason-core.path" local EventEmitter = require "mason-core.EventEmitter" +local sources = require "mason-registry.sources" -local index = require "mason-registry.index" +---@class RegistrySource +---@field get_package fun(self: RegistrySource, pkg_name: string): Package +---@field get_all_package_names fun(self: RegistrySource): string[] +---@field is_installed fun(self: RegistrySource): boolean +---@field install async fun(self: RegistrySource): Result ---@class MasonRegistry : EventEmitter ---@diagnostic disable-next-line: assign-type-mismatch local M = setmetatable({}, { __index = EventEmitter }) EventEmitter.init(M) +M.set_registries = sources.set_registries + local scan_install_root do @@ -21,7 +28,7 @@ do local get_directories = _.compose( _.set_of, _.filter_map(function(entry) - if entry.type == "directory" and index[entry.name] then + if entry.type == "directory" then return Optional.of(entry.name) else return Optional.empty() @@ -62,19 +69,22 @@ 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.fmt_error("Failed to load package %s: %s", package_name, pkg or "") - error(("Cannot find package %q."):format(package_name)) + for source in sources.iter() do + local pkg = source:get_package(package_name) + if pkg then + return pkg + end end - return pkg + log.fmt_error("Cannot find package %q.", package_name) + error(("Cannot find package %q."):format(package_name)) end ---Returns true if the provided package_name can be found in the registry. ---@param package_name string ---@return boolean function M.has_package(package_name) - return index[package_name] ~= nil + local ok = pcall(M.get_package, package_name) + return ok end local get_packages = _.map(M.get_package) @@ -94,7 +104,13 @@ end ---Returns all package names. This is a fast function that doesn't load any extra modules. ---@return string[] function M.get_all_package_names() - return _.keys(index) + local pkgs = {} + for source in sources.iter() do + for _, name in ipairs(source:get_all_package_names()) do + pkgs[name] = true + end + end + return _.keys(pkgs) end ---Returns all package instances. This is a slower function that loads more modules. diff --git a/lua/mason-registry/intelephense/init.lua b/lua/mason-registry/intelephense/init.lua deleted file mode 100644 index fd8cd7c1..00000000 --- a/lua/mason-registry/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-registry/isort/init.lua b/lua/mason-registry/isort/init.lua deleted file mode 100644 index 01c129e4..00000000 --- a/lua/mason-registry/isort/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 = "isort", - desc = [[isort is a Python utility / library to sort imports alphabetically]], - homepage = "https://pypi.org/project/isort/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "isort", bin = { "isort" } }, -} diff --git a/lua/mason-registry/java-debug-adapter/init.lua b/lua/mason-registry/java-debug-adapter/init.lua deleted file mode 100644 index 923804be..00000000 --- a/lua/mason-registry/java-debug-adapter/init.lua +++ /dev/null @@ -1,25 +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 = "java-debug-adapter", - desc = [[The debug server implementation for Java. It conforms to the debugger adapter protocol.]], - homepage = "https://github.com/microsoft/java-debug", - languages = { Pkg.Lang.Java }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "microsoft/vscode-java-debug", - asset_file = _.format "vscjava.vscode-java-debug-%s.vsix", - }) - .with_receipt() - - ctx.fs:rmrf(path.concat { "extension", "images" }) - ctx.fs:rmrf(path.concat { "extension", "dist" }) - end, -} diff --git a/lua/mason-registry/java-test/init.lua b/lua/mason-registry/java-test/init.lua deleted file mode 100644 index 6366572d..00000000 --- a/lua/mason-registry/java-test/init.lua +++ /dev/null @@ -1,37 +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 = "java-test", - desc = _.dedent [[ - The Test Runner for Java works with java-debug-adapter to provide the following features: - - Run/Debug test cases - - Customize test configurations - - View test report - - View tests in Test Explorer - - Enables support for the following test frameworks: - - - JUnit 4 (v4.8.0+) - - JUnit 5 (v5.1.0+) - - TestNG (v6.8.0+) - ]], - homepage = "https://github.com/microsoft/vscode-java-test", - languages = { Pkg.Lang.Java }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "microsoft/vscode-java-test", - asset_file = _.format "vscjava.vscode-java-test-%s.vsix", - }) - .with_receipt() - - ctx.fs:rmrf(path.concat { "extension", "resources" }) - ctx.fs:rmrf(path.concat { "extension", "dist" }) - end, -} diff --git a/lua/mason-registry/jdtls/init.lua b/lua/mason-registry/jdtls/init.lua deleted file mode 100644 index b3a5f640..00000000 --- a/lua/mason-registry/jdtls/init.lua +++ /dev/null @@ -1,61 +0,0 @@ -local Pkg = require "mason-core.package" -local installer = require "mason-core.installer" -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 platform = require "mason-core.platform" -local fetch = require "mason-core.fetch" - ----@async -local function download_jdtls() - local source = github.tag { repo = "eclipse/eclipse.jdt.ls" } - source.with_receipt() - - local version = _.gsub("^v", "", source.tag) - local response = - fetch(("https://download.eclipse.org/jdtls/milestones/%s/latest.txt"):format(version)):get_or_throw "Failed to fetch latest release from eclipse.org." - local release_file = _.head(_.split("\n", response)) - - std.download_file( - ("https://download.eclipse.org/jdtls/milestones/%s/%s"):format(version, release_file), - "archive.tar.gz" - ) - std.untar "archive.tar.gz" -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 - ---@param ctx InstallContext - install = function(ctx) - installer.run_concurrently { download_jdtls, download_lombok } - platform.when { - unix = function() - ctx:link_bin("jdtls", path.concat { "bin", "jdtls" }) - end, - win = function() - ctx:link_bin( - "jdtls", - ctx:write_shell_exec_wrapper( - path.concat { "bin", "jdtls-win" }, - ("python %q"):format(path.concat { - ctx.package:get_install_path(), - "bin", - "jdtls.py", - }) - ) - ) - end, - } - end, -} diff --git a/lua/mason-registry/jedi-language-server/init.lua b/lua/mason-registry/jedi-language-server/init.lua deleted file mode 100644 index b19eb3c3..00000000 --- a/lua/mason-registry/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-registry/joker/init.lua b/lua/mason-registry/joker/init.lua deleted file mode 100644 index 2774e0cc..00000000 --- a/lua/mason-registry/joker/init.lua +++ /dev/null @@ -1,31 +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 = "joker", - desc = [[Small Clojure interpreter, linter and formatter]], - homepage = "https://github.com/candid82/joker", - languages = { Pkg.Lang.Clojure, Pkg.Lang.ClojureScript }, - categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "candid82/joker", - asset_file = coalesce( - when(platform.is.mac, "joker-mac-amd64.zip"), - when(platform.is.linux_x64, "joker-linux-amd64.zip"), - when(platform.is.win_x64, "joker-win-amd64.zip") - ), - }) - .with_receipt() - std.chmod("+x", { "joker" }) - ctx:link_bin("joker", platform.is.win and "joker.exe" or "joker") - end, -} diff --git a/lua/mason-registry/jq-lsp/init.lua b/lua/mason-registry/jq-lsp/init.lua deleted file mode 100644 index f96ec79b..00000000 --- a/lua/mason-registry/jq-lsp/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local go = require "mason-core.managers.go" - -return Pkg.new { - name = "jq-lsp", - desc = _.dedent [[ - jq-lsp is a language server for the jq language, developed by Mattias Wadman. It provides IDE features to any - LSP-compatible editor. - ]], - homepage = "https://github.com/wader/jq-lsp", - languages = { Pkg.Lang.Jq }, - categories = { Pkg.Cat.LSP }, - install = go.packages { "github.com/wader/jq-lsp", bin = { "jq-lsp" } }, -} diff --git a/lua/mason-registry/jq/init.lua b/lua/mason-registry/jq/init.lua deleted file mode 100644 index e3a5db5b..00000000 --- a/lua/mason-registry/jq/init.lua +++ /dev/null @@ -1,34 +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 = "jq", - desc = [[Command-line JSON processor]], - homepage = "https://github.com/stedolan/jq", - languages = { Pkg.Lang.JSON }, - categories = { Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "stedolan/jq", - out_file = platform.is.win and "jq.exe" or "jq", - asset_file = coalesce( - when(platform.is.mac, "jq-osx-amd64"), - when(platform.is.linux_x86, "jq-linux32"), - when(platform.is.linux_x64, "jq-linux64"), - when(platform.is.win_x86, "jq-win32.exe"), - when(platform.is.win_x64, "jq-win64.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "jq" }) - ctx:link_bin("jq", platform.is.win and "jq.exe" or "jq") - end, -} diff --git a/lua/mason-registry/js-debug-adapter/init.lua b/lua/mason-registry/js-debug-adapter/init.lua deleted file mode 100644 index aec75201..00000000 --- a/lua/mason-registry/js-debug-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 = "js-debug-adapter", - desc = [[The VS Code JavaScript debugger]], - homepage = "https://github.com/microsoft/vscode-js-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-js-debug" } - source.with_receipt() - git.clone { "https://github.com/microsoft/vscode-js-debug", version = Optional.of(source.tag) } - ctx.spawn.npm { "install", "--ignore-scripts", "--legacy-peer-deps" } - ctx.spawn.npm { "run", "compile" } - ctx.spawn.npm { "install", "--production", "--ignore-scripts", "--legacy-peer-deps" } - ctx:link_bin( - "js-debug-adapter", - ctx:write_node_exec_wrapper("js-debug-adapter", path.concat { "out", "src", "vsDebugServer.js" }) - ) - end, -} diff --git a/lua/mason-registry/json-lsp/init.lua b/lua/mason-registry/json-lsp/init.lua deleted file mode 100644 index a1141103..00000000 --- a/lua/mason-registry/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-registry/json-to-struct/init.lua b/lua/mason-registry/json-to-struct/init.lua deleted file mode 100644 index e92ca20b..00000000 --- a/lua/mason-registry/json-to-struct/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 = "json-to-struct", - desc = [[A simple command-line tool for generating to struct definitions from JSON]], - homepage = "https://github.com/tmc/json-to-struct", - categories = {}, - languages = { Pkg.Lang.Go }, - install = go.packages { "github.com/tmc/json-to-struct", bin = { "json-to-struct" } }, -} diff --git a/lua/mason-registry/jsonlint/init.lua b/lua/mason-registry/jsonlint/init.lua deleted file mode 100644 index d07b8f9e..00000000 --- a/lua/mason-registry/jsonlint/init.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "jsonlint", - desc = [[A pure JavaScript version of the service provided at jsonlint.com.]], - homepage = "https://github.com/zaach/jsonlint", - languages = { - Pkg.Lang.JSON, - }, - categories = { Pkg.Cat.Linter }, - install = npm.packages { "jsonlint", bin = { "jsonlint" } }, -} diff --git a/lua/mason-registry/jsonnet-language-server/init.lua b/lua/mason-registry/jsonnet-language-server/init.lua deleted file mode 100644 index a337957e..00000000 --- a/lua/mason-registry/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-registry/julia-lsp/init.lua b/lua/mason-registry/julia-lsp/init.lua deleted file mode 100644 index d3dacdfe..00000000 --- a/lua/mason-registry/julia-lsp/init.lua +++ /dev/null @@ -1,86 +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 platform = require "mason-core.platform" - -local server_script = [[ -if VERSION < v"1.0.0" - error("julia language server only works with julia 1.0.0+") -end - -import Pkg -version_specific_env_path = joinpath(@__DIR__, "scripts", "environments", "languageserver", "v$(VERSION.major).$(VERSION.minor)") -if isdir(version_specific_env_path) - Pkg.activate(version_specific_env_path) -else - Pkg.activate(joinpath(@__DIR__, "scripts", "environments", "languageserver", "fallback")) -end - -using LanguageServer, SymbolServer, Pkg - -OLD_DEPOT_PATH = ARGS[1] -ENV_PATH = ARGS[2] - -runserver( - stdin, - stdout, - ENV_PATH, - OLD_DEPOT_PATH, - nothing, - ENV["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) - ctx:link_bin( - "julia-lsp", - ctx:write_shell_exec_wrapper( - "julia-lsp", - ("julia --startup-file=no --history-file=no --depwarn=no %q"):format(path.concat { - ctx.package:get_install_path(), - "nvim-lsp.jl", - }), - { - SYMBOLSTORE_PATH = path.concat { ctx.package:get_install_path(), "symbolstorev5" }, - JULIA_DEPOT_PATH = path.concat { ctx.package:get_install_path(), "lsdepot" }, - JULIA_LOAD_PATH = platform.is.win and ";" or ":", - } - ) - ) - end, -} diff --git a/lua/mason-registry/kotlin-debug-adapter/init.lua b/lua/mason-registry/kotlin-debug-adapter/init.lua deleted file mode 100644 index 2e7aa17c..00000000 --- a/lua/mason-registry/kotlin-debug-adapter/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-debug-adapter", - desc = [[Kotlin/JVM debugging for any editor/IDE using the Debug Adapter Protocol]], - homepage = "https://github.com/fwcd/kotlin-debug-adapter", - languages = { Pkg.Lang.Kotlin }, - categories = { Pkg.Cat.DAP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "fwcd/kotlin-debug-adapter", - asset_file = "adapter.zip", - }) - .with_receipt() - ctx:link_bin( - "kotlin-debug-adapter", - path.concat { - "adapter", - "bin", - platform.is.win and "kotlin-debug-adapter.bat" or "kotlin-debug-adapter", - } - ) - end, -} diff --git a/lua/mason-registry/kotlin-language-server/init.lua b/lua/mason-registry/kotlin-language-server/init.lua deleted file mode 100644 index 77c6cb6d..00000000 --- a/lua/mason-registry/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-registry/ktlint/init.lua b/lua/mason-registry/ktlint/init.lua deleted file mode 100644 index ef346dc0..00000000 --- a/lua/mason-registry/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-registry/latexindent/init.lua b/lua/mason-registry/latexindent/init.lua deleted file mode 100644 index c08bf7e9..00000000 --- a/lua/mason-registry/latexindent/init.lua +++ /dev/null @@ -1,36 +0,0 @@ -local Pkg = require "mason-core.package" -local github = require "mason-core.managers.github" -local platform = require "mason-core.platform" -local std = require "mason-core.managers.std" -local _ = require "mason-core.functional" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "latexindent", - desc = _.dedent [[ - latexindent.pl is a perl script to beautify/tidy/format/indent (add horizontal leading space to) code within - environments, commands, after headings and within special code blocks. - ]], - homepage = "https://github.com/cmhughes/latexindent.pl", - languages = { Pkg.Lang.LaTeX }, - categories = { Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "cmhughes/latexindent.pl", - out_file = platform.is.win and "latexindent.exe" or "latexindent", - asset_file = coalesce( - when(platform.is.mac_x64, "latexindent-macos"), - when(platform.is.mac_arm64, "latexindent-macos"), - when(platform.is.linux_x64_gnu, "latexindent-linux"), - when(platform.is.win_x64, "latexindent.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "latexindent" }) - ctx:link_bin("latexindent", platform.is.win and "latexindent.exe" or "latexindent") - end, -} diff --git a/lua/mason-registry/lelwel/init.lua b/lua/mason-registry/lelwel/init.lua deleted file mode 100644 index f6b416e5..00000000 --- a/lua/mason-registry/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-registry/lemminx/init.lua b/lua/mason-registry/lemminx/init.lua deleted file mode 100644 index ba92561b..00000000 --- a/lua/mason-registry/lemminx/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 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 source = github.unzip_release_file { - repo = "redhat-developer/vscode-xml", - asset_file = coalesce( - when(platform.is.mac, "lemminx-osx-x86_64.zip"), - when(platform.is.linux_x64, "lemminx-linux.zip"), - when(platform.is.win, "lemminx-win32.zip") - ), - } - source.with_receipt() - local unzipped_binary = _.gsub("%.zip$", "", source.asset_file) - ctx.fs:rename( - platform.is.win and ("%s.exe"):format(unzipped_binary) or unzipped_binary, - platform.is.win and "lemminx.exe" or "lemminx" - ) - 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 deleted file mode 100644 index db593590..00000000 --- a/lua/mason-registry/lemmy-help/init.lua +++ /dev/null @@ -1,45 +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 = "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 }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "numToStr/lemmy-help" - local asset_file = _.coalesce( - _.when(platform.is.mac, "lemmy-help-x86_64-apple-darwin.tar.gz"), - _.when(platform.is.linux_x64_gnu, "lemmy-help-x86_64-unknown-linux-gnu.tar.gz"), - _.when(platform.is.linux_x64, "lemmy-help-x86_64-unknown-linux-musl.tar.gz"), - _.when(platform.is.linux_arm64_gnu, "lemmy-help-aarch64-unknown-linux-gnu.tar.gz"), - _.when(platform.is.linux_arm64, "lemmy-help-aarch64-unknown-linux-musl.tar.gz"), - _.when(platform.is.win_x64, "lemmy-help-x86_64-pc-windows-msvc.zip") - ) - platform.when { - unix = function() - github - .untargz_release_file({ - repo = repo, - asset_file = asset_file, - }) - .with_receipt() - ctx:link_bin("lemmy-help", "lemmy-help") - end, - win = function() - github - .unzip_release_file({ - repo = repo, - asset_file = asset_file, - }) - .with_receipt() - ctx:link_bin("lemmy-help", "lemmy-help.exe") - end, - } - end, -} diff --git a/lua/mason-registry/ltex-ls/init.lua b/lua/mason-registry/ltex-ls/init.lua deleted file mode 100644 index e2cace82..00000000 --- a/lua/mason-registry/ltex-ls/init.lua +++ /dev/null @@ -1,75 +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_x64, "ltex-ls-%s-linux-x64.tar.gz") - ) - return target and target:format(version) - end, - } - end, - win = function() - return github.unzip_release_file { - repo = repo, - asset_file = function(version) - local target = coalesce(when(platform.is.win_x64, "ltex-ls-%s-windows-x64.zip")) - return target and target: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 = _.dedent [[ - 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 deleted file mode 100644 index 1c710935..00000000 --- a/lua/mason-registry/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 = [[A language server that offers Lua language support - programmed in Lua.]], - languages = { Pkg.Lang.Lua }, - categories = { Pkg.Cat.LSP }, - homepage = "https://github.com/LuaLS/lua-language-server", - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "LuaLS/lua-language-server" - platform.when { - unix = function() - github - .untargz_release_file({ - repo = repo, - asset_file = coalesce( - when(platform.is.mac_x64, _.format "lua-language-server-%s-darwin-x64.tar.gz"), - when(platform.is.mac_arm64, _.format "lua-language-server-%s-darwin-arm64.tar.gz"), - when(platform.is.linux_x64_gnu, _.format "lua-language-server-%s-linux-x64.tar.gz"), - when(platform.is.linux_arm64_gnu, _.format "lua-language-server-%s-linux-arm64.tar.gz") - ), - }) - .with_receipt() - - ctx:link_bin( - "lua-language-server", - ctx:write_exec_wrapper( - "lua-language-server", - path.concat { - "bin", - "lua-language-server", - } - ) - ) - end, - win = function() - github - .unzip_release_file({ - repo = repo, - asset_file = coalesce( - when(platform.is.win_x64, _.format "lua-language-server-%s-win32-x64.zip"), - when(platform.is.win_x86, _.format "lua-language-server-%s-win32-ia32.zip") - ), - }) - .with_receipt() - ctx:link_bin( - "lua-language-server", - path.concat { - "bin", - "lua-language-server.exe", - } - ) - end, - } - end, -} diff --git a/lua/mason-registry/luacheck/init.lua b/lua/mason-registry/luacheck/init.lua deleted file mode 100644 index f4fae381..00000000 --- a/lua/mason-registry/luacheck/init.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Pkg = require "mason-core.package" -local luarocks = require "mason-core.managers.luarocks" - -return Pkg.new { - name = "luacheck", - desc = [[A tool for linting and static analysis of Lua code.]], - homepage = "https://github.com/mpeterv/luacheck", - languages = { Pkg.Lang.Lua }, - categories = { Pkg.Cat.Linter }, - install = luarocks.package("luacheck", { - bin = { "luacheck" }, - }), -} diff --git a/lua/mason-registry/luaformatter/init.lua b/lua/mason-registry/luaformatter/init.lua deleted file mode 100644 index f4e4c888..00000000 --- a/lua/mason-registry/luaformatter/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 = "luaformatter", - desc = [[Code formatter for Lua]], - homepage = "https://github.com/Koihik/LuaFormatter", - languages = { Pkg.Lang.Lua }, - categories = { Pkg.Cat.Formatter }, - install = luarocks.package("luaformatter", { - server = "https://luarocks.org/dev", - bin = { "lua-format" }, - }), -} diff --git a/lua/mason-registry/luau-lsp/init.lua b/lua/mason-registry/luau-lsp/init.lua deleted file mode 100644 index 94324271..00000000 --- a/lua/mason-registry/luau-lsp/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 = "luau-lsp", - desc = [[An implementation of a language server for the Luau programming language.]], - languages = { Pkg.Lang.Luau }, - categories = { Pkg.Cat.LSP }, - homepage = "https://github.com/JohnnyMorganz/luau-lsp", - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "JohnnyMorganz/luau-lsp", - asset_file = coalesce( - when(platform.is.mac, "luau-lsp-macos.zip"), - when(platform.is.linux_x64, "luau-lsp-linux.zip"), - when(platform.is.win_x64, "luau-lsp-win64.zip") - ), - }) - .with_receipt() - - ctx:link_bin("luau-lsp", platform.is.win and "luau-lsp.exe" or "luau-lsp") - end, -} diff --git a/lua/mason-registry/markdownlint/init.lua b/lua/mason-registry/markdownlint/init.lua deleted file mode 100644 index eb63ec71..00000000 --- a/lua/mason-registry/markdownlint/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 = "markdownlint", - desc = [[A Node.js style checker and lint tool for Markdown/CommonMark files]], - homepage = "https://github.com/igorshubovych/markdownlint-cli", - languages = { Pkg.Lang.Markdown }, - categories = { Pkg.Cat.Linter, Pkg.Cat.Formatter }, - install = npm.packages { "markdownlint-cli", bin = { "markdownlint" } }, -} diff --git a/lua/mason-registry/marksman/init.lua b/lua/mason-registry/marksman/init.lua deleted file mode 100644 index 7d2404dc..00000000 --- a/lua/mason-registry/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-registry/metamath-zero-lsp/init.lua b/lua/mason-registry/metamath-zero-lsp/init.lua deleted file mode 100644 index e5fc28b1..00000000 --- a/lua/mason-registry/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-registry/misspell/init.lua b/lua/mason-registry/misspell/init.lua deleted file mode 100644 index d9ae6f13..00000000 --- a/lua/mason-registry/misspell/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 = "misspell", - desc = [[Correct commonly misspelled English words in source files]], - homepage = "https://github.com/client9/misspell", - languages = {}, - categories = { Pkg.Cat.Linter }, - install = go.packages { "github.com/client9/misspell/cmd/misspell", bin = { "misspell" } }, -} diff --git a/lua/mason-registry/mockdebug/init.lua b/lua/mason-registry/mockdebug/init.lua deleted file mode 100644 index 4b539a72..00000000 --- a/lua/mason-registry/mockdebug/init.lua +++ /dev/null @@ -1,31 +0,0 @@ -local Pkg = require "mason-core.package" -local github = require "mason-core.managers.github" -local git = require "mason-core.managers.git" -local path = require "mason-core.path" -local _ = require "mason-core.functional" -local Optional = require "mason-core.optional" - -return Pkg.new { - name = "mockdebug", - desc = _.dedent [[ - 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" } - ctx:link_bin( - "mock-debug-adapter", - ctx:write_node_exec_wrapper("mock-debug-adapter", path.concat { "out", "debugAdapter.js" }) - ) - end, -} diff --git a/lua/mason-registry/move-analyzer/init.lua b/lua/mason-registry/move-analyzer/init.lua deleted file mode 100644 index e7e15093..00000000 --- a/lua/mason-registry/move-analyzer/init.lua +++ /dev/null @@ -1,16 +0,0 @@ -local Pkg = require "mason-core.package" -local cargo = require "mason-core.managers.cargo" - -return Pkg.new { - name = "move-analyzer", - desc = [[move-analyzer is a language server implementation for the Move programming language.]], - homepage = "https://github.com/move-language/move", - languages = { Pkg.Lang.Move }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("move-analyzer", { - git = { - url = "https://github.com/move-language/move", - }, - bin = { "move-analyzer" }, - }), -} diff --git a/lua/mason-registry/mypy/init.lua b/lua/mason-registry/mypy/init.lua deleted file mode 100644 index 05f68afd..00000000 --- a/lua/mason-registry/mypy/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 = "mypy", - desc = [[Mypy is a static type checker for Python. ]], - homepage = "https://github.com/python/mypy", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "mypy", bin = { "mypy" } }, -} diff --git a/lua/mason-registry/neocmakelsp/init.lua b/lua/mason-registry/neocmakelsp/init.lua deleted file mode 100644 index 2fe76e44..00000000 --- a/lua/mason-registry/neocmakelsp/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason-core.package" -local cargo = require "mason-core.managers.cargo" - -return Pkg.new { - name = "neocmakelsp", - desc = [[CMake LSP implementation based on Tower and Tree-sitter]], - homepage = "https://github.com/Decodetalkers/neocmakelsp", - languages = { Pkg.Lang.CMake }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("neocmakelsp", { bin = { "neocmakelsp" } }), -} diff --git a/lua/mason-registry/netcoredbg/init.lua b/lua/mason-registry/netcoredbg/init.lua deleted file mode 100644 index 10a5c1ae..00000000 --- a/lua/mason-registry/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#"], Pkg.Lang["F#"] }, - 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/nginx-language-server/init.lua b/lua/mason-registry/nginx-language-server/init.lua deleted file mode 100644 index 88512cdc..00000000 --- a/lua/mason-registry/nginx-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 = "nginx-language-server", - desc = [[A language server for nginx configuration files.]], - homepage = "https://github.com/pappasam/nginx-language-server", - languages = { Pkg.Lang.Nginx }, - categories = { Pkg.Cat.LSP }, - install = pip3.packages { "nginx-language-server", bin = { "nginx-language-server" } }, -} diff --git a/lua/mason-registry/nickel-lang-lsp/init.lua b/lua/mason-registry/nickel-lang-lsp/init.lua deleted file mode 100644 index 8e0cc510..00000000 --- a/lua/mason-registry/nickel-lang-lsp/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -local Pkg = require "mason-core.package" -local cargo = require "mason-core.managers.cargo" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "nickel-lang-lsp", - desc = _.dedent [[ - 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/nil/init.lua b/lua/mason-registry/nil/init.lua deleted file mode 100644 index 708022a4..00000000 --- a/lua/mason-registry/nil/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -local Pkg = require "mason-core.package" -local cargo = require "mason-core.managers.cargo" - -return Pkg.new { - name = "nil", - desc = [[Language Server for Nix]], - homepage = "https://github.com/oxalica/nil", - languages = { Pkg.Lang.Nix }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("nil", { - git = { - url = "https://github.com/oxalica/nil", - tag = true, - }, - bin = { "nil" }, - }), -} diff --git a/lua/mason-registry/nimlsp/init.lua b/lua/mason-registry/nimlsp/init.lua deleted file mode 100644 index ceb759af..00000000 --- a/lua/mason-registry/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-registry/node-debug2-adapter/init.lua b/lua/mason-registry/node-debug2-adapter/init.lua deleted file mode 100644 index 4487b6a4..00000000 --- a/lua/mason-registry/node-debug2-adapter/init.lua +++ /dev/null @@ -1,36 +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" -local platform = require "mason-core.platform" - -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" } - local node_env = platform - .get_node_version() - :map(_.cond { - { _.prop_satisfies(_.gte(18), "major"), _.always { NODE_OPTIONS = "--no-experimental-fetch" } }, - { _.T, _.always {} }, - }) - :get_or_else {} - ctx.spawn.npm { "run", "build", env = node_env } - 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/nxls/init.lua b/lua/mason-registry/nxls/init.lua deleted file mode 100644 index fb955b5e..00000000 --- a/lua/mason-registry/nxls/init.lua +++ /dev/null @@ -1,13 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "nxls", - desc = [[A language server that provides code completion and more for Nx workspaces.]], - homepage = "https://github.com/nrwl/nx-console/tree/master/apps/nxls", - languages = { - Pkg.Lang.JSON, - }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "nxls", bin = { "nxls" } }, -} diff --git a/lua/mason-registry/ocaml-lsp/init.lua b/lua/mason-registry/ocaml-lsp/init.lua deleted file mode 100644 index b1d02807..00000000 --- a/lua/mason-registry/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-registry/ocamlformat/init.lua b/lua/mason-registry/ocamlformat/init.lua deleted file mode 100644 index e24f33a9..00000000 --- a/lua/mason-registry/ocamlformat/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local _ = require "mason-core.functional" -local Pkg = require "mason-core.package" -local opam = require "mason-core.managers.opam" - -return Pkg.new { - name = "ocamlformat", - desc = _.dedent [[ - ocamlformat is a tool for formatting OCaml code. It automatically adjusts the layout of your code to follow the - recommended style guidelines, making it easier to read and understand. - ]], - homepage = "https://github.com/ocaml-ppx/ocamlformat", - languages = { Pkg.Lang.OCaml }, - categories = { Pkg.Cat.Formatter }, - install = opam.packages { "ocamlformat", bin = { "ocamlformat" } }, -} diff --git a/lua/mason-registry/omnisharp-mono/init.lua b/lua/mason-registry/omnisharp-mono/init.lua deleted file mode 100644 index a09ee7e5..00000000 --- a/lua/mason-registry/omnisharp-mono/init.lua +++ /dev/null @@ -1,48 +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 = "omnisharp-mono", - desc = _.dedent [[ - OmniSharp language server based on Roslyn workspaces. This version of Omnisharp requires Mono to be installed on - Linux & macOS. - ]], - homepage = "https://github.com/OmniSharp/omnisharp-roslyn", - languages = { Pkg.Lang["C#"] }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - platform.when { - unix = function() - github - .untargz_release_file({ - repo = "OmniSharp/omnisharp-roslyn", - asset_file = coalesce( - when(platform.is.mac, "omnisharp-osx.tar.gz"), - when(platform.is.linux_x64, "omnisharp-linux-x64.tar.gz"), - when(platform.is.linux_x86, "omnisharp-linux-x86.tar.gz") - ), - }) - .with_receipt() - ctx:link_bin("omnisharp-mono", ctx:write_exec_wrapper("omnisharp-mono", "run")) - end, - win = function() - github - .unzip_release_file({ - repo = "OmniSharp/omnisharp-roslyn", - asset_file = coalesce( - when(platform.is.win_x64, "omnisharp-win-x64.zip"), - when(platform.is.win_x86, "omnisharp-win-x86.zip") - ), - }) - .with_receipt() - ctx:link_bin("omnisharp-mono", "OmniSharp.exe") - end, - } - end, -} diff --git a/lua/mason-registry/omnisharp/init.lua b/lua/mason-registry/omnisharp/init.lua deleted file mode 100644 index cb1164a3..00000000 --- a/lua/mason-registry/omnisharp/init.lua +++ /dev/null @@ -1,46 +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 = "omnisharp", - desc = _.dedent [[ - OmniSharp language server based on Roslyn workspaces. This version of Omnisharp requires dotnet (.NET 6.0) to be - installed. - ]], - homepage = "https://github.com/OmniSharp/omnisharp-roslyn", - languages = { Pkg.Lang["C#"] }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - 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") - ), - }) - .with_receipt() - - ctx:link_bin( - "omnisharp", - ctx:write_shell_exec_wrapper( - "omnisharp", - ("dotnet %q"):format(path.concat { - ctx.package:get_install_path(), - "OmniSharp.dll", - }) - ) - ) - end, -} diff --git a/lua/mason-registry/opencl-language-server/init.lua b/lua/mason-registry/opencl-language-server/init.lua deleted file mode 100644 index 665a5c55..00000000 --- a/lua/mason-registry/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-registry/openscad-lsp/init.lua b/lua/mason-registry/openscad-lsp/init.lua deleted file mode 100644 index 2caf582d..00000000 --- a/lua/mason-registry/openscad-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 = "openscad-lsp", - desc = [[Language Server Protocol implementation for OpenSCAD, written in Rust.]], - homepage = "https://github.com/Leathong/openscad-LSP", - languages = { Pkg.Lang.OpenSCAD }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("openscad-lsp", { - bin = { "openscad-lsp" }, - }), -} diff --git a/lua/mason-registry/perlnavigator/init.lua b/lua/mason-registry/perlnavigator/init.lua deleted file mode 100644 index 654ecb94..00000000 --- a/lua/mason-registry/perlnavigator/init.lua +++ /dev/null @@ -1,23 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" -local path = require "mason-core.path" - -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 }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - npm.packages { "perlnavigator-server" }() - ctx:link_bin( - "perlnavigator", - ctx:write_node_exec_wrapper( - "perlnavigator", - path.concat { "node_modules", "perlnavigator-server", "out", "server.js" } - ) - ) - end, -} diff --git a/lua/mason-registry/php-cs-fixer/init.lua b/lua/mason-registry/php-cs-fixer/init.lua deleted file mode 100644 index 84dd0078..00000000 --- a/lua/mason-registry/php-cs-fixer/init.lua +++ /dev/null @@ -1,37 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local github = require "mason-core.managers.github" -local std = require "mason-core.managers.std" -local platform = require "mason-core.platform" - -return Pkg.new { - name = "php-cs-fixer", - desc = _.dedent [[ - The PHP Coding Standards Fixer (PHP CS Fixer) tool fixes your code to follow standards; whether you want to - follow PHP coding standards as defined in the PSR-1, PSR-2, etc., or other community driven ones like the - Symfony one. You can also define your (team's) style through configuration.') - ]], - homepage = "https://github.com/FriendsOfPHP/PHP-CS-Fixer", - languages = { Pkg.Lang.PHP }, - categories = { Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "FriendsOfPHP/PHP-CS-Fixer", - asset_file = "php-cs-fixer.phar", - out_file = platform.is.win and "php-cs-fixer.phar" or "php-cs-fixer", - }) - .with_receipt() - platform.when { - unix = function() - std.chmod("+x", { "php-cs-fixer" }) - ctx:link_bin("php-cs-fixer", "php-cs-fixer") - end, - win = function() - ctx:link_bin("php-cs-fixer", ctx:write_php_exec_wrapper("php-cs-fixer", "php-cs-fixer.phar")) - end, - } - end, -} diff --git a/lua/mason-registry/php-debug-adapter/init.lua b/lua/mason-registry/php-debug-adapter/init.lua deleted file mode 100644 index d4350c91..00000000 --- a/lua/mason-registry/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-registry/phpactor/init.lua b/lua/mason-registry/phpactor/init.lua deleted file mode 100644 index 99f0b5f5..00000000 --- a/lua/mason-registry/phpactor/init.lua +++ /dev/null @@ -1,29 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -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 = _.dedent [[ - 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/phpcbf/init.lua b/lua/mason-registry/phpcbf/init.lua deleted file mode 100644 index 6dd062f5..00000000 --- a/lua/mason-registry/phpcbf/init.lua +++ /dev/null @@ -1,33 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local github = require "mason-core.managers.github" -local std = require "mason-core.managers.std" -local platform = require "mason-core.platform" - -return Pkg.new { - name = "phpcbf", - desc = [[phpcbf automatically corrects coding standard violations that would be detected by phpcs.]], - homepage = "https://github.com/squizlabs/PHP_CodeSniffer", - languages = { Pkg.Lang.PHP }, - categories = { Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "squizlabs/PHP_CodeSniffer", - asset_file = "phpcbf.phar", - out_file = platform.is.win and "phpcbf.phar" or "phpcbf", - }) - .with_receipt() - platform.when { - unix = function() - std.chmod("+x", { "phpcbf" }) - ctx:link_bin("phpcbf", "phpcbf") - end, - win = function() - ctx:link_bin("phpcbf", ctx:write_php_exec_wrapper("phpcbf", "phpcbf.phar")) - end, - } - end, -} diff --git a/lua/mason-registry/phpcs/init.lua b/lua/mason-registry/phpcs/init.lua deleted file mode 100644 index 41f82f7d..00000000 --- a/lua/mason-registry/phpcs/init.lua +++ /dev/null @@ -1,33 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local github = require "mason-core.managers.github" -local std = require "mason-core.managers.std" -local platform = require "mason-core.platform" - -return Pkg.new { - name = "phpcs", - desc = [[phpcs tokenizes PHP, JavaScript and CSS files to detect violations of a defined standard.]], - homepage = "https://github.com/squizlabs/PHP_CodeSniffer", - languages = { Pkg.Lang.PHP }, - categories = { Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "squizlabs/PHP_CodeSniffer", - asset_file = "phpcs.phar", - out_file = platform.is.win and "phpcs.phar" or "phpcs", - }) - .with_receipt() - platform.when { - unix = function() - std.chmod("+x", { "phpcs" }) - ctx:link_bin("phpcs", "phpcs") - end, - win = function() - ctx:link_bin("phpcs", ctx:write_php_exec_wrapper("phpcs", "phpcs.phar")) - end, - } - end, -} diff --git a/lua/mason-registry/phpmd/init.lua b/lua/mason-registry/phpmd/init.lua deleted file mode 100644 index 4543711f..00000000 --- a/lua/mason-registry/phpmd/init.lua +++ /dev/null @@ -1,36 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local github = require "mason-core.managers.github" -local std = require "mason-core.managers.std" -local platform = require "mason-core.platform" - -return Pkg.new { - name = "phpmd", - desc = _.dedent [[ - PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD. - PHPMD can be seen as an user friendly frontend application for the raw metrics stream measured by PHP Depend. - ]], - homepage = "https://github.com/phpmd/phpmd", - languages = { Pkg.Lang.PHP }, - categories = { Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "phpmd/phpmd", - asset_file = "phpmd.phar", - out_file = platform.is.win and "phpmd.phar" or "phpmd", - }) - .with_receipt() - platform.when { - unix = function() - std.chmod("+x", { "phpmd" }) - ctx:link_bin("phpmd", "phpmd") - end, - win = function() - ctx:link_bin("phpmd", ctx:write_php_exec_wrapper("phpmd", "phpmd.phar")) - end, - } - end, -} diff --git a/lua/mason-registry/phpstan/init.lua b/lua/mason-registry/phpstan/init.lua deleted file mode 100644 index 688bd75a..00000000 --- a/lua/mason-registry/phpstan/init.lua +++ /dev/null @@ -1,36 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local github = require "mason-core.managers.github" -local std = require "mason-core.managers.std" -local platform = require "mason-core.platform" -local path = require "mason-core.path" - -return Pkg.new { - name = "phpstan", - desc = _.dedent [[ - PHP Static Analysis Tool - discover bugs in your code without running it! - ]], - homepage = "https://github.com/phpstan/phpstan", - languages = { Pkg.Lang.PHP }, - categories = { Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "phpstan/phpstan", - asset_file = "phpstan.phar", - out_file = platform.is.win and "phpstan.phar" or "phpstan", - }) - .with_receipt() - platform.when { - unix = function() - std.chmod("+x", { "phpstan" }) - ctx:link_bin("phpstan", "phpstan") - end, - win = function() - ctx:link_bin("phpstan", ctx:write_php_exec_wrapper("phpstan", "phpstan.phar")) - end, - } - end, -} diff --git a/lua/mason-registry/pint/init.lua b/lua/mason-registry/pint/init.lua deleted file mode 100644 index 559434d5..00000000 --- a/lua/mason-registry/pint/init.lua +++ /dev/null @@ -1,16 +0,0 @@ -local Pkg = require "mason-core.package" -local composer = require "mason-core.managers.composer" - -return Pkg.new { - name = "pint", - desc = [[Laravel Pint is an opinionated PHP code style fixer for minimalists.]], - homepage = "https://laravel.com/docs/9.x/pint", - languages = { Pkg.Lang.PHP }, - categories = { Pkg.Cat.Formatter }, - install = composer.packages { - "laravel/pint", - bin = { - "pint", - }, - }, -} diff --git a/lua/mason-registry/powershell-editor-services/init.lua b/lua/mason-registry/powershell-editor-services/init.lua deleted file mode 100644 index ab52478d..00000000 --- a/lua/mason-registry/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-registry/prettier/init.lua b/lua/mason-registry/prettier/init.lua deleted file mode 100644 index 04f0bd0f..00000000 --- a/lua/mason-registry/prettier/init.lua +++ /dev/null @@ -1,26 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "prettier", - desc = [[Prettier is an opinionated code formatter]], - homepage = "https://prettier.io", - languages = { - Pkg.Lang.JavaScript, - Pkg.Lang.TypeScript, - Pkg.Lang.Flow, - Pkg.Lang.JSX, - Pkg.Lang.JSON, - Pkg.Lang.CSS, - Pkg.Lang.SCSS, - Pkg.Lang.LESS, - Pkg.Lang.HTML, - Pkg.Lang.Vue, - Pkg.Lang.Angular, - Pkg.Lang.GraphQL, - Pkg.Lang.Markdown, - Pkg.Lang.YAML, - }, - categories = { Pkg.Cat.Formatter }, - install = npm.packages { "prettier", bin = { "prettier" } }, -} diff --git a/lua/mason-registry/prettierd/init.lua b/lua/mason-registry/prettierd/init.lua deleted file mode 100644 index 34a2e0c4..00000000 --- a/lua/mason-registry/prettierd/init.lua +++ /dev/null @@ -1,26 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "prettierd", - desc = [[Prettier, as a daemon, for ludicrous formatting speed]], - homepage = "https://github.com/fsouza/prettierd", - languages = { - Pkg.Lang.JavaScript, - Pkg.Lang.TypeScript, - Pkg.Lang.Flow, - Pkg.Lang.JSX, - Pkg.Lang.JSON, - Pkg.Lang.CSS, - Pkg.Lang.SCSS, - Pkg.Lang.LESS, - Pkg.Lang.HTML, - Pkg.Lang.Vue, - Pkg.Lang.Angular, - Pkg.Lang.GraphQL, - Pkg.Lang.Markdown, - Pkg.Lang.YAML, - }, - categories = { Pkg.Cat.Formatter }, - install = npm.packages { "@fsouza/prettierd", bin = { "prettierd" } }, -} diff --git a/lua/mason-registry/prisma-language-server/init.lua b/lua/mason-registry/prisma-language-server/init.lua deleted file mode 100644 index b54cb132..00000000 --- a/lua/mason-registry/prisma-language-server/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "prisma-language-server", - desc = _.dedent [[ - 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/proselint/init.lua b/lua/mason-registry/proselint/init.lua deleted file mode 100644 index 7e919a6c..00000000 --- a/lua/mason-registry/proselint/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "proselint", - desc = _.dedent [[ - proselint is a linter for English prose. It places the world's greatest writers and editors by your side, where - they whisper suggestions on how to improve your prose. - ]], - homepage = "https://github.com/amperser/proselint", - languages = { Pkg.Lang.Text, Pkg.Lang.Markdown }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "proselint", bin = { "proselint" } }, -} diff --git a/lua/mason-registry/prosemd-lsp/init.lua b/lua/mason-registry/prosemd-lsp/init.lua deleted file mode 100644 index 4e4f7b8e..00000000 --- a/lua/mason-registry/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_x64_gnu, "prosemd-lsp-linux"), - when(platform.is.win_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/protolint/init.lua b/lua/mason-registry/protolint/init.lua deleted file mode 100644 index 6830c6ea..00000000 --- a/lua/mason-registry/protolint/init.lua +++ /dev/null @@ -1,36 +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 = "protolint", - desc = [[protolint is the pluggable linting/fixing utility for Protocol Buffer files (proto2+proto3)]], - homepage = "https://github.com/yoheimuta/protolint", - categories = { Pkg.Cat.Linter }, - languages = { Pkg.Lang.Protobuf }, - install = function(ctx) - ---@param template_string string - local function release_file(template_string) - return _.compose(_.format(template_string), _.gsub("^v", "")) - end - - github - .untargz_release_file({ - repo = "yoheimuta/protolint", - asset_file = coalesce( - when(platform.is.mac_arm64, release_file "protolint_%s_Darwin_arm64.tar.gz"), - when(platform.is.mac_x64, release_file "protolint_%s_Darwin_x86_64.tar.gz"), - when(platform.is.linux_arm64, release_file "protolint_%s_Linux_arm64.tar.gz"), - when(platform.is.linux_x64, release_file "protolint_%s_Linux_x86_64.tar.gz"), - when(platform.is.win_arm64, release_file "protolint_%s_Windows_arm64.tar.gz"), - when(platform.is.win_x64, release_file "protolint_%s_Windows_x86_64.tar.gz") - ), - }) - .with_receipt() - ctx:link_bin("protolint", platform.is.win and "protolint.exe" or "protolint") - ctx:link_bin("protoc-gen-protolint", platform.is.win and "protoc-gen-protolint.exe" or "protoc-gen-protolint") - end, -} diff --git a/lua/mason-registry/psalm/init.lua b/lua/mason-registry/psalm/init.lua deleted file mode 100644 index 7a994a56..00000000 --- a/lua/mason-registry/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-registry/puppet-editor-services/init.lua b/lua/mason-registry/puppet-editor-services/init.lua deleted file mode 100644 index d38c2359..00000000 --- a/lua/mason-registry/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-registry/purescript-language-server/init.lua b/lua/mason-registry/purescript-language-server/init.lua deleted file mode 100644 index dd1395ac..00000000 --- a/lua/mason-registry/purescript-language-server/init.lua +++ /dev/null @@ -1,16 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "purescript-language-server", - desc = _.dedent [[ - 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/pydocstyle/init.lua b/lua/mason-registry/pydocstyle/init.lua deleted file mode 100644 index 74d4b3af..00000000 --- a/lua/mason-registry/pydocstyle/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 = "pydocstyle", - desc = "pydocstyle is a static analysis tool for checking compliance with Python docstring conventions", - homepage = "https://www.pydocstyle.org/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "pydocstyle", bin = { "pydocstyle" } }, -} diff --git a/lua/mason-registry/pylama/init.lua b/lua/mason-registry/pylama/init.lua deleted file mode 100644 index 42e0c562..00000000 --- a/lua/mason-registry/pylama/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 = "pylama", - desc = [[Code audit tool for Python.]], - homepage = "https://klen.github.io/pylama/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "pylama[all]", bin = { "pylama" } }, -} diff --git a/lua/mason-registry/pylint/init.lua b/lua/mason-registry/pylint/init.lua deleted file mode 100644 index 292847c7..00000000 --- a/lua/mason-registry/pylint/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 = "pylint", - desc = [[Pylint is a static code analyser for Python 2 or 3]], - homepage = "https://pypi.org/project/pylint/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "pylint", bin = { "pylint" } }, -} diff --git a/lua/mason-registry/pyproject-flake8/init.lua b/lua/mason-registry/pyproject-flake8/init.lua deleted file mode 100644 index 9657942a..00000000 --- a/lua/mason-registry/pyproject-flake8/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 = "pyproject-flake8", - desc = "A monkey patching wrapper to connect flake8 with pyproject.toml configuration.", - homepage = "https://github.com/csachs/pyproject-flake8", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "pyproject-flake8", bin = { "pflake8" } }, -} diff --git a/lua/mason-registry/pyre/init.lua b/lua/mason-registry/pyre/init.lua deleted file mode 100644 index 878e1abe..00000000 --- a/lua/mason-registry/pyre/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 = "pyre", - desc = [[Pyre is a performant type checker for Python compliant with PEP 484]], - homepage = "https://pypi.org/project/pyre-check/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Linter, Pkg.Cat.LSP }, - install = pip3.packages { "pyre-check", bin = { "pyre" } }, -} diff --git a/lua/mason-registry/pyright/init.lua b/lua/mason-registry/pyright/init.lua deleted file mode 100644 index 82957fa0..00000000 --- a/lua/mason-registry/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-registry/python-lsp-server/init.lua b/lua/mason-registry/python-lsp-server/init.lua deleted file mode 100644 index 8fb212a4..00000000 --- a/lua/mason-registry/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-registry/quick-lint-js/init.lua b/lua/mason-registry/quick-lint-js/init.lua deleted file mode 100644 index 40764b37..00000000 --- a/lua/mason-registry/quick-lint-js/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 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 = _.dedent [[ - 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 deleted file mode 100644 index acb12ea4..00000000 --- a/lua/mason-registry/r-languageserver/init.lua +++ /dev/null @@ -1,87 +0,0 @@ -local a = require "mason-core.async" -local async_uv = require "mason-core.async.uv" -local Pkg = require "mason-core.package" -local path = require "mason-core.path" -local github = require "mason-core.managers.github" - ----@param install_dir string ----@param ref string -local function create_install_script(install_dir, ref) - 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, - ref = %q -); -library("languageserver", lib.loc = rlsLib); -]]):format(install_dir, ref) -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) - local source = github.release_version { repo = "REditorSupport/languageserver" } - source.with_receipt() - ctx.spawn.R { - "--no-save", - on_spawn = a.scope(function(_, stdio) - local stdin = stdio[1] - async_uv.write(stdin, create_install_script(ctx.cwd:get(), source.release)) - async_uv.shutdown(stdin) - async_uv.close(stdin) - end), - } - ctx.fs:write_file("server.R", create_server_script(ctx.package:get_install_path())) - - ctx:link_bin( - "r-languageserver", - ctx:write_shell_exec_wrapper( - "r-languageserver", - ("R --slave -f %q"):format(path.concat { ctx.package:get_install_path(), "server.R" }) - ) - ) - end, -} diff --git a/lua/mason-registry/raku-navigator/init.lua b/lua/mason-registry/raku-navigator/init.lua deleted file mode 100644 index 3c9cb3e1..00000000 --- a/lua/mason-registry/raku-navigator/init.lua +++ /dev/null @@ -1,22 +0,0 @@ -local Pkg = require "mason-core.package" -local git = require "mason-core.managers.git" -local path = require "mason-core.path" - -return Pkg.new { - name = "raku-navigator", - desc = [[Raku Language Server that includes Raku critic and code navigation]], - homepage = "https://github.com/bscan/RakuNavigator", - languages = { Pkg.Lang.Raku }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - git.clone({ "https://github.com/bscan/RakuNavigator" }).with_receipt() - ctx.spawn.npm { "install" } - ctx.spawn.npm { "run", "compile" } - ctx:link_bin( - "raku-navigator", - ctx:write_node_exec_wrapper("raku-navigator", path.concat { "server", "out", "server.js" }) - ) - end, -} diff --git a/lua/mason-registry/reason-language-server/init.lua b/lua/mason-registry/reason-language-server/init.lua deleted file mode 100644 index 20aab910..00000000 --- a/lua/mason-registry/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-registry/remark-cli/init.lua b/lua/mason-registry/remark-cli/init.lua deleted file mode 100644 index 46be0619..00000000 --- a/lua/mason-registry/remark-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 = "remark-cli", - desc = [[Command line interface to inspect and change markdown files with remark.]], - homepage = "https://remark.js.org/", - languages = { Pkg.Lang.Markdown }, - categories = { Pkg.Cat.Formatter }, - install = npm.packages { "remark-cli", bin = { "remark" } }, -} diff --git a/lua/mason-registry/remark-language-server/init.lua b/lua/mason-registry/remark-language-server/init.lua deleted file mode 100644 index e891b370..00000000 --- a/lua/mason-registry/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-registry/reorder-python-imports/init.lua b/lua/mason-registry/reorder-python-imports/init.lua deleted file mode 100644 index 6a267aad..00000000 --- a/lua/mason-registry/reorder-python-imports/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 = "reorder-python-imports", - desc = [[Tool for automatically reordering python imports. Similar to isort but uses static analysis more.]], - homepage = "https://github.com/asottile/reorder_python_imports", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "reorder-python-imports", bin = { "reorder-python-imports" } }, -} diff --git a/lua/mason-registry/rescript-lsp/init.lua b/lua/mason-registry/rescript-lsp/init.lua deleted file mode 100644 index ec79ab09..00000000 --- a/lua/mason-registry/rescript-lsp/init.lua +++ /dev/null @@ -1,36 +0,0 @@ -local Pkg = require "mason-core.package" -local github = require "mason-core.managers.github" -local path = require "mason-core.path" - -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 - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "rescript-lang/rescript-vscode", - asset_file = function(version) - return ("rescript-vscode-%s.vsix"):format(version) - end, - }) - .with_receipt() - - ctx:link_bin( - "rescript-lsp", - ctx:write_node_exec_wrapper( - "rescript-lsp", - path.concat { - "extension", - "server", - "out", - "server.js", - } - ) - ) - end, -} diff --git a/lua/mason-registry/revive/init.lua b/lua/mason-registry/revive/init.lua deleted file mode 100644 index 3f9678d0..00000000 --- a/lua/mason-registry/revive/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 = "revive", - desc = [[~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint]], - homepage = "https://github.com/mgechev/revive", - categories = { Pkg.Cat.Linter }, - languages = { Pkg.Lang.Go }, - install = go.packages { "github.com/mgechev/revive", bin = { "revive" } }, -} diff --git a/lua/mason-registry/rnix-lsp/init.lua b/lua/mason-registry/rnix-lsp/init.lua deleted file mode 100644 index 75576ed6..00000000 --- a/lua/mason-registry/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-registry/robotframework-lsp/init.lua b/lua/mason-registry/robotframework-lsp/init.lua deleted file mode 100644 index 4458e3b3..00000000 --- a/lua/mason-registry/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-registry/rome/init.lua b/lua/mason-registry/rome/init.lua deleted file mode 100644 index 66faf621..00000000 --- a/lua/mason-registry/rome/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 = "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 }, - install = npm.packages { "rome", bin = { "rome" } }, -} diff --git a/lua/mason-registry/rstcheck/init.lua b/lua/mason-registry/rstcheck/init.lua deleted file mode 100644 index 0c939b04..00000000 --- a/lua/mason-registry/rstcheck/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 = "rstcheck", - desc = "Checks syntax of reStructuredText and code blocks nested within it.", - homepage = "https://rstcheck.readthedocs.io/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "rstcheck", bin = { "rstcheck" } }, -} diff --git a/lua/mason-registry/rubocop/init.lua b/lua/mason-registry/rubocop/init.lua deleted file mode 100644 index 8b502756..00000000 --- a/lua/mason-registry/rubocop/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 = "rubocop", - desc = [[The Ruby Linter/Formatter that Serves and Protects]], - homepage = "https://rubocop.org", - languages = { Pkg.Lang.Ruby }, - categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, - install = gem.packages { "rubocop", bin = { "rubocop" } }, -} diff --git a/lua/mason-registry/ruby-lsp/init.lua b/lua/mason-registry/ruby-lsp/init.lua deleted file mode 100644 index d84487b3..00000000 --- a/lua/mason-registry/ruby-lsp/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 = "ruby-lsp", - desc = [[This gem is an implementation of the language server protocol specification for Ruby, used to improve editor features.]], - homepage = "https://github.com/Shopify/ruby-lsp", - languages = { Pkg.Lang.Ruby }, - categories = { Pkg.Cat.LSP }, - install = gem.packages { "ruby-lsp", bin = { "ruby-lsp" } }, -} diff --git a/lua/mason-registry/ruff-lsp/init.lua b/lua/mason-registry/ruff-lsp/init.lua deleted file mode 100644 index dc9d42cd..00000000 --- a/lua/mason-registry/ruff-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 = "ruff-lsp", - desc = [[A Language Server Protocol implementation for Ruff - An extremely fast Python linter, written in Rust.]], - homepage = "https://github.com/charliermarsh/ruff-lsp/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.LSP }, - install = pip3.packages { "ruff-lsp", bin = { "ruff-lsp" } }, -} diff --git a/lua/mason-registry/ruff/init.lua b/lua/mason-registry/ruff/init.lua deleted file mode 100644 index 354f013c..00000000 --- a/lua/mason-registry/ruff/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 = "ruff", - desc = [[An extremely fast Python linter, written in Rust.]], - homepage = "https://github.com/charliermarsh/ruff/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "ruff", bin = { "ruff" } }, -} diff --git a/lua/mason-registry/rust-analyzer/init.lua b/lua/mason-registry/rust-analyzer/init.lua deleted file mode 100644 index 27294e29..00000000 --- a/lua/mason-registry/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 = _.dedent [[ - 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 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_x64_gnu, "rust-analyzer-x86_64-unknown-linux-gnu.gz"), - when(platform.is.linux_arm64_gnu, "rust-analyzer-aarch64-unknown-linux-gnu.gz"), - when(platform.is.linux_x64_musl, "rust-analyzer-x86_64-unknown-linux-musl.gz"), - when(platform.is.win_arm64, "rust-analyzer-aarch64-pc-windows-msvc.zip"), - when(platform.is.win_x64, "rust-analyzer-x86_64-pc-windows-msvc.zip") - ) - - platform.when { - unix = function() - github - .gunzip_release_file({ - repo = "rust-lang/rust-analyzer", - asset_file = asset_file, - out_file = "rust-analyzer", - }) - .with_receipt() - end, - win = function() - github - .unzip_release_file({ - repo = "rust-lang/rust-analyzer", - asset_file = asset_file, - }) - .with_receipt() - end, - } - 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/rustfmt/init.lua b/lua/mason-registry/rustfmt/init.lua deleted file mode 100644 index c53aa98a..00000000 --- a/lua/mason-registry/rustfmt/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 = "rustfmt", - desc = [[A tool for formatting Rust code according to style guidelines]], - homepage = "https://github.com/rust-lang/rustfmt", - categories = { Pkg.Cat.Formatter }, - languages = { Pkg.Lang.Rust }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - platform.when { - unix = function() - local source = github.untargz_release_file { - repo = "rust-lang/rustfmt", - asset_file = coalesce( - when(platform.is.mac, _.format "rustfmt_macos-x86_64_%s.tar.gz"), - when(platform.is.linux_x64, _.format "rustfmt_linux-x86_64_%s.tar.gz") - ), - } - source.with_receipt() - ctx:link_bin("rustfmt", path.concat { source.asset_file:gsub("%.tar%.gz$", ""), "rustfmt" }) - end, - win = function() - local source = github.unzip_release_file { - repo = "rust-lang/rustfmt", - asset_file = coalesce(when(platform.is.win_x64, _.format "rustfmt_windows-x86_64-msvc_%s.zip")), - } - source.with_receipt() - ctx:link_bin("rustfmt", path.concat { source.asset_file:gsub("%.zip$", ""), "rustfmt.exe" }) - end, - } - end, -} diff --git a/lua/mason-registry/rustywind/init.lua b/lua/mason-registry/rustywind/init.lua deleted file mode 100644 index ab81db51..00000000 --- a/lua/mason-registry/rustywind/init.lua +++ /dev/null @@ -1,18 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "rustywind", - desc = [[CLI for organizing Tailwind CSS classes]], - homepage = "https://github.com/avencera/rustywind", - languages = { - Pkg.Lang.JavaScript, - Pkg.Lang.TypeScript, - Pkg.Lang.JSX, - Pkg.Lang.HTML, - Pkg.Lang.Vue, - Pkg.Lang.Angular, - }, - categories = { Pkg.Cat.Formatter }, - install = npm.packages { "rustywind", bin = { "rustywind" } }, -} diff --git a/lua/mason-registry/salt-lsp/init.lua b/lua/mason-registry/salt-lsp/init.lua deleted file mode 100644 index 91f79be5..00000000 --- a/lua/mason-registry/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-registry/selene/init.lua b/lua/mason-registry/selene/init.lua deleted file mode 100644 index d6dfd963..00000000 --- a/lua/mason-registry/selene/init.lua +++ /dev/null @@ -1,34 +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 = "selene", - desc = [[A blazing-fast modern Lua linter written in Rust]], - homepage = "https://kampfkarren.github.io/selene/", - languages = { Pkg.Lang.Lua, Pkg.Lang.Luau }, - categories = { Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "Kampfkarren/selene", - asset_file = function(release) - local target = coalesce( - when(platform.is.mac, "selene-%s-macos.zip"), - when(platform.is.linux_x64, "selene-%s-linux.zip"), - when(platform.is.win_x64, "selene-%s-windows.zip") - ) - return target and target:format(release) - end, - }) - .with_receipt() - std.chmod("+x", { "selene" }) - ctx:link_bin("selene", platform.is.win and "selene.exe" or "selene") - end, -} diff --git a/lua/mason-registry/semgrep/init.lua b/lua/mason-registry/semgrep/init.lua deleted file mode 100644 index 45e766cb..00000000 --- a/lua/mason-registry/semgrep/init.lua +++ /dev/null @@ -1,22 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" - -return Pkg.new { - name = "semgrep", - desc = "Semgrep is a fast, open-source, static analysis engine for finding bugs, detecting vulnerabilities in third-party dependencies, and enforcing code standards.", - homepage = "https://github.com/returntocorp/semgrep", - languages = { - Pkg.Lang["C#"], - Pkg.Lang.Go, - Pkg.Lang.Java, - Pkg.Lang.JavaScript, - Pkg.Lang.JSON, - Pkg.Lang.PHP, - Pkg.Lang.Python, - Pkg.Lang.Ruby, - Pkg.Lang.TypeScript, - Pkg.Lang.Scala, - }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "semgrep", bin = { "semgrep" } }, -} diff --git a/lua/mason-registry/serve-d/init.lua b/lua/mason-registry/serve-d/init.lua deleted file mode 100644 index 77734960..00000000 --- a/lua/mason-registry/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-registry/shellcheck/init.lua b/lua/mason-registry/shellcheck/init.lua deleted file mode 100644 index 4d6ef2bc..00000000 --- a/lua/mason-registry/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-registry/shellharden/init.lua b/lua/mason-registry/shellharden/init.lua deleted file mode 100644 index 847dc766..00000000 --- a/lua/mason-registry/shellharden/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local Pkg = require "mason-core.package" -local cargo = require "mason-core.managers.cargo" - -return Pkg.new { - name = "shellharden", - desc = [[The corrective bash syntax highlighter]], - homepage = "https://github.com/anordal/shellharden", - languages = { Pkg.Lang.Bash }, - categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, - install = cargo.crate("shellharden", { bin = { "shellharden" } }), -} diff --git a/lua/mason-registry/shfmt/init.lua b/lua/mason-registry/shfmt/init.lua deleted file mode 100644 index 798a7968..00000000 --- a/lua/mason-registry/shfmt/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 = "shfmt", - desc = [[A shell formatter (sh/bash/mksh)]], - homepage = "https://github.com/mvdan/sh", - languages = { Pkg.Lang.Bash, Pkg.Lang.Mksh, Pkg.Lang.Shell }, - categories = { Pkg.Cat.Formatter }, - install = function(ctx) - github - .download_release_file({ - repo = "mvdan/sh", - out_file = platform.is.win and "shfmt.exe" or "shfmt", - asset_file = coalesce( - when(platform.is.mac_arm64, _.format "shfmt_%s_darwin_arm64"), - when(platform.is.mac_x64, _.format "shfmt_%s_darwin_amd64"), - when(platform.is.linux_arm64, _.format "shfmt_%s_linux_arm64"), - when(platform.is.linux_x64, _.format "shfmt_%s_linux_amd64"), - when(platform.is.win_x86, _.format "shfmt_%s_windows_386.exe"), - when(platform.is.win_x64, _.format "shfmt_%s_windows_amd64.exe") - ), - }) - .with_receipt() - std.chmod("+x", { "shfmt" }) - ctx:link_bin("shfmt", platform.is.win and "shfmt.exe" or "shfmt") - end, -} diff --git a/lua/mason-registry/shopify-theme-check/init.lua b/lua/mason-registry/shopify-theme-check/init.lua deleted file mode 100644 index bba774f8..00000000 --- a/lua/mason-registry/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-registry/slint-lsp/init.lua b/lua/mason-registry/slint-lsp/init.lua deleted file mode 100644 index 50e26725..00000000 --- a/lua/mason-registry/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-registry/smithy-language-server/init.lua b/lua/mason-registry/smithy-language-server/init.lua deleted file mode 100644 index cef679c5..00000000 --- a/lua/mason-registry/smithy-language-server/init.lua +++ /dev/null @@ -1,38 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local fs = require "mason-core.fs" -local git = require "mason-core.managers.git" -local path = require "mason-core.path" - -return Pkg.new { - name = "smithy-language-server", - desc = "A Language Server Protocol implementation for the Smithy IDL.", - homepage = "https://github.com/awslabs/smithy-language-server", - languages = { Pkg.Lang.Smithy }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - git.clone({ "https://github.com/awslabs/smithy-language-server" }).with_receipt() - ctx:promote_cwd() - ctx.spawn.gradlew { - "build", - with_paths = { ctx.cwd:get() }, - } - - local version = _.trim(ctx.fs:read_file "VERSION") - - ctx:link_bin( - "smithy-language-server", - ctx:write_shell_exec_wrapper( - "smithy-language-server", - ("java -jar %q"):format(path.concat { - ctx.package:get_install_path(), - "build", - "libs", - ("smithy-language-server-%s.jar"):format(version), - }) - ) - ) - end, -} diff --git a/lua/mason-registry/solang/init.lua b/lua/mason-registry/solang/init.lua deleted file mode 100644 index b8b16b86..00000000 --- a/lua/mason-registry/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, "llvm14.0-mac-intel.tar.xz"), - when(platform.is.mac_arm64, "llvm14.0-mac-arm.tar.xz"), - when(platform.is.linux_x64, "llvm14.0-linux-x86-64.tar.xz"), - when(platform.is.linux_arm64, "llvm14.0-linux-arm64.tar.xz"), - when(platform.is.win_x64, "llvm14.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 deleted file mode 100644 index e69f84cd..00000000 --- a/lua/mason-registry/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-registry/solhint/init.lua b/lua/mason-registry/solhint/init.lua deleted file mode 100644 index be55e2f5..00000000 --- a/lua/mason-registry/solhint/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 = "solhint", - desc = [[Solhint is a linting utility for Solidity code]], - homepage = "https://protofire.github.io/solhint/", - languages = { Pkg.Lang.Solidity }, - categories = { Pkg.Cat.Linter }, - install = npm.packages { "solhint", bin = { "solhint" } }, -} diff --git a/lua/mason-registry/solidity-ls/init.lua b/lua/mason-registry/solidity-ls/init.lua deleted file mode 100644 index d5a9259e..00000000 --- a/lua/mason-registry/solidity-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 = "solidity-ls", - desc = [[Solidity language server.]], - homepage = "https://github.com/qiuxiang/solidity-ls", - languages = { Pkg.Lang.Solidity }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "solidity-ls", bin = { "solidity-ls" } }, -} diff --git a/lua/mason-registry/solidity/init.lua b/lua/mason-registry/solidity/init.lua deleted file mode 100644 index d3b0385c..00000000 --- a/lua/mason-registry/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-registry/sorbet/init.lua b/lua/mason-registry/sorbet/init.lua deleted file mode 100644 index 4b111542..00000000 --- a/lua/mason-registry/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-registry/sourcery/init.lua b/lua/mason-registry/sourcery/init.lua deleted file mode 100644 index 0122af55..00000000 --- a/lua/mason-registry/sourcery/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "sourcery", - desc = _.dedent [[ - 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/sources/init.lua b/lua/mason-registry/sources/init.lua new file mode 100644 index 00000000..39b7fad5 --- /dev/null +++ b/lua/mason-registry/sources/init.lua @@ -0,0 +1,57 @@ +local M = {} + +---@param registry_id string +---@return fun(): RegistrySource # Thunk to instantiate provider. +local function parse(registry_id) + local type, id = registry_id:match "^(.+):(.+)$" + if type == "lua" then + return function() + local LuaRegistrySource = require "mason-registry.sources.lua" + return LuaRegistrySource.new { + id = registry_id, + mod = id, + } + end + elseif type ~= nil then + error(("Unknown registry type %q: %q."):format(type, registry_id), 0) + end + error(("Malformed registry id: %q."):format(registry_id), 0) +end + +---@type ((fun(): RegistrySource) | RegistrySource)[] +local registries = {} + +---@param registry_ids string[] +function M.set_registries(registry_ids) + for _, registry in ipairs(registry_ids) do + local ok, err = pcall(function() + table.insert(registries, parse(registry)) + end) + if not ok then + local log = require "mason-core.log" + local notify = require "mason-core.notify" + log.fmt_error("Failed to parse registry %q: %s", registry, err) + notify(err, vim.log.levels.ERROR) + end + end +end + +function M.iter() + local i = 1 + return function() + while i <= #registries do + local registry = registries[i] + if type(registry) == "function" then + -- unwrap thunk + registry = registry() + registries[i] = registry + end + i = i + 1 + if registry:is_installed() then + return registry + end + end + end +end + +return M diff --git a/lua/mason-registry/sources/lua.lua b/lua/mason-registry/sources/lua.lua new file mode 100644 index 00000000..94b4e4f8 --- /dev/null +++ b/lua/mason-registry/sources/lua.lua @@ -0,0 +1,43 @@ +---@class LuaRegistrySourceSpec +---@field id string +---@field mod string + +---@class LuaRegistrySource : RegistrySource +---@field private spec LuaRegistrySourceSpec +local LuaRegistrySource = {} +LuaRegistrySource.__index = LuaRegistrySource + +---@param spec LuaRegistrySourceSpec +function LuaRegistrySource.new(spec) + return setmetatable({ + spec = spec, + }, LuaRegistrySource) +end + +function LuaRegistrySource:get_package(pkg_name) + local index = require(self.spec.mod) + if index[pkg_name] then + return require(index[pkg_name]) + end +end + +function LuaRegistrySource:get_all_package_names() + local index = require(self.spec.mod) + return vim.tbl_keys(index) +end + +function LuaRegistrySource:is_installed() + local ok = pcall(require, self.spec.mod) + return ok +end + +function LuaRegistrySource:install() + local Result = require "mason-core.result" + return Result.success() +end + +function LuaRegistrySource:__tostring() + return ("LuaRegistry(mod=%s)"):format(self.spec.mod) +end + +return LuaRegistrySource diff --git a/lua/mason-registry/spectral-language-server/init.lua b/lua/mason-registry/spectral-language-server/init.lua deleted file mode 100644 index 57cc7ff4..00000000 --- a/lua/mason-registry/spectral-language-server/init.lua +++ /dev/null @@ -1,35 +0,0 @@ -local Pkg = require "mason-core.package" -local git = require "mason-core.managers.git" -local github = require "mason-core.managers.github" -local _ = require "mason-core.functional" -local Optional = require "mason-core.optional" -local path = require "mason-core.path" - -return Pkg.new { - name = "spectral-language-server", - desc = _.dedent [[ - Awesome Spectral JSON/YAML linter with OpenAPI/AsyncAPI support. Spectral is a flexible object linter with out - of the box support for OpenAPI v2 and v3, JSON Schema, and AsyncAPI. - ]], - homepage = "https://github.com/stoplightio/vscode-spectral", - languages = { Pkg.Lang.JSON, Pkg.Lang.YAML }, - categories = { Pkg.Cat.LSP }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local source = github.tag { repo = "stoplightio/vscode-spectral" } - source.with_receipt() - ctx.fs:mkdir "build" - ctx:chdir("build", function() - git.clone { "https://github.com/stoplightio/vscode-spectral", version = Optional.of(source.tag) } - ctx.spawn.npm { "install" } - ctx.spawn.node { "make", "package" } - end) - ctx.fs:rename(path.concat { "build", "dist", "server", "index.js" }, "spectral-language-server.js") - ctx.fs:rmrf "build" - ctx:link_bin( - "spectral-language-server", - ctx:write_node_exec_wrapper("spectral-language-server", "spectral-language-server.js") - ) - end, -} diff --git a/lua/mason-registry/sql-formatter/init.lua b/lua/mason-registry/sql-formatter/init.lua deleted file mode 100644 index c3bcf10f..00000000 --- a/lua/mason-registry/sql-formatter/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 = "sql-formatter", - desc = [[A whitespace formatter for different query languages]], - homepage = "https://sql-formatter-org.github.io/sql-formatter/", - languages = { Pkg.Lang.SQL }, - categories = { Pkg.Cat.Formatter }, - install = npm.packages { "sql-formatter", bin = { "sql-formatter" } }, -} diff --git a/lua/mason-registry/sqlfluff/init.lua b/lua/mason-registry/sqlfluff/init.lua deleted file mode 100644 index bbd9ed7d..00000000 --- a/lua/mason-registry/sqlfluff/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 = "sqlfluff", - desc = [[SQLFluff is a dialect-flexible and configurable SQL linter]], - homepage = "https://github.com/sqlfluff/sqlfluff", - languages = { Pkg.Lang.SQL }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "sqlfluff", bin = { "sqlfluff" } }, -} diff --git a/lua/mason-registry/sqlls/init.lua b/lua/mason-registry/sqlls/init.lua deleted file mode 100644 index 7d719838..00000000 --- a/lua/mason-registry/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-registry/sqls/init.lua b/lua/mason-registry/sqls/init.lua deleted file mode 100644 index eb3215ea..00000000 --- a/lua/mason-registry/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-registry/standardrb/init.lua b/lua/mason-registry/standardrb/init.lua deleted file mode 100644 index eefb361f..00000000 --- a/lua/mason-registry/standardrb/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 = "standardrb", - desc = [[Ruby Style Guide, with linter and automatic code fixer]], - homepage = "https://github.com/testdouble/standard/", - languages = { Pkg.Lang.Ruby }, - categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, - install = gem.packages { "standard", bin = { "standardrb" } }, -} diff --git a/lua/mason-registry/staticcheck/init.lua b/lua/mason-registry/staticcheck/init.lua deleted file mode 100644 index ab3f0fff..00000000 --- a/lua/mason-registry/staticcheck/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 = "staticcheck", - desc = [[The advanced Go linter]], - homepage = "https://staticcheck.io/", - categories = { Pkg.Cat.Linter }, - languages = { Pkg.Lang.Go }, - install = go.packages { "honnef.co/go/tools/cmd/staticcheck", bin = { "staticcheck" } }, -} diff --git a/lua/mason-registry/stylelint-lsp/init.lua b/lua/mason-registry/stylelint-lsp/init.lua deleted file mode 100644 index 999ab033..00000000 --- a/lua/mason-registry/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-registry/stylua/init.lua b/lua/mason-registry/stylua/init.lua deleted file mode 100644 index 59adff44..00000000 --- a/lua/mason-registry/stylua/init.lua +++ /dev/null @@ -1,31 +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 = "stylua", - desc = [[An opinionated Lua code formatter]], - homepage = "https://github.com/JohnnyMorganz/StyLua", - languages = { Pkg.Lang.Lua, Pkg.Lang.Luau }, - categories = { Pkg.Cat.Formatter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - repo = "johnnymorganz/stylua", - asset_file = coalesce( - when(platform.is.mac_arm64, "stylua-macos-aarch64.zip"), - when(platform.is.mac_x64, "stylua-macos.zip"), - when(platform.is.linux_x64, "stylua-linux-x86_64.zip"), - when(platform.is.linux_arm64, "stylua-linux-aarch64.zip"), - when(platform.is.win_x64, "stylua-win64.zip") - ), - }) - .with_receipt() - ctx:link_bin("stylua", platform.is.win and "stylua.exe" or "stylua") - end, -} diff --git a/lua/mason-registry/svelte-language-server/init.lua b/lua/mason-registry/svelte-language-server/init.lua deleted file mode 100644 index ff495bda..00000000 --- a/lua/mason-registry/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-registry/svlangserver/init.lua b/lua/mason-registry/svlangserver/init.lua deleted file mode 100644 index dceef60d..00000000 --- a/lua/mason-registry/svlangserver/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "svlangserver", - desc = _.dedent [[ - 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 deleted file mode 100644 index 12e6b297..00000000 --- a/lua/mason-registry/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-registry/tailwindcss-language-server/init.lua b/lua/mason-registry/tailwindcss-language-server/init.lua deleted file mode 100644 index 9bde697a..00000000 --- a/lua/mason-registry/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-registry/taplo/init.lua b/lua/mason-registry/taplo/init.lua deleted file mode 100644 index b84d890f..00000000 --- a/lua/mason-registry/taplo/init.lua +++ /dev/null @@ -1,51 +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 std = require "mason-core.managers.std" - -local coalesce, when = _.coalesce, _.when - -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 }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - platform.when { - unix = function() - github - .gunzip_release_file({ - repo = "tamasfe/taplo", - asset_file = coalesce( - when(platform.is.mac_arm64, "taplo-full-darwin-aarch64.gz"), - when(platform.is.mac_x64, "taplo-full-darwin-x86_64.gz"), - when(platform.is.linux_x64, "taplo-full-linux-x86_64.gz"), - when(platform.is.linux_x86, "taplo-full-linux-x86.gz"), - when(platform.is.linux_arm64, "taplo-full-linux-aarch64.gz") - ), - out_file = "taplo", - }) - .with_receipt() - std.chmod("+x", { "taplo" }) - ctx:link_bin("taplo", "taplo") - end, - win = function() - github - .unzip_release_file({ - repo = "tamasfe/taplo", - asset_file = coalesce( - when(platform.is.win_x64, "taplo-full-windows-x86_64.zip"), - when(platform.is.win_x86, "taplo-full-windows-x86.zip") - ), - out_file = "taplo.zip", - }) - .with_receipt() - ctx:link_bin("taplo", "taplo.exe") - end, - } - end, -} diff --git a/lua/mason-registry/teal-language-server/init.lua b/lua/mason-registry/teal-language-server/init.lua deleted file mode 100644 index fcbdf9c4..00000000 --- a/lua/mason-registry/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-registry/tectonic/init.lua b/lua/mason-registry/tectonic/init.lua deleted file mode 100644 index a35a7fdf..00000000 --- a/lua/mason-registry/tectonic/init.lua +++ /dev/null @@ -1,62 +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 Optional = require "mason-core.optional" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "tectonic", - desc = [[Tectonic is a modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.]], - homepage = "https://tectonic-typesetting.github.io", - languages = { Pkg.Lang.LaTeX }, - categories = { Pkg.Cat.Compiler }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "tectonic-typesetting/tectonic" - local function format_release_file(file) - return _.compose(_.format(file), _.gsub("^tectonic@", "")) - end - - platform.when { - unix = function() - github - .untargz_release_file({ - repo = repo, - version = Optional.of "tectonic@0.12.0", - asset_file = coalesce( - when(platform.is.mac_x64, format_release_file "tectonic-%s-x86_64-apple-darwin.tar.gz"), - when(platform.is.mac_arm64, format_release_file "tectonic-%s-aarch64-apple-darwin.tar.gz"), - when( - platform.is.linux_x64_gnu, - format_release_file "tectonic-%s-x86_64-unknown-linux-gnu.tar.gz" - ), - when( - platform.is.linux_x64, - format_release_file "tectonic-%s-x86_64-unknown-linux-musl.tar.gz" - ), - when( - platform.is.linux_arm, - format_release_file "tectonic-%s-arm-unknown-linux-musleabihf.tar.gz" - ) - ), - }) - .with_receipt() - std.chmod("+x", { "tectonic" }) - ctx:link_bin("tectonic", "tectonic") - end, - win = function() - github - .unzip_release_file({ - repo = repo, - asset_file = format_release_file "tectonic-%s-x86_64-pc-windows-msvc.zip", - }) - .with_receipt() - ctx:link_bin("tectonic", "tectonic.exe") - end, - } - end, -} diff --git a/lua/mason-registry/terraform-ls/init.lua b/lua/mason-registry/terraform-ls/init.lua deleted file mode 100644 index 186f7e9e..00000000 --- a/lua/mason-registry/terraform-ls/init.lua +++ /dev/null @@ -1,47 +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 = "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) - local source = github.release_version { - repo = "hashicorp/terraform-ls", - } - source.with_receipt() - - local version = _.strip_prefix("v", source.release) - - 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.linux_x86, "terraform-ls_%s_linux_386.zip"), - when(platform.is.win_arm64, "terraform-ls_%s_windows_arm64.zip"), - when(platform.is.win_x64, "terraform-ls_%s_windows_amd64.zip"), - when(platform.is.win_x86, "terraform-ls_%s_windows_386.zip") - ) - - assert(target, "Current platform is not supported.") - - std.download_file( - ("https://releases.hashicorp.com/terraform-ls/%s/%s"):format(version, target:format(version)), - "terraform-ls.zip" - ) - std.unzip("terraform-ls.zip", ".") - - 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 deleted file mode 100644 index 9a31abbb..00000000 --- a/lua/mason-registry/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-registry/textlint/init.lua b/lua/mason-registry/textlint/init.lua deleted file mode 100644 index c5126793..00000000 --- a/lua/mason-registry/textlint/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 = "textlint", - desc = [[The pluggable natural language linter for text and markdown.]], - homepage = "https://textlint.github.io", - languages = { Pkg.Lang.Text, Pkg.Lang.Markdown }, - categories = { Pkg.Cat.Linter }, - install = npm.packages { "textlint", bin = { "textlint" } }, -} diff --git a/lua/mason-registry/tflint/init.lua b/lua/mason-registry/tflint/init.lua deleted file mode 100644 index a886edc4..00000000 --- a/lua/mason-registry/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-registry/twigcs/init.lua b/lua/mason-registry/twigcs/init.lua deleted file mode 100644 index 4a0a638a..00000000 --- a/lua/mason-registry/twigcs/init.lua +++ /dev/null @@ -1,36 +0,0 @@ -local Pkg = require "mason-core.package" -local _ = require "mason-core.functional" -local github = require "mason-core.managers.github" -local std = require "mason-core.managers.std" -local platform = require "mason-core.platform" - -return Pkg.new { - name = "twigcs", - desc = _.dedent [[ - The missing checkstyle for twig! Twigcs aims to be what phpcs is to php. It checks your codebase for violations - on coding standards. - ]], - homepage = "https://github.com/friendsoftwig/twigcs", - languages = { Pkg.Lang.Twig }, - categories = { Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - github - .download_release_file({ - repo = "friendsoftwig/twigcs", - asset_file = "twigcs.phar", - out_file = platform.is.win and "twigcs.phar" or "twigcs", - }) - .with_receipt() - platform.when { - unix = function() - std.chmod("+x", { "twigcs" }) - ctx:link_bin("twigcs", "twigcs") - end, - win = function() - ctx:link_bin("twigcs", ctx:write_php_exec_wrapper("twigcs", "twigcs.phar")) - end, - } - end, -} diff --git a/lua/mason-registry/typescript-language-server/init.lua b/lua/mason-registry/typescript-language-server/init.lua deleted file mode 100644 index d978c4e1..00000000 --- a/lua/mason-registry/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-registry/unocss-language-server/init.lua b/lua/mason-registry/unocss-language-server/init.lua deleted file mode 100644 index 5d00c873..00000000 --- a/lua/mason-registry/unocss-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 = "unocss-language-server", - desc = [[Language Server Protocol implementation for UnoCSS.]], - homepage = "https://github.com/xna00/unocss-language-server", - languages = { Pkg.Lang.CSS }, - categories = { Pkg.Cat.LSP }, - install = npm.packages { "unocss-language-server", bin = { "unocss-language-server" } }, -} diff --git a/lua/mason-registry/usort/init.lua b/lua/mason-registry/usort/init.lua deleted file mode 100644 index 03c4d3a8..00000000 --- a/lua/mason-registry/usort/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 = "usort", - desc = [[Safe, minimal import sorting for Python projects.]], - homepage = "https://usort.readthedocs.io/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "usort", bin = { "usort" } }, -} diff --git a/lua/mason-registry/vacuum/init.lua b/lua/mason-registry/vacuum/init.lua deleted file mode 100644 index cd4b6410..00000000 --- a/lua/mason-registry/vacuum/init.lua +++ /dev/null @@ -1,43 +0,0 @@ -local Pkg = require "mason-core.package" -local github = require "mason-core.managers.github" -local platform = require "mason-core.platform" -local _ = require "mason-core.functional" - -local coalesce, when = _.coalesce, _.when - -return Pkg.new { - name = "vacuum", - desc = _.dedent [[ - vacuum is the worlds fastest OpenAPI 3, OpenAPI 2 / Swagger linter and quality analysis tool. - Built in go, it tears through API specs faster than you can think. - vacuum is compatible with Spectral rulesets and generates compatible reports. - ]], - homepage = "https://github.com/daveshanley/vacuum", - languages = { Pkg.Lang.OpenAPI }, - categories = { Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - ---@param template string - local function release_file(template) - return _.compose(_.format(template), _.strip_prefix "v") - end - - github - .untargz_release_file({ - repo = "daveshanley/vacuum", - asset_file = coalesce( - when(platform.is.darwin_arm64, release_file "vacuum_%s_darwin_arm64.tar.gz"), - when(platform.is.darwin_x64, release_file "vacuum_%s_darwin_x86_64.tar.gz"), - when(platform.is.linux_arm64, release_file "vacuum_%s_linux_arm64.tar.gz"), - when(platform.is.linux_x64, release_file "vacuum_%s_linux_x86_64.tar.gz"), - when(platform.is.linux_x86, release_file "vacuum_%s_linux_i386.tar.gz"), - when(platform.is.win_arm64, release_file "vacuum_%s_windows_arm64.tar.gz"), - when(platform.is.win_x64, release_file "vacuum_%s_windows_x86_64.tar.gz"), - when(platform.is.win_x86, release_file "vacuum_%s_windows_i386.tar.gz") - ), - }) - .with_receipt() - ctx:link_bin("vacuum", platform.is.win and "vacuum.exe" or "vacuum") - end, -} diff --git a/lua/mason-registry/vala-language-server/init.lua b/lua/mason-registry/vala-language-server/init.lua deleted file mode 100644 index 5708205c..00000000 --- a/lua/mason-registry/vala-language-server/init.lua +++ /dev/null @@ -1,36 +0,0 @@ -local Pkg = require "mason-core.package" -local std = require "mason-core.managers.std" -local github = require "mason-core.managers.github" -local git = require "mason-core.managers.git" -local platform = require "mason-core.platform" -local path = require "mason-core.path" -local Optional = require "mason-core.optional" - -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 repo = "vala-lang/vala-language-server" - local source = github.tag { repo = repo } - source.with_receipt() - git.clone { ("https://github.com/%s.git"):format(repo), version = Optional.of(source.tag) } - - local install_dir = ctx.cwd:get() - ctx.spawn.meson { "setup", ("-Dprefix=%s"):format(install_dir), "build" } - ctx.spawn.meson { "compile", "-C", "build" } - ctx.spawn.meson { "install", "-C", "build" } - 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/vale/init.lua b/lua/mason-registry/vale/init.lua deleted file mode 100644 index 2d65a929..00000000 --- a/lua/mason-registry/vale/init.lua +++ /dev/null @@ -1,49 +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 = "vale", - desc = [[📝 A syntax-aware linter for prose built with speed and extensibility in mind.]], - homepage = "https://vale.sh/", - languages = { Pkg.Lang.Text, Pkg.Lang.Markdown, Pkg.Lang.LaTeX }, - categories = { Pkg.Cat.Linter }, - ---@async - ---@param ctx InstallContext - install = function(ctx) - local repo = "errata-ai/vale" - local release_file = assert( - coalesce( - when(platform.is.mac_x64, "vale_%s_macOS_64-bit.tar.gz"), - when(platform.is.mac_arm64, "vale_%s_macOS_arm64.tar.gz"), - when(platform.is.linux_x64, "vale_%s_Linux_64-bit.tar.gz"), - when(platform.is.linux_arm64, "vale_%s_Linux_arm64.tar.gz"), - when(platform.is.win_x64, "vale_%s_Windows_64-bit.zip") - ), - "Current platform is not supported." - ) - - platform.when { - unix = function() - github - .untargz_release_file({ - repo = repo, - asset_file = _.compose(_.format(release_file), _.gsub("^v", "")), - }) - .with_receipt() - end, - win = function() - github - .unzip_release_file({ - repo = repo, - asset_file = _.compose(_.format(release_file), _.gsub("^v", "")), - }) - .with_receipt() - end, - } - ctx:link_bin("vale", platform.is.win and "vale.exe" or "vale") - end, -} diff --git a/lua/mason-registry/verible/init.lua b/lua/mason-registry/verible/init.lua deleted file mode 100644 index b0b2fa9c..00000000 --- a/lua/mason-registry/verible/init.lua +++ /dev/null @@ -1,101 +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 = coalesce( - when( - os_dist.id == "ubuntu" and platform.arch == "x64", - coalesce( - when( - os_dist.version.major == 16, - _.format "verible-%s-Ubuntu-16.04-xenial-x86_64.tar.gz" - ), - when( - os_dist.version.major == 18, - _.format "verible-%s-Ubuntu-18.04-bionic-x86_64.tar.gz" - ), - when( - os_dist.version.major == 20, - _.format "verible-%s-Ubuntu-20.04-focal-x86_64.tar.gz" - ), - when( - os_dist.version.major == 22, - _.format "verible-%s-Ubuntu-22.04-jammy-x86_64.tar.gz" - ) - ) - ), - when( - os_dist.id == "centos" and platform.arch == "x64", - coalesce( - when( - os_dist.version.major == 7, - _.format "verible-%s-CentOS-7.9.2009-Core-x86_64.tar.gz" - ) - ) - ), - when(platform.is.linux_x64_gnu, _.format "verible-%s-Ubuntu-20.04-focal-x86_64.tar.gz") - ), - } - 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 = coalesce(when(platform.is.win_x64, _.format "verible-%s-win64.zip")), - } - 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/veryl-ls/init.lua b/lua/mason-registry/veryl-ls/init.lua deleted file mode 100644 index 6b45e20f..00000000 --- a/lua/mason-registry/veryl-ls/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 = "veryl-ls", - desc = [[Veryl language server]], - homepage = "https://github.com/dalance/veryl", - languages = { Pkg.Lang.Veryl }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("veryl-ls", { - bin = { "veryl-ls" }, - }), -} diff --git a/lua/mason-registry/vetur-vls/init.lua b/lua/mason-registry/vetur-vls/init.lua deleted file mode 100644 index 5bb0deff..00000000 --- a/lua/mason-registry/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-registry/vim-language-server/init.lua b/lua/mason-registry/vim-language-server/init.lua deleted file mode 100644 index e24e2f3b..00000000 --- a/lua/mason-registry/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-registry/vint/init.lua b/lua/mason-registry/vint/init.lua deleted file mode 100644 index 694a81aa..00000000 --- a/lua/mason-registry/vint/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 = "vint", - desc = [[Fast and Highly Extensible Vim script Language Lint implemented in Python.]], - homepage = "https://github.com/Vimjas/vint", - languages = { Pkg.Lang.VimScript }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "vim-vint", bin = { "vint" } }, -} diff --git a/lua/mason-registry/visualforce-language-server/init.lua b/lua/mason-registry/visualforce-language-server/init.lua deleted file mode 100644 index f971ee7f..00000000 --- a/lua/mason-registry/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 _ = require "mason-core.functional" -local path = require "mason-core.path" - -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 - ---@param ctx InstallContext - install = function(ctx) - github - .unzip_release_file({ - asset_file = _.compose(_.format "salesforcedx-vscode-visualforce-%s.vsix", _.gsub("^v", "")), - repo = "forcedotcom/salesforcedx-vscode", - }) - .with_receipt() - - ctx:link_bin( - "visualforce-language-server", - ctx:write_node_exec_wrapper( - "visualforce-language-server", - path.concat { - "extension", - "dist", - "visualforceServer.js", - } - ) - ) - end, -} diff --git a/lua/mason-registry/vls/init.lua b/lua/mason-registry/vls/init.lua deleted file mode 100644 index 92ac761b..00000000 --- a/lua/mason-registry/vls/init.lua +++ /dev/null @@ -1,35 +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" - - github - .download_release_file({ - version = Optional.of "latest", - 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/vtsls/init.lua b/lua/mason-registry/vtsls/init.lua deleted file mode 100644 index 89254fc7..00000000 --- a/lua/mason-registry/vtsls/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 = "vtsls", - desc = [[LSP wrapper around the TypeScript extension bundled with VSCode.]], - homepage = "https://github.com/yioneko/vtsls", - categories = { Pkg.Cat.LSP }, - languages = { Pkg.Lang.TypeScript, Pkg.Lang.JavaScript }, - install = npm.packages { "@vtsls/language-server", bin = { "vtsls" } }, -} diff --git a/lua/mason-registry/vue-language-server/init.lua b/lua/mason-registry/vue-language-server/init.lua deleted file mode 100644 index a9405a41..00000000 --- a/lua/mason-registry/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-registry/vulture/init.lua b/lua/mason-registry/vulture/init.lua deleted file mode 100644 index d6098f5c..00000000 --- a/lua/mason-registry/vulture/init.lua +++ /dev/null @@ -1,19 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "vulture", - desc = _.dedent [[ - Vulture finds unused code in Python programs. This is useful for cleaning up and finding errors in large code - bases. If you run Vulture on both your library and test suite you can find untested code. - - Due to Python's dynamic nature, static code analyzers like Vulture are likely to miss some dead code. Also, code - that is only called implicitly may be reported as unused. Nonetheless, Vulture can be a very helpful tool for - higher code quality. - ]], - homepage = "https://github.com/jendrikseipp/vulture", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "vulture", bin = { "vulture" } }, -} diff --git a/lua/mason-registry/wgsl-analyzer/init.lua b/lua/mason-registry/wgsl-analyzer/init.lua deleted file mode 100644 index c5ff2bb8..00000000 --- a/lua/mason-registry/wgsl-analyzer/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -local Pkg = require "mason-core.package" -local cargo = require "mason-core.managers.cargo" - -return Pkg.new { - name = "wgsl-analyzer", - desc = [[A language server implementation for the WGSL shading language]], - homepage = "https://github.com/wgsl-analyzer/wgsl-analyzer", - languages = { Pkg.Lang.WGSL }, - categories = { Pkg.Cat.LSP }, - install = cargo.crate("wgsl_analyzer", { - git = { - url = "https://github.com/wgsl-analyzer/wgsl-analyzer", - tag = true, - }, - bin = { "wgsl_analyzer" }, - }), -} diff --git a/lua/mason-registry/write-good/init.lua b/lua/mason-registry/write-good/init.lua deleted file mode 100644 index 6ca66d46..00000000 --- a/lua/mason-registry/write-good/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 = "write-good", - desc = [[Naive linter for English prose for developers who can't write good and wanna learn to do other stuff good too.]], - homepage = "https://github.com/btford/write-good", - languages = { Pkg.Lang.Markdown }, - categories = { Pkg.Cat.Linter }, - install = npm.packages { "write-good", bin = { "write-good" } }, -} diff --git a/lua/mason-registry/xmlformatter/init.lua b/lua/mason-registry/xmlformatter/init.lua deleted file mode 100644 index 9a8e0285..00000000 --- a/lua/mason-registry/xmlformatter/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "xmlformatter", - desc = _.dedent [[ - xmlformatter is an Open Source Python package that provides formatting of XML documents. xmlformatter differs - from others formatters by handling whitespaces by a distinct set of formatting rules - formatting element - content by an object style and mixed content by a text style. You may find xmlformatter useful for corrections - and presentations. - ]], - homepage = "https://github.com/pamoller/xmlformatter", - languages = { Pkg.Lang.XML }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "xmlformatter", bin = { "xmlformat" } }, -} diff --git a/lua/mason-registry/xo/init.lua b/lua/mason-registry/xo/init.lua deleted file mode 100644 index 17769ae7..00000000 --- a/lua/mason-registry/xo/init.lua +++ /dev/null @@ -1,14 +0,0 @@ -local Pkg = require "mason-core.package" -local npm = require "mason-core.managers.npm" - -return Pkg.new { - name = "xo", - desc = [[JavaScript/TypeScript linter (ESLint wrapper) with great defaults]], - homepage = "https://github.com/xojs/xo", - languages = { - Pkg.Lang.JavaScript, - Pkg.Lang.TypeScript, - }, - categories = { Pkg.Cat.Linter }, - install = npm.packages { "xo", bin = { "xo" } }, -} diff --git a/lua/mason-registry/yaml-language-server/init.lua b/lua/mason-registry/yaml-language-server/init.lua deleted file mode 100644 index 67010889..00000000 --- a/lua/mason-registry/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-registry/yamlfmt/init.lua b/lua/mason-registry/yamlfmt/init.lua deleted file mode 100644 index 9f770f58..00000000 --- a/lua/mason-registry/yamlfmt/init.lua +++ /dev/null @@ -1,35 +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 = "yamlfmt", - desc = [[yamlfmt is an extensible command line tool or library to format yaml files.]], - homepage = "https://github.com/google/yamlfmt", - categories = { Pkg.Cat.Formatter }, - languages = { Pkg.Lang.YAML }, - install = function(ctx) - ---@param template_string string - local function release_file(template_string) - return _.compose(_.format(template_string), _.gsub("^v", "")) - end - - github - .untargz_release_file({ - repo = "google/yamlfmt", - asset_file = coalesce( - when(platform.is.mac_arm64, release_file "yamlfmt_%s_Darwin_arm64.tar.gz"), - when(platform.is.mac_x64, release_file "yamlfmt_%s_Darwin_x86_64.tar.gz"), - when(platform.is.linux_arm64, release_file "yamlfmt_%s_Linux_arm64.tar.gz"), - when(platform.is.linux_x64, release_file "yamlfmt_%s_Linux_x86_64.tar.gz"), - when(platform.is.win_x86, release_file "yamlfmt_%s_Windows_i386.tar.gz"), - when(platform.is.win_x64, release_file "yamlfmt_%s_Windows_x86_64.tar.gz") - ), - }) - .with_receipt() - ctx:link_bin("yamlfmt", platform.is.win and "yamlfmt.exe" or "yamlfmt") - end, -} diff --git a/lua/mason-registry/yamllint/init.lua b/lua/mason-registry/yamllint/init.lua deleted file mode 100644 index 334ac86e..00000000 --- a/lua/mason-registry/yamllint/init.lua +++ /dev/null @@ -1,15 +0,0 @@ -local Pkg = require "mason-core.package" -local pip3 = require "mason-core.managers.pip3" -local _ = require "mason-core.functional" - -return Pkg.new { - name = "yamllint", - desc = _.dedent [[ - Linter for YAML files. yamllint does not only check for syntax validity, but for weirdnesses like key repetition - and cosmetic problems such as lines length, trailing spaces, indentation, etc. - ]], - homepage = "https://github.com/adrienverge/yamllint", - languages = { Pkg.Lang.YAML }, - categories = { Pkg.Cat.Linter }, - install = pip3.packages { "yamllint", bin = { "yamllint" } }, -} diff --git a/lua/mason-registry/yapf/init.lua b/lua/mason-registry/yapf/init.lua deleted file mode 100644 index 15041f2f..00000000 --- a/lua/mason-registry/yapf/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 = "yapf", - desc = [[YAPF, Yet Another Python Formatter]], - homepage = "https://pypi.org/project/yapf/", - languages = { Pkg.Lang.Python }, - categories = { Pkg.Cat.Formatter }, - install = pip3.packages { "yapf", "toml", bin = { "yapf" } }, -} diff --git a/lua/mason-registry/zk/init.lua b/lua/mason-registry/zk/init.lua deleted file mode 100644 index 8934c597..00000000 --- a/lua/mason-registry/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-registry/zls/init.lua b/lua/mason-registry/zls/init.lua deleted file mode 100644 index 0ab94850..00000000 --- a/lua/mason-registry/zls/init.lua +++ /dev/null @@ -1,36 +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_arm64, "aarch64-macos.tar.zst"), - when(platform.is.mac_x64, "x86_64-macos.tar.zst"), - when(platform.is.linux_x64, "x86_64-linux.tar.zst"), - when(platform.is.linux_x86, "i386-linux.tar.zst"), - when(platform.is.win_x64, "x86_64-windows.tar.zst"), - when(platform.is.win_x86, "i386-windows.tar.zst") - ) - github - .untarzst_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/init.lua b/lua/mason/init.lua index 6bbb411a..080ab195 100644 --- a/lua/mason/init.lua +++ b/lua/mason/init.lua @@ -27,6 +27,7 @@ function M.setup(config) require "mason.api.command" setup_autocmds() + require("mason-registry").set_registries(settings.current.registries) end return M diff --git a/lua/mason/settings.lua b/lua/mason/settings.lua index 09726a5c..9862c3cd 100644 --- a/lua/mason/settings.lua +++ b/lua/mason/settings.lua @@ -14,15 +14,10 @@ local DEFAULT_SETTINGS = { ---@type '"prepend"' | '"append"' | '"skip"' PATH = "prepend", - pip = { - -- Whether to upgrade pip to the latest version in the virtual environment before installing packages. - upgrade_pip = false, - - -- These args will be added to `pip install` calls. Note that setting extra args might impact intended behavior - -- and is not recommended. - -- - -- Example: { "--proxy", "https://proxyserver" } - install_args = {}, + -- The registries to source packages from. Accepts multiple entries. Should a package with the same name exist in + -- multiple registries, the registry listed first will be used. + registries = { + "lua:mason-registry.index", }, -- Controls to which degree logs are written to the log file. It's useful to set this to vim.log.levels.DEBUG when @@ -33,6 +28,16 @@ local DEFAULT_SETTINGS = { -- packages that are requested to be installed will be put in a queue. max_concurrent_installers = 4, + -- The provider implementations to use for resolving supplementary package metadata (e.g., all available versions). + -- Accepts multiple entries, where later entries will be used as fallback should prior providers fail. + -- Builtin providers are: + -- - mason.providers.registry-api - uses the https://api.mason-registry.dev API + -- - mason.providers.client - uses only client-side tooling to resolve metadata + providers = { + "mason.providers.registry-api", + "mason.providers.client", + }, + github = { -- The template URL to use when downloading assets from GitHub. -- The placeholders are the following (in order): @@ -42,13 +47,15 @@ local DEFAULT_SETTINGS = { download_url_template = "https://github.com/%s/releases/download/%s/%s", }, - -- The provider implementations to use for resolving package metadata (latest version, available versions, etc.). - -- Accepts multiple entries, where later entries will be used as fallback should prior providers fail. - -- Builtin providers are: - -- - mason.providers.registry-api (default) - uses the https://api.mason-registry.dev API - -- - mason.providers.client - uses only client-side tooling to resolve metadata - providers = { - "mason.providers.registry-api", + pip = { + -- Whether to upgrade pip to the latest version in the virtual environment before installing packages. + upgrade_pip = false, + + -- These args will be added to `pip install` calls. Note that setting extra args might impact intended behavior + -- and is not recommended. + -- + -- Example: { "--proxy", "https://proxyserver" } + install_args = {}, }, ui = { -- cgit v1.2.3-70-g09d2