Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

YCM command GoToSymbol report IndexError: list index out of range #956

Open
ihexon opened this issue Dec 23, 2023 · 0 comments
Open

YCM command GoToSymbol report IndexError: list index out of range #956

ihexon opened this issue Dec 23, 2023 · 0 comments

Comments

@ihexon
Copy link

ihexon commented Dec 23, 2023

Observed behavior

When CCLS is used as the LSP server in YCM, executing :YcmCompleter GoToSymbol prompts an IndexError: list index out of range. However, GoToDefinition/GoToDeclaration/GoToReferences/GoToImplementation/GoToType all work correctly.

Is it a compatibility issue between CCLS and the GoToSymbol command in YCM?

I have compile_commands.json in the project root directory. ccls generates an index in PROJECT_ROOT/.ccls-cache/, the size is about 14 M

I have minimal vimrc:

····
call plug#begin()
 Plug 'dracula/vim'
  Plug 'ycm-core/YouCompleteMe', { 'dir': '~/YouCompleteMe', 'do': 'git submodule update --init --recursive' }
call plug#end()

let g:ycm_language_server +=
  \ [{
  \   'name': 'ccls',
  \   'cmdline': [ 'ccls' ],
  \   'filetypes': [ 'c', 'cpp', 'cuda', 'objc', 'objcpp' ],
  \   'project_root_files': [ '.ccls-root', 'compile_commands.json' ]
  \ }]
····
  • YouCompleteMe debug information:
Printing YouCompleteMe debug information...
-- Resolve completions: Up front
-- Client logfile: /tmp/ycm_ymm238fy.log
-- Server Python interpreter: /usr/bin/python3
-- Server Python version: 3.10.12
-- Server has Clang support compiled in: False
-- Clang version: None
-- Extra configuration file found and loaded
-- Extra configuration path: /home/ihexon/.vim/ext/.ycm_extra_conf.py
-- GenericLSP completer debug information:
--   cclsCompleter running
--   cclsCompleter process ID: 817616
--   cclsCompleter executable: ['/usr/local/bin/ccls']
--   cclsCompleter logfiles:
--     /tmp/cclscompleter_stderrcqtqhpjf.log
--   cclsCompleter Server State: Initialized
--   cclsCompleter Project Directory: /home/ihexon/glibc
--   cclsCompleter Settings: {}
-- Server running at: http://127.0.0.1:45979
-- Server process ID: 817598
-- Server logfiles:
--   /tmp/ycmd_45979_stdout_d9hbinid.log
--   /tmp/ycmd_45979_stderr_ew02c6a5.log
-- Semantic highlighting supported: True
-- Virtual text supported: True
-- Popup windows supported: True

File: /tmp/ycmd_45979_stderr_ew02c6a5.log

2023-12-23 18:37:29,327 - DEBUG - in-event <InotifyEvent: src_path=b'/home/ihexon/glibc/nss/nss_module.h', wd=36, mask=IN_OPEN, cookie=0, name='nss_module.h'>
2023-12-23 18:37:29,371 - DEBUG - in-event <InotifyEvent: src_path=b'/home/ihexon/glibc/sysdeps/generic/unwind.h', wd=78, mask=IN_OPEN, cookie=0, name='unwind.h'>
Traceback (most recent call last):
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/third_party/bottle/bottle.py", line 876, in _handle
    return route.call(**args)
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/third_party/bottle/bottle.py", line 1756, in wrapper
    rv = callback(*a, **ka)
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/ycmd/watchdog_plugin.py", line 97, in wrapper
    return callback( *args, **kwargs )
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/ycmd/hmac_plugin.py", line 62, in wrapper
    body = callback( *args, **kwargs )
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/ycmd/handlers.py", line 93, in RunCompleterCommand
    return _JsonResponse( completer.OnUserCommand(
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/ycmd/completers/completer.py", line 481, in OnUserCommand
    return command( self, request_data, arguments[ 1: ] )
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/ycmd/completers/language_server/language_server_completer.py", line 90, in <lambda>
    lambda self, request_data, args: self.GoToSymbol( request_data, args )
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/ycmd/completers/language_server/language_server_completer.py", line 2560, in GoToSymbol
    return _SymbolInfoListToGoTo( request_data, result )
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/ycmd/completers/language_server/language_server_completer.py", line 3205, in _SymbolInfoListToGoTo
    locations = [ BuildGoToLocationFromSymbol( s ) for s in
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/ycmd/completers/language_server/language_server_completer.py", line 3205, in <listcomp>
    locations = [ BuildGoToLocationFromSymbol( s ) for s in
  File "/home/ihexon/YouCompleteMe/third_party/ycmd/ycmd/completers/language_server/language_server_completer.py", line 3194, in BuildGoToLocationFromSymbol
    description = ( f'{ lsp.SYMBOL_KIND[ symbol[ "kind" ] ] }: '
IndexError: list index out of range
127.0.0.1 - - [23/Dec/2023 18:37:29] "POST /run_completer_command HTTP/1.1" 500 2105
2023-12-23 18:37:33,427 - INFO - Found executeCommandProvider support for command ExecuteCommand in ccls
2023-12-23 18:37:33,427 - INFO - Found codeActionProvider support for command FixIt in ccls

System information

  • ccls version
commit f36ecb0c0e025f3f3a5c2d28c823316e5d0c48ba (grafted, HEAD -> master, origin/master, origin/HEAD)
Author: Fangrui Song <i@maskray.me>
Date:   Thu Dec 14 22:07:21 2023 -0800

    Adapt llvmorg-18-init-13684-ge1e34cc2a17c: llvm/Support/Host.h
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant