From 2f8e6a0c5031ab69d997310cd99768ec69d3f4f2 Mon Sep 17 00:00:00 2001 From: Jonathan Camenisch Date: Fri, 5 Apr 2024 14:00:03 -0400 Subject: [PATCH] Initial configuration for golang editing --- nvim/lazy-lock.json | 3 ++- nvim/lua/chadrc.lua | 14 ++--------- nvim/lua/configs/lspconfig.lua | 18 ++++++++++++++ nvim/lua/configs/null-ls.lua | 26 ++++++++++++++++++++ nvim/lua/custom/chadrc.lua | 6 ----- nvim/lua/custom/plugins.lua | 0 nvim/lua/mappings.lua | 3 ++- nvim/lua/plugins/init.lua | 44 +++++++++++++++++++++------------- 8 files changed, 77 insertions(+), 37 deletions(-) create mode 100644 nvim/lua/configs/null-ls.lua delete mode 100644 nvim/lua/custom/chadrc.lua delete mode 100644 nvim/lua/custom/plugins.lua diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 61c05a1..22447ba 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -10,10 +10,11 @@ "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "conform.nvim": { "branch": "master", "commit": "9d5ba06d6ee7418c674f498634617416d15b6239" }, "friendly-snippets": { "branch": "main", "commit": "ea068f1becd91bcd4591fceb6420d4335e2e14d3" }, - "gitsigns.nvim": { "branch": "main", "commit": "320b232fb458f6c8b2467e3ef9b49034617a2a78" }, + "gitsigns.nvim": { "branch": "main", "commit": "81369ed5405ec0c5d55a9608b495dbf827415116" }, "indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" }, "lazy.nvim": { "branch": "main", "commit": "bef521ac89c8d423f9d092e37b58e8af0c099309" }, "mason.nvim": { "branch": "main", "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" }, + "null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" }, "nvim-autopairs": { "branch": "master", "commit": "dbfc1c34bed415906395db8303c71039b3a3ffb4" }, "nvim-cmp": { "branch": "main", "commit": "ce16de5665c766f39c271705b17fff06f7bcb84f" }, "nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" }, diff --git a/nvim/lua/chadrc.lua b/nvim/lua/chadrc.lua index 3d8ab6f..00f9147 100644 --- a/nvim/lua/chadrc.lua +++ b/nvim/lua/chadrc.lua @@ -1,16 +1,6 @@ --- This file needs to have same structure as nvconfig.lua --- https://github.com/NvChad/NvChad/blob/v2.5/lua/nvconfig.lua - ----@type ChadrcConfig local M = {} -M.ui = { - theme = "everblush", - - -- hl_override = { - -- Comment = { italic = true }, - -- ["@comment"] = { italic = true }, - -- }, -} +M.ui = {theme = "everblush"} +M.plugins = 'plugins' return M diff --git a/nvim/lua/configs/lspconfig.lua b/nvim/lua/configs/lspconfig.lua index a73657a..5b8fb8d 100644 --- a/nvim/lua/configs/lspconfig.lua +++ b/nvim/lua/configs/lspconfig.lua @@ -21,3 +21,21 @@ lspconfig.tsserver.setup { on_init = on_init, capabilities = capabilities, } + +-- golang +lspconfig.gopls.setup { + on_attach = on_attach, + capabilities = capabilities, + cmd = {"gopls"}, + filetypes = { "go", "gomod", "gowork", "gotmpl" }, + root_dir = lspconfig.util.root_pattern("go.work", "go.mod", ".git"), + settings = { + gopls = { + completeUnimported = true, + usePlaceholders = true, + analyses = { + unusedparams = true, + } + } + } +} diff --git a/nvim/lua/configs/null-ls.lua b/nvim/lua/configs/null-ls.lua new file mode 100644 index 0000000..8790e8e --- /dev/null +++ b/nvim/lua/configs/null-ls.lua @@ -0,0 +1,26 @@ +local null_ls = require("null-ls") +local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) + +local opts = { + sources = { + null_ls.builtins.formatting.gofmt, + null_ls.builtins.formatting.goimports, + }, + on_attach = function(client, bufnr) + if client.supports_method("textDocument/formatting") then + vim.api.nvim_clear_autocmds({ + group = augroup, + buffer = bufnr, + }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + vim.lsp.buf.format({ bufnr = bufnr }) + end, + }) + end + end, +} + +return opts diff --git a/nvim/lua/custom/chadrc.lua b/nvim/lua/custom/chadrc.lua deleted file mode 100644 index ffd8d19..0000000 --- a/nvim/lua/custom/chadrc.lua +++ /dev/null @@ -1,6 +0,0 @@ -local M = {} - -M.ui = { - theme = "everblush", -} -return M diff --git a/nvim/lua/custom/plugins.lua b/nvim/lua/custom/plugins.lua deleted file mode 100644 index e69de29..0000000 diff --git a/nvim/lua/mappings.lua b/nvim/lua/mappings.lua index 244bbd8..dac44b2 100644 --- a/nvim/lua/mappings.lua +++ b/nvim/lua/mappings.lua @@ -4,7 +4,8 @@ require "nvchad.mappings" local map = vim.keymap.set -map("n", ";", ":", { desc = "CMD enter command mode" }) +map("n", "-", "NvimTreeToggle") + map("i", "jj", "") -- map({ "n", "i", "v" }, "", " w ") diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index e62d896..98f5ffd 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -6,25 +6,35 @@ return { require "configs.conform" end, }, + { + "williamboman/mason.nvim", + opts = { + ensure_installed = { + "lua-language-server", + "stylua", + "gopls", + "html-lsp", + "css-lsp" , + "prettier" + } + }, + { + "neovim/nvim-lspconfig", + config = function() + require("nvchad.configs.lspconfig").defaults() + require "configs.lspconfig" + end, + }, + { + "jose-elias-alvarez/null-ls.nvim", + ft = "go", + opts = function() + return require "configs.null-ls" + end, + }, + }, -- These are some examples, uncomment them if you want to see them work! - -- { - -- "neovim/nvim-lspconfig", - -- config = function() - -- require("nvchad.configs.lspconfig").defaults() - -- require "configs.lspconfig" - -- end, - -- }, - -- - -- { - -- "williamboman/mason.nvim", - -- opts = { - -- ensure_installed = { - -- "lua-language-server", "stylua", - -- "html-lsp", "css-lsp" , "prettier" - -- }, - -- }, - -- }, -- -- { -- "nvim-treesitter/nvim-treesitter",