RRethy / vim-illuminate

illuminate.vim - (Neo)Vim plugin for automatically highlighting other uses of the word under the cursor using either LSP, Tree-sitter, or regex matching.
2.14k stars 47 forks source link

document highlight not work on neovim nightly #85

Closed aceforeverd closed 2 years ago

aceforeverd commented 2 years ago

Describe the bug lsp document highlight not work on neovim nightly, while function like next_reference still work. There is no problem with neovim 0.5.1

To Reproduce

built on https://github.com/neovim/neovim/commit/2ef9d2a663db35c73b93606dbe882ca697072cc3 env: arch linux

minial vimrc:

iniit.vim

set nu
syntax on

set nocompatible
set wildmenu
set ignorecase
set termguicolors

if has('nvim-0.5.0')
        lua require('lsp')
endif

colorscheme torte

lua/lsp.vim

local config_path = vim.fn.expand('<sfile>:p:h')
vim.cmd(string.format("let &packpath = &packpath . ',' . '%s/bundle'", config_path))

local packer_install_path = config_path .. '/bundle/pack/packer/start/packer.nvim'

if vim.fn.empty(vim.fn.glob(packer_install_path)) > 0 then
  vim.fn.system({ 'git', 'clone', 'https://github.com/wbthomason/packer.nvim', packer_install_path })
end

vim.cmd([[
augroup packer_user_config
autocmd!
autocmd BufWritePost plugins.lua source <afile> | PackerCompile
augroup end
]])

vim.cmd([[augroup gp_lsp
autocmd!
autocmd ColorScheme * highlight LspReferenceText cterm=bold gui=bold guibg=#5e5e5f
autocmd ColorScheme * highlight LspReferenceRead cterm=underline gui=undercurl guibg=#5e5e5f
autocmd ColorScheme * highlight LspReferenceWrite cterm=bold,underline gui=bold,undercurl guibg=#5e5e9f
augroup END]])

vim.cmd[[
augroup gp_illuminate_highlight
autocmd!
autocmd ColorScheme * highlight illuminatedWord guibg=#5e5e5e
autocmd ColorScheme * highlight illuminatedCurWord cterm=bold guibg=#5e5e7f gui=bold
augroup END]]

local packer = require('packer')

local util = require('packer.util')
packer.init({
  package_root = util.join_paths(config_path, 'bundle/pack'),
  compile_path = util.join_paths(config_path, 'plugin', 'packer_compiled.vim'),
  plugin_package = 'packer',
  max_jobs = 12,
  git = { clone_timeout = 30 },
  profile = { enable = true, threshold = 1 }
})

return packer.startup({
  function(use)
    use { 'wbthomason/packer.nvim' }

    use {
      'neovim/nvim-lspconfig',
      config = function()
    local lspconfig = require('lspconfig')
    local default_map_opts = { noremap = true, silent = true }
    local on_attach = function(client, bufnr)
      local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
      local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end

      -- Enable completion triggered by <c-x><c-o>
      buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')

      -- See `:help vim.lsp.*` for documentation on any of the below functions
      buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', default_map_opts)
      buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', default_map_opts)
      buf_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', default_map_opts)
      buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', default_map_opts)
      buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', default_map_opts)
      buf_set_keymap('n', 'gK', '<cmd>lua vim.lsp.buf.signature_help()<CR>', default_map_opts)
      buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', default_map_opts)
      buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', default_map_opts)
      buf_set_keymap('n', '<space>wl',
      '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', default_map_opts)
      buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', default_map_opts)
      buf_set_keymap('n', '<Leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', default_map_opts)
      buf_set_keymap('n', '<Leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', default_map_opts)
      buf_set_keymap('n', '<space>dl', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', default_map_opts)
      buf_set_keymap('n', '<c-k>', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', default_map_opts)
      buf_set_keymap('n', '<c-j>', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', default_map_opts)
      buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', default_map_opts)
      buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', default_map_opts)

      -- vim-illuminate
      require('illuminate').on_attach(client)

    end

    lspconfig.clangd.setup{on_attach = on_attach, capabilities = vim.lsp.protocol.make_client_capabilities()}
      end
    }

    use {
      'RRethy/vim-illuminate',
      config = function()
    vim.api.nvim_set_keymap('n', '<a-n>', '<cmd>lua require"illuminate".next_reference{wrap=true}<cr>',
    { noremap = true })
    vim.api.nvim_set_keymap('n', '<a-p>',
    '<cmd>lua require"illuminate".next_reference{reverse=true,wrap=true}<cr>',
    { noremap = true })
    vim.api.nvim_set_keymap('n', '<a-i>', '<cmd>lua require"illuminate".toggle_pause()<cr>',
    { noremap = true })

      end
    }

  end
})

open a lsp enabled file, here I use a C file

Expected behavior A clear and concise description of what you expected to happen.

Screenshots for nvim nightly

Screen Shot 2021-11-14 at 4 06 04 PM

while works for nvim 0.5.1

Screen Shot 2021-11-14 at 4 04 26 PM

Additional context Add any other context about the problem here.