{ ... }: { userCommands = let formatCmd = { desc = "Format all the buffer"; # conform.format function can deal with range by itself range = "%"; bang = true; bar = true; nargs = "?"; complete = { __raw = #lua '' function(ArgLead, CmdLine, CursorPos) return vim.iter(require("conform").list_all_formatters()):filter(function(val) return val.available end):map(function(val) return val.name end):filter(function(name) return string.match(name, "^" .. ArgLead) ~= nil end):totable() end ''; }; command = { __raw = #lua '' function(opts) local format = require("conform").format if #(opts.fargs) == 0 then return format() else return format({ formatters = { opts.fargs[1] } }) end end ''; }; }; in { Format = formatCmd; Fmt = formatCmd; Formatter = { desc = "Show config of formatter"; nargs = "?"; bar = true; complete = { __raw = #lua '' function(ArgLead, CmdLine, CursorPos) return vim.iter(require("conform").list_all_formatters()):map(function(val) return val.name end):filter(function(name) return string.match(name, "^" .. ArgLead) ~= nil end):totable() end ''; }; command = { __raw = #lua '' function(opts) local conform = require("conform") if #(opts.fargs) == 0 then local formatters = conform.list_all_formatters() print(vim.inspect(formatters)) return formatters else local config = conform.get_formatter_config(opts.fargs[1]) print(vim.inspect(config)) return config end end ''; }; }; }; keymaps = [ { action = { __raw = #lua '' function(opts) return require("conform").format() end ''; }; key = "="; mode = [ "n" "v" ]; options = { desc = "Format with conform"; }; } ]; youthlic.plugins.conform-nvim = { enable = true; settings.formatters.injected.options.ignore_errors = true; }; }