diff --git a/config/nvim/lua/format.lua b/config/nvim/lua/format.lua index ff9d002..d105faa 100644 --- a/config/nvim/lua/format.lua +++ b/config/nvim/lua/format.lua @@ -14,6 +14,18 @@ local function luaformat() } end +local function gofmt() + return {exe = "gofmt", args = {vim.api.nvim_buf_get_name(0)}, stdin = true} +end + +local function goimports() + return { + exe = "goimports", + args = {vim.api.nvim_buf_get_name(0)}, + stdin = true + } +end + require("formatter").setup({ filetype = { javascript = {prettierd}, @@ -25,9 +37,10 @@ require("formatter").setup({ scss = {prettierd}, json = {prettierd}, svelte = {prettierd}, - lua = {luaformat} + lua = {luaformat}, + go = {gofmt, goimports} } }) vim.cmd( - [[autocmd BufWritePost *.js,*.jsx,*.ts,*.tsx,*.html,*.css,*.scss,*.json,*.svelte,*.lua FormatWrite]]) + [[autocmd BufWritePost *.js,*.jsx,*.ts,*.tsx,*.html,*.css,*.scss,*.json,*.svelte,*.lua,*.go FormatWrite]]) diff --git a/config/nvim/lua/lsp.lua b/config/nvim/lua/lsp.lua index e291a69..9602e44 100644 --- a/config/nvim/lua/lsp.lua +++ b/config/nvim/lua/lsp.lua @@ -162,40 +162,6 @@ nvim_lsp.gopls.setup({ } }) -function goimports(timeout_ms) - local context = {only = {"source.organizeImports"}} - vim.validate {context = {context, "t", true}} - - local params = vim.lsp.util.make_range_params() - params.context = context - - -- See the implementation of the textDocument/codeAction callback - -- (lua/vim/lsp/handler.lua) for how to do this properly. - local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", - params, timeout_ms) - if not result or next(result) == nil then return end - local actions = result[1].result - if not actions then return end - local action = actions[1] - - -- textDocument/codeAction can return either Command[] or CodeAction[]. If it - -- is a CodeAction, it can have either an edit, a command or both. Edits - -- should be executed first. - if action.edit or type(action.command) == "table" then - if action.edit then - vim.lsp.util.apply_workspace_edit(action.edit) - end - if type(action.command) == "table" then - vim.lsp.buf.execute_command(action.command) - end - else - vim.lsp.buf.execute_command(action) - end -end - -vim.cmd([[autocmd BufWritePre *.go lua vim.lsp.buf.formatting()]]) -vim.cmd([[autocmd BufWritePre *.go lua goimports(1000)]]) - require("luasnip/loaders/from_vscode").load({ include = {"javascript", "typescript", "go", "html"} })