From eaea388f2070672210048d7c3317396ceb26d789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Dom=C3=ADnguez=20Ochoa?= Date: Tue, 15 Jul 2025 17:15:49 +0200 Subject: [PATCH] add go support --- README.md | 3 +++ nvim/.config/nvim/lsp/gopls.lua | 22 ++++++++++++++++++++ nvim/.config/nvim/lua/ink/lsp.lua | 1 + nvim/.config/nvim/lua/plugins/formatting.lua | 2 ++ nvim/.config/nvim/lua/plugins/linting.lua | 2 ++ zsh/.zprofile | 1 + zsh/.zshenv | 4 +++- 7 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 nvim/.config/nvim/lsp/gopls.lua diff --git a/README.md b/README.md index 33cdbcc..0e70674 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ dotfiles/ ### Development Tools - [Rust](https://www.rust-lang.org/) toolchain (including rust-analyzer) +- [Go](https://go.dev/) - [Neovim](https://neovim.io/) - [tmux](https://github.com/tmux/tmux) + [tmux-plugin-manager](https://github.com/tmux-plugins/tpm) @@ -60,6 +61,7 @@ dotfiles/ - Shell: shfmt, shellcheck, bash-language-server - Terraform: terraform-ls, tflint - Python: ruff +- Go: gopls, golangci-lint (v1.64), gofumpt ### Extras @@ -153,6 +155,7 @@ chsh -s /bin/zsh ``` 4. **Set up tmux plugins**: + - Start a tmux session - Press `C-b I` to install plugins diff --git a/nvim/.config/nvim/lsp/gopls.lua b/nvim/.config/nvim/lsp/gopls.lua new file mode 100644 index 0000000..d145807 --- /dev/null +++ b/nvim/.config/nvim/lsp/gopls.lua @@ -0,0 +1,22 @@ +return { + cmd = { "gopls" }, + root_markers = { "go.mod" }, + filetypes = { "go", "golang" }, + settings = { + gopls = { + completeUnimported = true, + usePlaceholders = true, + analyses = { + unusedparams = true, + }, + ["ui.inlayhint.hints"] = { + compositeLiteralFields = true, + constantValues = true, + parameterNames = true, + assignVariableTypes = true, + functionTypeParameters = true, + rangeVariableTypes = true, + }, + }, + }, +} diff --git a/nvim/.config/nvim/lua/ink/lsp.lua b/nvim/.config/nvim/lua/ink/lsp.lua index 2f31071..aa819f6 100644 --- a/nvim/.config/nvim/lua/ink/lsp.lua +++ b/nvim/.config/nvim/lua/ink/lsp.lua @@ -3,6 +3,7 @@ vim.lsp.enable("luals") vim.lsp.enable("rust") +vim.lsp.enable("gopls") vim.lsp.enable("bashls") vim.lsp.enable("terraform") diff --git a/nvim/.config/nvim/lua/plugins/formatting.lua b/nvim/.config/nvim/lua/plugins/formatting.lua index 9b75cc4..424d2ea 100644 --- a/nvim/.config/nvim/lua/plugins/formatting.lua +++ b/nvim/.config/nvim/lua/plugins/formatting.lua @@ -100,6 +100,8 @@ return { sh = { "shfmt" }, -- brew install ruff python = { "ruff" }, + -- go install mvdan.cc/gofumpt@latest + go = { "gofumpt" }, }, formatters = { prettier = { diff --git a/nvim/.config/nvim/lua/plugins/linting.lua b/nvim/.config/nvim/lua/plugins/linting.lua index 1622577..c578282 100644 --- a/nvim/.config/nvim/lua/plugins/linting.lua +++ b/nvim/.config/nvim/lua/plugins/linting.lua @@ -11,6 +11,8 @@ return { sh = { "shellcheck" }, -- brew install tflint terraform = { "tflint" }, + -- go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.0 + go = { "golangcilint" }, } local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true }) diff --git a/zsh/.zprofile b/zsh/.zprofile index 94e0b25..8abd9b1 100644 --- a/zsh/.zprofile +++ b/zsh/.zprofile @@ -1,4 +1,5 @@ export PATH=~/.local/bin:$PATH +export PATH="$(go env GOPATH)/bin:$PATH" export PATH=$DOTFILES/scripts/hcf/:$PATH case "$(uname -s)" in diff --git a/zsh/.zshenv b/zsh/.zshenv index d3d14a8..8deb153 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -18,6 +18,8 @@ export MANPAGER='nvim +Man!' export SSH_ENV="$HOME/.ssh/agent-environment" -export GOPRIVATE=gitlab.company.com +export GOPRIVATE="gitlab.feedzai.com,git.hcf.zone" . "$HOME/.cargo/env" + +export PATH