{ empty = { plugins.conform-nvim.enable = true; }; default = { plugins.conform-nvim = { enable = true; formattersByFt = { lua = ["stylua"]; python = ["isort" "black"]; javascript = [["prettierd" "prettier"]]; "*" = ["codespell"]; "_" = ["trimWhitespace"]; }; formatOnSave = { lspFallback = true; timeoutMs = 500; }; formatAfterSave = { lspFallback = true; }; logLevel = "error"; notifyOnError = true; formatters = { myFormatter = { command = "myCmd"; args = ["--stdin-from-filename" "$FILENAME"]; rangeArgs = '' function(ctx) return { "--line-start", ctx.range.start[1], "--line-end", ctx.range["end"][1] } end; ''; stdin = true; cwd = '' require("conform.util").rootFile({ ".editorconfig", "package.json" }); ''; requireCwd = true; condition = '' function(ctx) return vim.fs.basename(ctx.filename) ~= "README.md" end; ''; exitCodes = [0 1]; env = { VAR = "value"; }; "inherit" = true; prependArgs = ["--use-tabs"]; }; otherFormatter = '' function(bufnr) return { command = "myCmd"; } end; ''; }; }; }; custom_format_on_save_function = { plugins.conform-nvim = { enable = true; formattersByFt = { lua = ["stylua"]; python = ["isort" "black"]; javascript = [["prettierd" "prettier"]]; "*" = ["codespell"]; "_" = ["trimWhitespace"]; }; formatOnSave = '' function(bufnr) local ignore_filetypes = { "helm" } if vim.tbl_contains(ignore_filetypes, vim.bo[bufnr].filetype) then return end -- Disable with a global or buffer-local variable if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then return end -- Disable autoformat for files in a certain path local bufname = vim.api.nvim_buf_get_name(bufnr) if bufname:match("/node_modules/") then return end return { timeout_ms = 500, lsp_fallback = true } end ''; }; }; custom_format_after_save_function = { plugins.conform-nvim = { enable = true; formattersByFt = { lua = ["stylua"]; python = ["isort" "black"]; javascript = [["prettierd" "prettier"]]; "*" = ["codespell"]; "_" = ["trimWhitespace"]; }; formatAfterSave = '' function(bufnr) if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then return end if not _conform_slow_format_filetypes[vim.bo[bufnr].filetype] then return end return { lsp_fallback = true } end ''; }; }; }