aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-registry/buf/init.lua35
-rw-r--r--lua/mason-registry/csharpier/init.lua11
-rw-r--r--lua/mason-registry/index.lua5
-rw-r--r--lua/mason-registry/joker/init.lua35
-rw-r--r--lua/mason-registry/jq/init.lua34
-rw-r--r--lua/mason-registry/xo/init.lua14
-rw-r--r--lua/mason/mappings/language.lua13
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" },