GoFormatting

This commit is contained in:
Kulvir Singh
2024-01-27 23:15:20 +05:30
parent bae3731520
commit 7b2ba95345
2 changed files with 47 additions and 31 deletions

View File

@@ -8,22 +8,20 @@
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"conform.nvim": { "branch": "master", "commit": "cbc5745bf7519acaf3a5cbaaa677fd556aa813d7" },
"copilot.vim": { "branch": "release", "commit": "49e0348bfb913fae63ca5ddb987a8bccd193da86" },
"fidget.nvim": { "branch": "main", "commit": "3a93300c076109d86c7ce35ec67a8034ae6ba9db" },
"friendly-snippets": { "branch": "main", "commit": "69a2c1675b66e002799f5eef803b87a12f593049" },
"gitsigns.nvim": { "branch": "main", "commit": "4aaacbf5e5e2218fd05eb75703fe9e0f85335803" },
"go.nvim": { "branch": "master", "commit": "24d2fa373d55d9900cd4b502a88214dc17e6fab6" },
"guihua.lua": { "branch": "master", "commit": "9fb6795474918b492d9ab01b1ebaf85e8bf6fe0b" },
"indent-blankline.nvim": { "branch": "master", "commit": "12e92044d313c54c438bd786d11684c88f6f78cd" },
"lazy.nvim": { "branch": "main", "commit": "747bb955c5bfb2dc5d51280132f00a56a53f9f6d" },
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
"lualine.nvim": { "branch": "master", "commit": "566b7036f717f3d676362742630518a47f132fff" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "3ba1b92b771f33256b4969d696b82c8ae7075364" },
"mason.nvim": { "branch": "main", "commit": "e110bc3be1a7309617cecd77bfe4bf86ba1b8134" },
"nvim-cmp": { "branch": "main", "commit": "538e37ba87284942c1d76ed38dd497e54e65b891" },
"nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" },
"nvim-lint": { "branch": "master", "commit": "b32127ba52f3a1f7dc86773c2ca3f0029afa12c1" },
"nvim-lspconfig": { "branch": "master", "commit": "042aa6b27b8b8d4f4e1bd42de2037c83d676a8a0" },
"nvim-tmux-navigation": { "branch": "main", "commit": "d9efffa413a530bdea3783af4fea86be84940283" },
"nvim-treesitter": { "branch": "master", "commit": "4a4dbe1cb1da34d87fc42a40aaf8e218af4cfe0f" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "19a91a38b02c1c28c14e0ba468d20ae1423c39b2" },

View File

@@ -4,6 +4,8 @@ return {
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"ray-x/go.nvim",
"ray-x/guihua.lua",
"j-hui/fidget.nvim",
"neovim/nvim-lspconfig",
"williamboman/mason-lspconfig.nvim",
@@ -18,6 +20,7 @@ return {
},
})
local mason = require("mason")
local mason_lspconfig = require("mason-lspconfig")
local cmp_lsp = require("cmp_nvim_lsp")
@@ -33,17 +36,6 @@ return {
},
})
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = cmp_lsp.default_capabilities(capabilities)
vim.api.nvim_buf_create_user_command(0, 'Format', function(_)
if vim.lsp.buf.format then
vim.lsp.buf.format()
elseif vim.lsp.buf.formatting then
vim.lsp.buf.formatting()
end
end, {})
local on_attach = function(_, bufnr)
local buf_map = vim.api.nvim_buf_set_keymap
@@ -70,6 +62,46 @@ return {
buf_map(bufnr, "n", "<leader>ws", "<Cmd>lua vim.lsp.buf.workspace_symbol()<CR>", opts)
end
require("go").setup({
max_line_len = 120,
comment_placeholder = "",
})
local format_go = vim.api.nvim_create_augroup("GoFormat", {})
vim.api.nvim_create_autocmd("BufWritePre", {
pattern = "*.go",
callback = function()
require('go.format').goimport()
end,
group = format_go,
})
local format_auto = vim.api.nvim_create_augroup("FormatAutocmd", {})
vim.api.nvim_buf_create_user_command(0, 'Format', function(_)
if vim.lsp.buf.format then
vim.lsp.buf.format()
elseif vim.lsp.buf.formatting then
vim.lsp.buf.formatting()
end
end, {})
-- NOTE: This is useful for auto-formatting on save, but I don't like it so Imma use Format command insetead
--[[ vim.api.nvim_create_autocmd("BufWritePre", {
pattern = "*",
callback = function(_)
if vim.lsp.buf.format then
vim.lsp.buf.format()
elseif vim.lsp.buf.formatting then
vim.lsp.buf.formatting()
end
end,
group = format_auto,
}) ]]
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = cmp_lsp.default_capabilities(capabilities)
mason_lspconfig.setup({
ensure_installed = {
"clangd",
@@ -86,6 +118,7 @@ return {
handlers = {
function(server_name)
-- print("another server " .. server_name)
lspconfig[server_name].setup {
capabilities = capabilities,
on_attach = on_attach,
@@ -111,21 +144,6 @@ return {
},
})
end,
["gopls"] = function()
lspconfig.gopls.setup({
capabilities = capabilities,
on_attach = on_attach,
settings = {
gopls = {
gofumpt = true,
},
},
flags = {
debounce_text_changes = 150,
},
})
end,
},
})
end,