From 5e73c24fdd3e915fe15c9dff19749862fa6c0d2d Mon Sep 17 00:00:00 2001 From: hakase Date: Sun, 8 Sep 2024 20:45:18 -0500 Subject: [PATCH] feat: add go lsp and formatting --- lua/configs/conform.lua | 1 + lua/configs/lspconfig.lua | 18 ++++++++++++++++++ lua/plugins/init.lua | 13 +++++++------ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/lua/configs/conform.lua b/lua/configs/conform.lua index 1df8bea..b315864 100644 --- a/lua/configs/conform.lua +++ b/lua/configs/conform.lua @@ -4,6 +4,7 @@ local options = { python = { "black" }, css = { "prettier" }, html = { "prettier" }, + go = { "goimports", "gofmt" }, }, -- format_on_save = { diff --git a/lua/configs/lspconfig.lua b/lua/configs/lspconfig.lua index 5b40e66..2b9100e 100644 --- a/lua/configs/lspconfig.lua +++ b/lua/configs/lspconfig.lua @@ -5,6 +5,7 @@ local capabilities = require("nvchad.configs.lspconfig").capabilities local lspconfig = require "lspconfig" local servers = { "html", "cssls", "clangd" } +local util = require "lspconfig/util" -- lsps with default config for _, lsp in ipairs(servers) do @@ -35,6 +36,23 @@ lspconfig.basedpyright.setup{ } } +lspconfig.gopls.setup { + on_attach = on_attach, + capabilities = capabilities, + cmd = {"gopls"}, + filetypes = { "go", "gomod", "gowork", "gotmpl" }, + root_dir = util.root_pattern("go.work", "go.mod", ".git"), + settings = { + gopls = { + completeUnimported = true, + usePlaceholders = true, + analyses = { + unusedParameters = true, + } + } + } +} + ---- ruff_lsp and pyright compatibility local on_attach = function(client, bufnr) if client.name == 'ruff_lsp' then diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 48dbf8e..eb57516 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -24,14 +24,11 @@ return { "html-lsp", "css-lsp", "prettier", - "basedpyright", - "mypy", - "black", - "ruff-lsp", + "basedpyright", "mypy", "black", "ruff-lsp", "typescript-language-server", "clangd", + "goimports", "gofumpt", "gomodifytags", "impl", "delve", }, - automatic_installation = true, }, }, @@ -45,7 +42,11 @@ return { "html", "css", "python", - "typescript" + "typescript", + "go", + "gomod", + "gowork", + "gosum", }, }, },