formatter.lua 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. -- autoformat
  2. if O.format_on_save then
  3. require("lv-utils").define_augroups {
  4. autoformat = {
  5. {
  6. "BufWritePost",
  7. "*",
  8. ":silent FormatWrite",
  9. },
  10. },
  11. }
  12. end
  13. -- -- check if formatter has been defined for the language or not
  14. -- local function formatter_exists(lang_formatter)
  15. -- if lang_formatter == nil then
  16. -- return false
  17. -- end
  18. -- if lang_formatter.exe == nil or lang_formatter.args == nil then
  19. -- return false
  20. -- end
  21. -- return true
  22. -- end
  23. -- returns default formatter for given language
  24. -- local function formatter_return(lang_formatter)
  25. -- return {
  26. -- exe = lang_formatter.exe,
  27. -- args = lang_formatter.args,
  28. -- stdin = not (lang_formatter.stdin ~= nil),
  29. -- }
  30. -- end
  31. -- fill a table like this -> {rust: {exe:"sth",args:{"a","b"},stdin=true},go: {}...}
  32. -- local formatter_filetypes = {}
  33. -- for k, v in pairs(O.lang) do
  34. -- if formatter_exists(v.formatter) then
  35. -- local keys = v.filetypes
  36. -- if keys == nil then
  37. -- keys = { k }
  38. -- end
  39. -- for _, l in pairs(keys) do
  40. -- formatter_filetypes[l] = {
  41. -- function()
  42. -- return formatter_return(v.formatter)
  43. -- end,
  44. -- }
  45. -- end
  46. -- end
  47. -- end
  48. require("formatter").setup {}
  49. if not O.format_on_save then
  50. vim.cmd [[if exists('#autoformat#BufWritePost')
  51. :autocmd! autoformat
  52. endif]]
  53. end