diff --git a/lua/plugins/formatting.lua b/lua/plugins/formatting.lua new file mode 100644 index 0000000..bb84ac6 --- /dev/null +++ b/lua/plugins/formatting.lua @@ -0,0 +1,43 @@ +return { + "stevearc/conform.nvim", + event = { "BufReadPre", "BufNewFile" }, + config = function() + local conform = require("conform") + + conform.setup({ + formatters_by_ft = { + javascript = { "prettier" }, + typescript = { "prettier" }, + javascriptreact = { "prettier" }, + typescriptreact = { "prettier" }, + svelte = { "prettier" }, + css = { "prettier" }, + -- html = { 'prettier' }, + fish = { "fish_indent" }, + php = { "pretty-php" }, + json = { "yq" }, + yaml = { "yq" }, + markdown = { "prettier" }, + graphql = { "prettier" }, + liquid = { "prettier" }, + sh = { "shfmt" }, + zsh = { "shfmt" }, + batch = { "shfmt", "prettier" }, + lua = { "stylua" }, + }, + format_on_save = { + lsp_fallback = false, + async = false, + timeout_ms = 1000, + }, + }) + + vim.keymap.set({ "n", "v" }, "mp", function() + conform.format({ + lsp_fallback = true, + async = false, + timeout_ms = 1000, + }) + end, { desc = "Format file or range (in visual mode)" }) + end, +}