diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/mason-registry/buf/init.lua | 35 | ||||
| -rw-r--r-- | lua/mason-registry/csharpier/init.lua | 11 | ||||
| -rw-r--r-- | lua/mason-registry/index.lua | 5 | ||||
| -rw-r--r-- | lua/mason-registry/joker/init.lua | 35 | ||||
| -rw-r--r-- | lua/mason-registry/jq/init.lua | 34 | ||||
| -rw-r--r-- | lua/mason-registry/xo/init.lua | 14 | ||||
| -rw-r--r-- | lua/mason/mappings/language.lua | 13 |
7 files changed, 141 insertions, 6 deletions
diff --git a/lua/mason-registry/buf/init.lua b/lua/mason-registry/buf/init.lua new file mode 100644 index 00000000..9221c27c --- /dev/null +++ b/lua/mason-registry/buf/init.lua @@ -0,0 +1,35 @@ +local Pkg = require "mason-core.package" +local platform = require "mason-core.platform" +local _ = require "mason-core.functional" +local github = require "mason-core.managers.github" +local std = require "mason-core.managers.std" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "buf", + desc = [[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/csharpier/init.lua b/lua/mason-registry/csharpier/init.lua new file mode 100644 index 00000000..d3600eb3 --- /dev/null +++ b/lua/mason-registry/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.lua b/lua/mason-registry/index.lua index 2298ea07..abb5f830 100644 --- a/lua/mason-registry/index.lua +++ b/lua/mason-registry/index.lua @@ -15,6 +15,7 @@ return { ["bicep-lsp"] = "mason-registry.bicep-lsp", black = "mason-registry.black", ["bsl-language-server"] = "mason-registry.bsl-language-server", + buf = "mason-registry.buf", ["chrome-debug-adapter"] = "mason-registry.chrome-debug-adapter", ["clang-format"] = "mason-registry.clang-format", clangd = "mason-registry.clangd", @@ -29,6 +30,7 @@ return { 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", @@ -84,6 +86,8 @@ return { isort = "mason-registry.isort", jdtls = "mason-registry.jdtls", ["jedi-language-server"] = "mason-registry.jedi-language-server", + joker = "mason-registry.joker", + jq = "mason-registry.jq", ["json-lsp"] = "mason-registry.json-lsp", ["json-to-struct"] = "mason-registry.json-to-struct", ["jsonnet-language-server"] = "mason-registry.jsonnet-language-server", @@ -179,6 +183,7 @@ return { ["vue-language-server"] = "mason-registry.vue-language-server", ["wgsl-analyzer"] = "mason-registry.wgsl-analyzer", ["write-good"] = "mason-registry.write-good", + xo = "mason-registry.xo", ["yaml-language-server"] = "mason-registry.yaml-language-server", yamllint = "mason-registry.yamllint", zk = "mason-registry.zk", diff --git a/lua/mason-registry/joker/init.lua b/lua/mason-registry/joker/init.lua new file mode 100644 index 00000000..c02b1bd1 --- /dev/null +++ b/lua/mason-registry/joker/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 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) + local function format_release_file(file) + return _.compose(_.format(file), _.gsub("^v", "")) + end + + github + .unzip_release_file({ + repo = "candid82/joker", + asset_file = coalesce( + when(platform.is.mac, format_release_file "joker-%s-mac-amd64.zip"), + when(platform.is.linux_x64, format_release_file "joker-%s-linux-amd64.zip"), + when(platform.is.win_x64, format_release_file "joker-%s-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/init.lua b/lua/mason-registry/jq/init.lua new file mode 100644 index 00000000..e3a5db5b --- /dev/null +++ b/lua/mason-registry/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/xo/init.lua b/lua/mason-registry/xo/init.lua new file mode 100644 index 00000000..17769ae7 --- /dev/null +++ b/lua/mason-registry/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/mappings/language.lua b/lua/mason/mappings/language.lua index 3e45a523..beee24f6 100644 --- a/lua/mason/mappings/language.lua +++ b/lua/mason/mappings/language.lua @@ -14,11 +14,11 @@ return { beancount = { "beancount-language-server" }, bicep = { "bicep-lsp" }, c = { "clang-format", "clangd", "codelldb", "cpplint", "cpptools" }, - ["c#"] = { "clang-format", "csharp-language-server", "netcoredbg", "omnisharp", "omnisharp-mono" }, + ["c#"] = { "clang-format", "csharp-language-server", "csharpier", "netcoredbg", "omnisharp", "omnisharp-mono" }, ["c++"] = { "clang-format", "clangd", "codelldb", "cpplint", "cpptools" }, clarity = { "clarity-lsp" }, - clojure = { "clojure-lsp" }, - clojurescript = { "clojure-lsp" }, + clojure = { "clojure-lsp", "joker" }, + clojurescript = { "clojure-lsp", "joker" }, cmake = { "cmake-language-server", "cmakelang" }, codeql = { "codeql" }, crystal = { "crystalline" }, @@ -48,9 +48,9 @@ return { hoon = { "hoon-language-server" }, html = { "erb-lint", "html-lsp", "prettier", "prettierd" }, java = { "clang-format", "jdtls" }, - javascript = { "chrome-debug-adapter", "clang-format", "deno", "eslint-lsp", "eslint_d", "firefox-debug-adapter", "node-debug2-adapter", "prettier", "prettierd", "quick-lint-js", "rome", "typescript-language-server" }, + javascript = { "chrome-debug-adapter", "clang-format", "deno", "eslint-lsp", "eslint_d", "firefox-debug-adapter", "node-debug2-adapter", "prettier", "prettierd", "quick-lint-js", "rome", "typescript-language-server", "xo" }, jinja = { "curlylint", "djlint" }, - json = { "clang-format", "fixjson", "json-lsp", "prettier", "prettierd", "spectral-language-server" }, + json = { "clang-format", "fixjson", "jq", "json-lsp", "prettier", "prettierd", "spectral-language-server" }, jsonnet = { "jsonnet-language-server" }, jsx = { "prettier", "prettierd" }, julia = { "julia-lsp" }, @@ -76,6 +76,7 @@ return { php = { "intelephense", "php-debug-adapter", "phpactor", "psalm" }, powershell = { "powershell-editor-services" }, prisma = { "prisma-language-server" }, + protobuf = { "buf" }, puppet = { "puppet-editor-services" }, purescript = { "purescript-language-server" }, python = { "black", "debugpy", "flake8", "isort", "jedi-language-server", "mypy", "pylint", "pyright", "python-lsp-server", "sourcery" }, @@ -100,7 +101,7 @@ return { text = { "grammarly-languageserver", "ltex-ls", "proselint", "vale" }, toml = { "taplo" }, twig = { "curlylint" }, - typescript = { "chrome-debug-adapter", "deno", "eslint-lsp", "eslint_d", "firefox-debug-adapter", "node-debug2-adapter", "prettier", "prettierd", "rome", "typescript-language-server" }, + typescript = { "chrome-debug-adapter", "deno", "eslint-lsp", "eslint_d", "firefox-debug-adapter", "node-debug2-adapter", "prettier", "prettierd", "rome", "typescript-language-server", "xo" }, v = { "vls" }, vala = { "vala-language-server" }, vimscript = { "vim-language-server", "vint" }, |
