format.lua 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. return {
  2. "stevearc/conform.nvim",
  3. event = {
  4. "BufReadPre",
  5. "BufNewFile",
  6. },
  7. config = function()
  8. require("conform").setup({
  9. formatters_by_ft = {
  10. graphql = { "prettierd", "prettier" },
  11. njk = { "prettierd", "prettier" },
  12. svelte = { lsp_format = "fallback" },
  13. html = { "prettierd", "prettier" },
  14. typescript = { "prettierd", "prettier" },
  15. lua = { "stylua" },
  16. javascript = { "prettierd", "prettier", stop_after_first = true },
  17. json = { "prettierd", "prettier" },
  18. sh = { "shfmt" },
  19. bash = { "shfmt" },
  20. tex = { "latexindent" },
  21. go = { "gofumpt", "goimports-reviser", "golines" },
  22. cs = { "csharpier" },
  23. templ = { "templ" },
  24. c = { "clang-format" },
  25. cpp = { "clang-format" },
  26. hcl = { "hcl" },
  27. toml = { "taplo" },
  28. htmlhugo = { "prettier" },
  29. markdown = { "prettier" },
  30. },
  31. formatters = {
  32. csharpier = {
  33. command = "dotnet-csharpier",
  34. args = { "--write-stdout" },
  35. },
  36. },
  37. format_on_save = {
  38. timeout_ms = 500,
  39. lsp_fallback = true,
  40. async = false,
  41. },
  42. notify_on_error = false,
  43. })
  44. vim.api.nvim_set_keymap(
  45. "n",
  46. "<leader>cf",
  47. '<cmd>lua require("conform").format()<CR>',
  48. { noremap = true, silent = true }
  49. )
  50. end,
  51. }