testing on_attach with golang
This commit is contained in:
		
							parent
							
								
									fa7c2cb4d6
								
							
						
					
					
						commit
						b79e6922fd
					
				@ -49,9 +49,40 @@ vim.cmd([[
 | 
				
			|||||||
-- language server setup
 | 
					-- language server setup
 | 
				
			||||||
local lspconfig = require('lspconfig')
 | 
					local lspconfig = require('lspconfig')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local on_attach = function(_, bufnr)
 | 
				
			||||||
 | 
					    -- key mappings
 | 
				
			||||||
 | 
					    local opts = {
 | 
				
			||||||
 | 
					        buffer = bufnr,
 | 
				
			||||||
 | 
					        noremap = true,
 | 
				
			||||||
 | 
					        silent = true,
 | 
				
			||||||
 | 
					        focusable = false,
 | 
				
			||||||
 | 
					        border = 'rounded',
 | 
				
			||||||
 | 
					        source = 'always',
 | 
				
			||||||
 | 
					        prefix = ' ',
 | 
				
			||||||
 | 
					        scope = 'cursor',
 | 
				
			||||||
 | 
					        close_events = { "BufLeave","CursorMoved","InsertEnter","FocusLost" },
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    -- error viewing
 | 
				
			||||||
 | 
					    vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts)
 | 
				
			||||||
 | 
					    vim.keymap.set('n', '<leader>[d', vim.diagnostic.goto_prev, opts)
 | 
				
			||||||
 | 
					    vim.keymap.set('n', '<leader>]d', vim.diagnostic.goto_next, opts)
 | 
				
			||||||
 | 
					    -- def viewing/rename
 | 
				
			||||||
 | 
					    vim.keymap.set('n', '<leader>gD', vim.lsp.buf.declaration, opts)
 | 
				
			||||||
 | 
					    vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, opts)
 | 
				
			||||||
 | 
					    vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
 | 
				
			||||||
 | 
					    vim.keymap.set('n', '<leader>H', vim.lsp.buf.hover, opts)
 | 
				
			||||||
 | 
					    -- auto hover for error viewing
 | 
				
			||||||
 | 
					    vim.api.nvim_create_autocmd("CursorHold", {
 | 
				
			||||||
 | 
					        callback = function()
 | 
				
			||||||
 | 
					            vim.diagnostic.open_float(nil, opts)
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Go
 | 
					-- Go
 | 
				
			||||||
lspconfig.gopls.setup{
 | 
					lspconfig.gopls.setup{
 | 
				
			||||||
    cmd = {"gopls", "serve"},
 | 
					    cmd = {"gopls", "serve"},
 | 
				
			||||||
 | 
					    on_attach = on_attach,
 | 
				
			||||||
    filetypes = {"go", "gomod"},
 | 
					    filetypes = {"go", "gomod"},
 | 
				
			||||||
    settings = {
 | 
					    settings = {
 | 
				
			||||||
        gopls = {
 | 
					        gopls = {
 | 
				
			||||||
@ -98,24 +129,19 @@ vim.diagnostic.config({
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
vim.o.updatetime = 250
 | 
					vim.o.updatetime = 250
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vim.api.nvim_create_autocmd("CursorHold", {
 | 
					vim.api.nvim_create_autocmd('LspAttach', {
 | 
				
			||||||
    buffer = bufnr,
 | 
					    callback = function(ev)
 | 
				
			||||||
    callback = function()
 | 
					        local opts = { buffer = ev.buf }
 | 
				
			||||||
        local opts = {
 | 
					        -- error viewing
 | 
				
			||||||
            focusable = false,
 | 
					        vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts)
 | 
				
			||||||
            close_events = { "BufLeave", "CursorMoved", "InsertEnter", "FocusLost" },
 | 
					        vim.keymap.set('n', '<leader>[d', vim.diagnostic.goto_prev, opts)
 | 
				
			||||||
            border = 'rounded',
 | 
					        vim.keymap.set('n', '<leader>]d', vim.diagnostic.goto_next, opts)
 | 
				
			||||||
            source = 'always',
 | 
					        -- def viewing/rename
 | 
				
			||||||
            prefix = ' ',
 | 
					        vim.keymap.set('n', '<leader>gD', vim.lsp.buf.declaration, opts)
 | 
				
			||||||
            scope = 'cursor',
 | 
					        vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, opts)
 | 
				
			||||||
        }
 | 
					        vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
 | 
				
			||||||
        vim.diagnostic.open_float(nil, opts)
 | 
					        vim.keymap.set('n', '<leader>H', vim.lsp.buf.hover, opts)
 | 
				
			||||||
    end
 | 
					    end,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- lsp mappingsd
 | 
					
 | 
				
			||||||
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts)
 | 
					 | 
				
			||||||
vim.keymap.set('n', '<leader>gD', vim.lsp.buf.declaration, opts)
 | 
					 | 
				
			||||||
vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, opts)
 | 
					 | 
				
			||||||
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
 | 
					 | 
				
			||||||
vim.keymap.set('n', '<leader>H', vim.lsp.buf.hover, opts)
 | 
					 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user