local prettier = function() return { exe = vim.fn.getcwd() .. "/node_modules/.bin/prettier", args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0), "--single-quote" }, stdin = true, } end local goimports = function() local args = {} local mod_path = Get_project_go_module_path() if mod_path ~= "" then table.insert(args, "-local") table.insert(args, mod_path) end return { exe = "goimports", args = args, stdin = true, } end require("formatter").setup({ log_level = vim.log.levels.INFO, filetype = { javascript = { prettier }, typescript = { prettier }, typescriptreact = { prettier }, go = { goimports }, -- https://github.com/JohnnyMorganz/StyLua -- cargo install stylua --features lua54 lua = { require("formatter.filetypes.lua").stylua, }, }, }) -- TODO: use vim.api.nvim_create_augroup() vim.api.nvim_exec2( [[ augroup FormatAutogroup autocmd! autocmd BufWritePost *.js,*.ts,*.tsx,*.go,*.lua silent FormatWrite augroup END ]], { output = true } ) local bufnr = vim.fn.bufnr("%") vim.api.nvim_buf_set_keymap(bufnr, "n", "F", "silent Format", { noremap = true, silent = true })