19 vim.api.nvim_create_autocmd("LspAttach", { |
19 vim.api.nvim_create_autocmd("LspAttach", { |
20 group = "lsp_attach", |
20 group = "lsp_attach", |
21 callback = function(args) |
21 callback = function(args) |
22 local bufnr = args.buf |
22 local bufnr = args.buf |
23 local client = vim.lsp.get_client_by_id(args.data.client_id) |
23 local client = vim.lsp.get_client_by_id(args.data.client_id) |
24 |
|
25 -- Enable highlight-under-cursor |
|
26 if client.server_capabilities.documentHighlightProvider then |
|
27 vim.cmd [[ |
|
28 hi! LspReferenceRead ctermfg=0 ctermbg=11 guifg=#f0a0c0 guibg=#302028 |
|
29 hi! LspReferenceText ctermfg=0 ctermbg=11 guifg=#f0a0c0 guibg=#302028 |
|
30 hi! LspReferenceWrite ctermfg=0 ctermbg=11 cterm=underline guifg=#f0a0c0 guibg=#302028 gui=underline |
|
31 ]] |
|
32 vim.api.nvim_create_augroup('lsp_document_highlight', { |
|
33 clear = false |
|
34 }) |
|
35 vim.api.nvim_clear_autocmds({ |
|
36 buffer = bufnr, |
|
37 group = 'lsp_document_highlight', |
|
38 }) |
|
39 vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, { |
|
40 group = 'lsp_document_highlight', |
|
41 buffer = bufnr, |
|
42 callback = vim.lsp.buf.document_highlight, |
|
43 }) |
|
44 vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, { |
|
45 group = 'lsp_document_highlight', |
|
46 buffer = bufnr, |
|
47 callback = vim.lsp.buf.clear_references, |
|
48 }) |
|
49 end |
|
50 |
24 |
51 -- enable auto diags in message area for below threshold |
25 -- enable auto diags in message area for below threshold |
52 vim.api.nvim_create_augroup('lsp_diags', {clear = false}) |
26 vim.api.nvim_create_augroup('lsp_diags', {clear = false}) |
53 |
27 |
54 vim.api.nvim_create_autocmd({"CursorHold", "CursorHoldI"}, { |
28 vim.api.nvim_create_autocmd({"CursorHold", "CursorHoldI"}, { |