diff options
| author | William Boman <william@redwill.se> | 2022-08-22 01:43:22 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-22 01:43:22 +0200 |
| commit | 1355e3af9b79c9126bdef0b842e8d9a56c9da755 (patch) | |
| tree | 7206fc3cf441c784d485bac94d698a62c8a59f89 /lua | |
| parent | fix(ui): use `g?` to toggle help instead of `?` (#326) (diff) | |
| download | mason-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.lua | 56 | ||||
| -rw-r--r-- | lua/mason-registry/index.lua | 1 | ||||
| -rw-r--r-- | lua/mason/mappings/language.lua | 2 |
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" }, |
