aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-08-22 01:43:22 +0200
committerGitHub <noreply@github.com>2022-08-22 01:43:22 +0200
commit1355e3af9b79c9126bdef0b842e8d9a56c9da755 (patch)
tree7206fc3cf441c784d485bac94d698a62c8a59f89 /lua
parentfix(ui): use `g?` to toggle help instead of `?` (#326) (diff)
downloadmason-1355e3af9b79c9126bdef0b842e8d9a56c9da755.tar
mason-1355e3af9b79c9126bdef0b842e8d9a56c9da755.tar.gz
mason-1355e3af9b79c9126bdef0b842e8d9a56c9da755.tar.bz2
mason-1355e3af9b79c9126bdef0b842e8d9a56c9da755.tar.lz
mason-1355e3af9b79c9126bdef0b842e8d9a56c9da755.tar.xz
mason-1355e3af9b79c9126bdef0b842e8d9a56c9da755.tar.zst
mason-1355e3af9b79c9126bdef0b842e8d9a56c9da755.zip
feat: add cbfmt (#327)
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-registry/cbfmt/init.lua56
-rw-r--r--lua/mason-registry/index.lua1
-rw-r--r--lua/mason/mappings/language.lua2
3 files changed, 58 insertions, 1 deletions
diff --git a/lua/mason-registry/cbfmt/init.lua b/lua/mason-registry/cbfmt/init.lua
new file mode 100644
index 00000000..442f0a0c
--- /dev/null
+++ b/lua/mason-registry/cbfmt/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 = "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 libc = platform.get_libc()
+
+ local asset_file = coalesce(
+ when(platform.is.mac, "cbfmt_macos-x86_64_%s.tar.gz"),
+ when(
+ platform.is.linux_x64,
+ coalesce(
+ when(libc == "glibc", "cbfmt_linux-x86_64_%s.tar.gz"),
+ when(libc == "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.lua b/lua/mason-registry/index.lua
index 2a813b01..0d817ed1 100644
--- a/lua/mason-registry/index.lua
+++ b/lua/mason-registry/index.lua
@@ -21,6 +21,7 @@ return {
["bsl-language-server"] = "mason-registry.bsl-language-server",
buf = "mason-registry.buf",
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",
diff --git a/lua/mason/mappings/language.lua b/lua/mason/mappings/language.lua
index d5e5cc61..ff68511b 100644
--- a/lua/mason/mappings/language.lua
+++ b/lua/mason/mappings/language.lua
@@ -64,7 +64,7 @@ return {
less = { "css-lsp", "prettier", "prettierd" },
liquid = { "curlylint", "shopify-theme-check" },
lua = { "lemmy-help", "lua-language-server", "luacheck", "luaformatter", "selene", "stylua" },
- markdown = { "alex", "grammarly-languageserver", "ltex-ls", "markdownlint", "marksman", "prettier", "prettierd", "proselint", "prosemd-lsp", "remark-language-server", "textlint", "vale", "write-good", "zk" },
+ markdown = { "alex", "cbfmt", "grammarly-languageserver", "ltex-ls", "markdownlint", "marksman", "prettier", "prettierd", "proselint", "prosemd-lsp", "remark-language-server", "textlint", "vale", "write-good", "zk" },
["metamath zero"] = { "metamath-zero-lsp" },
mksh = { "shfmt" },
mustache = { "djlint" },