aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lua/mason-core/managers/luarocks/init.lua5
-rw-r--r--lua/mason-registry/index.lua1
-rw-r--r--lua/mason-registry/luaformatter/init.lua14
-rw-r--r--lua/mason/mappings/language.lua2
-rw-r--r--tests/mason-core/managers/luarocks_spec.lua22
5 files changed, 41 insertions, 3 deletions
diff --git a/lua/mason-core/managers/luarocks/init.lua b/lua/mason-core/managers/luarocks/init.lua
index 0deb2e1f..9fd59ca1 100644
--- a/lua/mason-core/managers/luarocks/init.lua
+++ b/lua/mason-core/managers/luarocks/init.lua
@@ -21,7 +21,7 @@ local function with_receipt(package)
end
---@param package string: The luarock package to install.
----@param opts { dev: boolean, bin : string[] | nil } | nil
+---@param opts { dev: boolean?, server: string?, bin : string[]? | nil }?
function M.package(package, opts)
return function()
return M.install(package, opts).with_receipt()
@@ -30,7 +30,7 @@ end
---@async
---@param pkg string: The luarock package to install.
----@param opts { dev: boolean, bin : string[] | nil } | nil
+---@param opts { dev: boolean?, server: string?, bin : string[]? | nil }?
function M.install(pkg, opts)
opts = opts or {}
local ctx = installer.context()
@@ -40,6 +40,7 @@ function M.install(pkg, opts)
"--tree",
ctx.cwd:get(),
opts.dev and "--dev" or vim.NIL,
+ opts.server and ("--server=%s"):format(opts.server) or vim.NIL,
pkg,
ctx.requested_version:or_else(vim.NIL),
}
diff --git a/lua/mason-registry/index.lua b/lua/mason-registry/index.lua
index 22419eba..e9d8073f 100644
--- a/lua/mason-registry/index.lua
+++ b/lua/mason-registry/index.lua
@@ -84,6 +84,7 @@ return {
["ltex-ls"] = "mason-registry.ltex-ls",
["lua-language-server"] = "mason-registry.lua-language-server",
luacheck = "mason-registry.luacheck",
+ luaformatter = "mason-registry.luaformatter",
markdownlint = "mason-registry.markdownlint",
marksman = "mason-registry.marksman",
["metamath-zero-lsp"] = "mason-registry.metamath-zero-lsp",
diff --git a/lua/mason-registry/luaformatter/init.lua b/lua/mason-registry/luaformatter/init.lua
new file mode 100644
index 00000000..f4e4c888
--- /dev/null
+++ b/lua/mason-registry/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/mappings/language.lua b/lua/mason/mappings/language.lua
index dc8beab1..9aa8f822 100644
--- a/lua/mason/mappings/language.lua
+++ b/lua/mason/mappings/language.lua
@@ -58,7 +58,7 @@ return {
lelwel = { "lelwel" },
less = { "css-lsp", "prettier" },
liquid = { "shopify-theme-check" },
- lua = { "lemmy-help", "lua-language-server", "luacheck", "stylua" },
+ lua = { "lemmy-help", "lua-language-server", "luacheck", "luaformatter", "stylua" },
markdown = { "grammarly-languageserver", "ltex-ls", "markdownlint", "marksman", "prettier", "prosemd-lsp", "remark-language-server", "zk" },
["metamath zero"] = { "metamath-zero-lsp" },
mksh = { "shfmt" },
diff --git a/tests/mason-core/managers/luarocks_spec.lua b/tests/mason-core/managers/luarocks_spec.lua
index 749a7319..26ddcb4b 100644
--- a/tests/mason-core/managers/luarocks_spec.lua
+++ b/tests/mason-core/managers/luarocks_spec.lua
@@ -15,6 +15,7 @@ describe("luarocks manager", function()
"--tree",
path.package_prefix "dummy",
vim.NIL, -- --dev flag
+ vim.NIL, -- --server flag
"lua-cjson",
vim.NIL, -- version
}
@@ -33,6 +34,7 @@ describe("luarocks manager", function()
"--tree",
path.package_prefix "dummy",
vim.NIL, -- --dev flag
+ vim.NIL, -- --server flag
"lua-cjson",
"1.2.3",
}
@@ -51,12 +53,32 @@ describe("luarocks manager", function()
"--tree",
path.package_prefix "dummy",
"--dev",
+ vim.NIL, -- --server flag
"lua-cjson",
vim.NIL, -- version
}
end)
)
+ it(
+ "should provide --server flag",
+ async_test(function()
+ local handle = InstallHandleGenerator "dummy"
+ local ctx = InstallContextGenerator(handle)
+ installer.run_installer(ctx, luarocks.package("luaformatter", { server = "https://luarocks.org/dev" }))
+ assert.spy(ctx.spawn.luarocks).was_called(1)
+ assert.spy(ctx.spawn.luarocks).was_called_with {
+ "install",
+ "--tree",
+ path.package_prefix "dummy",
+ vim.NIL, -- --dev flag
+ "--server=https://luarocks.org/dev",
+ "luaformatter",
+ vim.NIL, -- version
+ }
+ end)
+ )
+
it("should parse outdated luarocks", function()
assert.same(
{