Hi there,
1st of all, this wrapper is awesome and saves tons of time and this issue is really minor.
It seems the g:LanguageClient_serverCommands variable is being set too late therefore function that sets the bindings described in :help LanguageClient doesn't work and opening any buffer complains about missing variable. Calling same function after the buffer opens works fine. Can you somehow register the server commands earlier and, if not, can you recommend other general condition for detecting whether the server will run for given buffer or not?
Testing vimrc (please note the if statement):
" modeline {
" vim:set ft=vim sw=4 ts=4 sts=4 et tw=78 foldmarker={,} foldlevel=0 foldmethod=marker nowrap:
" }
" vim-plug + plugins {
call plug#begin('~/tmp/testvim')
Plug 'autozimu/LanguageClient-neovim', {'branch': 'next', 'do': 'bash install.sh'}
Plug 'roxma/LanguageServer-php-neovim', {'for': 'php', 'do': 'php ~/bin/composer install && php ~/bin/composer run-script parse-stubs'}
call plug#end()
" }
" copied from `:help LanguageClient` {
function LC_maps()
if has_key(g:LanguageClient_serverCommands, &filetype)
nnoremap <buffer> <silent> K :call LanguageClient#textDocument_hover()<cr>
nnoremap <buffer> <silent> gd :call LanguageClient#textDocument_definition()<CR>
nnoremap <buffer> <silent> <leader>rn :call LanguageClient#textDocument_rename()<CR>
endif
endfunction
autocmd FileType * call LC_maps()
" }
Error message:
Error detected while processing function LC_maps:
line 1:
E121: Undefined variable: g:LanguageClient_serverCommands
E116: Invalid arguments for function has_key
E15: Invalid expression: has_key(g:LanguageClient_serverCommands, &filetype)
Press ENTER or type command to continue
Calling it after the buffer opens works fine:
I'll cross post this issue on LanguageClient tracker as I'm not sure where it belongs. Maybe they can just change documentation or the way server commands register.
Hi there,
1st of all, this wrapper is awesome and saves tons of time and this issue is really minor.
It seems the
g:LanguageClient_serverCommandsvariable is being set too late therefore function that sets the bindings described in:help LanguageClientdoesn't work and opening any buffer complains about missing variable. Calling same function after the buffer opens works fine. Can you somehow register the server commands earlier and, if not, can you recommend other general condition for detecting whether the server will run for given buffer or not?Testing
vimrc(please note theifstatement):Error message:
Calling it after the buffer opens works fine:
I'll cross post this issue on LanguageClient tracker as I'm not sure where it belongs. Maybe they can just change documentation or the way server commands register.