| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | -- autoformatif O.format_on_save then  require("lv-utils").define_augroups {    autoformat = {      {        "BufWritePost",        "*",        "FormatWrite",      },    },  }end-- check if formatter has been defined for the language or notfunction 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 trueend-- returns default formatter for given languagefunction 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  endendrequire("formatter").setup {  logging = false,  filetype = formatter_filetypes,}if not O.format_on_save then  vim.cmd [[if exists('#autoformat#BufWritePost')	:autocmd! autoformat	endif]]end
 |