12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- -- autoformat
- if O.format_on_save then
- require("lv-utils").define_augroups {
- autoformat = {
- {
- "BufWritePost",
- "*",
- "FormatWrite",
- },
- },
- }
- end
- -- check if formatter has been defined for the language or not
- function formatter_exists(lang_formatter)
- if lang_formatter == nil then
- return false
- end
- if lang_formatter.exe == nil or lang_formatter.args == nil then
- return false
- end
- return true
- end
- -- returns default formatter for given language
- function formatter_return(lang_formatter)
- return {
- exe = lang_formatter.exe,
- args = lang_formatter.args,
- stdin = not (lang_formatter.stdin ~= nil),
- }
- end
- -- fill a table like this -> {rust: {exe:"sth",args:{"a","b"},stdin=true},go: {}...}
- local formatter_filetypes = {}
- for k, v in pairs(O.lang) do
- if formatter_exists(v.formatter) then
- local keys = v.filetypes
- if keys == nil then
- keys = {k}
- end
- for _, l in pairs(keys) do
- formatter_filetypes[l] = {
- function ()
- return formatter_return(v.formatter)
- end,
- }
- end
- end
- end
- require("formatter").setup {
- logging = false,
- filetype = formatter_filetypes,
- }
- if not O.format_on_save then
- vim.cmd [[if exists('#autoformat#BufWritePost')
- :autocmd! autoformat
- endif]]
- end
|