diff options
| author | Charles Cabergs <charles.cabergs@colruytgroup.com> | 2022-04-27 14:01:46 +0200 |
|---|---|---|
| committer | Charles Cabergs <charles.cabergs@colruytgroup.com> | 2022-04-27 14:01:46 +0200 |
| commit | dfa9425bc2ff78f8c34a11b83cca9ec1277747db (patch) | |
| tree | 8290e0a2aee3963167ba0cb130d024bf5d7bcc95 /config | |
| parent | ca5b53db1e8ce9f7f5c33cd9ddcda63d460942e0 (diff) | |
| download | dotfiles-dfa9425bc2ff78f8c34a11b83cca9ec1277747db.tar.gz dotfiles-dfa9425bc2ff78f8c34a11b83cca9ec1277747db.tar.bz2 dotfiles-dfa9425bc2ff78f8c34a11b83cca9ec1277747db.zip | |
Added golang lsp
Diffstat (limited to 'config')
| -rw-r--r-- | config/nvim/init.lua | 30 | ||||
| -rw-r--r-- | config/nvim/lua/plugins.lua | 46 | ||||
| -rwxr-xr-x | config/zsh/zprofile | 1 |
3 files changed, 65 insertions, 12 deletions
diff --git a/config/nvim/init.lua b/config/nvim/init.lua index 2b46cc9..1caa245 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -39,7 +39,7 @@ vim.opt.hlsearch = true -- match highlight vim.opt.incsearch = true -- status -vim.opt.laststatus=2 -- always a statusline (all window) +vim.opt.laststatus = 2 -- always a statusline (all window) vim.opt.showcmd = true -- show current partial command in the bottom right vim.opt.showmode = false -- dont show current mode (i.e --INSERT--) @@ -48,16 +48,28 @@ require 'nvim-treesitter.highlight' local hlmap = vim.treesitter.highlighter.hl_map hlmap.error = nil -vim.cmd [[ -augroup packer_user_config - autocmd! - autocmd BufWritePost plugins.lua source <afile> | PackerCompile -augroup end -]] +local augroup = vim.api.nvim_create_augroup("cacharle_init_group", {}) + +-- run PackerCompile when we modify plugins.lua +vim.api.nvim_create_autocmd( + "BufWritePost", + { + command = "source <afile> | PackerCompile", + pattern = "plugins.lua", + group = augroup + } +) -- remove trailing white space on save -vim.cmd [[ autocmd BufWritePre * %s/\s\+$//e ]] +vim.api.nvim_create_autocmd( + "BufWritePre", + { command = [[ %s/\s\+$//e ]], pattern = "*", group = augroup } +) -vim.cmd [[ autocmd BufReadPre *.sql.j2 set ft=sql ]] +-- set filttype for *.sql.j2 files +vim.api.nvim_create_autocmd( + "BufReadPre", + { command = "set ft=sql", pattern = "*.sql.j2", group = augroup } +) require('mappings') diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua index cd6d463..acaf6ec 100644 --- a/config/nvim/lua/plugins.lua +++ b/config/nvim/lua/plugins.lua @@ -27,7 +27,11 @@ return require('packer').startup(function() tag = 'stable', ft = 'python', config = function() - vim.cmd [[ autocmd BufWritePre *.py Black ]] + local augroup = vim.api.nvim_create_augroup("cacharle_black_group", {}) + vim.api.nvim_create_autocmd( + "BufWritePre", + { command = "Black", pattern = "*.py", group = augroup } + ) end } @@ -52,7 +56,7 @@ return require('packer').startup(function() -- nvim lsp configuration use { 'neovim/nvim-lspconfig', - ft = {'rust', 'python', 'c', 'cpp', 'lua'}, + ft = {'rust', 'python', 'c', 'cpp', 'lua', 'go'}, config = function() local on_attach = function(_, bufnr) local opts = { noremap = true, silent = true } @@ -72,10 +76,46 @@ return require('packer').startup(function() vim.lsp.protocol.make_client_capabilities() ) + -- $ go install golang.org/x/tools/gopls + lspconfig.gopls.setup { + on_attach = on_attach, + capabilities = capabilities, + settings = { + gopls = { + analyses = { + unusedparams = true + }, + staticcheck = true + } + } + } + -- from: https://github.com/golang/tools/blob/master/gopls/doc/vim.md#neovim-imports + function go_import_callback() + local wait_ms = 1000 + local params = vim.lsp.util.make_range_params() + params.context = {only = {"source.organizeImports"}} + local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, wait_ms) + for _, res in pairs(result or {}) do + for _, r in pairs(res.result or {}) do + if r.edit then + vim.lsp.util.apply_workspace_edit(r.edit, "UTF-8") + else + vim.lsp.buf.execute_command(r.command) + end + end + end + end + local augroup = vim.api.nvim_create_augroup("cacharle_gopls_group", {}) + vim.api.nvim_create_autocmd( + "BufWritePre", + { callback = go_import_callback, pattern = "*.go", group = augroup } + ) + -- lspconfig.clangd.setup { on_attach = on_attach } -- lspconfig.rust_analyzer.setup { on_attach = on_attach } -- need python-lsp-server and pyls-flake8 lspconfig.pylsp.setup { on_attach = on_attach, capabilities = capabilities } + -- package lua-language-server on ArchLinux -- lspconfig.sumneko_lua.setup { -- on_attach = on_attach , @@ -234,7 +274,7 @@ return require('packer').startup(function() icons_enabled = true, section_separators = '', component_separators = '', - globalstatus = true, + -- globalstatus = true, } } end diff --git a/config/zsh/zprofile b/config/zsh/zprofile index b64522f..0230140 100755 --- a/config/zsh/zprofile +++ b/config/zsh/zprofile @@ -9,6 +9,7 @@ elif [ "$(uname)" = 'Darwin' ] then export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" export PATH="$PATH:$HOME/.brew/bin:$HOME/git/dotfiles/bin:$HOME/bin:/usr/local/anaconda3/bin" + export PATH="$PATH:$HOME/.local/share/go/bin" export MAIL='charles.cabergs@colruytgroup.com' export SUDO='sudo' export LC_CTYPE='en_US.UTF-8' |
