UsePlugin 'vim-lsp' let g:lsp_diagnostics_enabled = 1 let g:lsp_diagnostics_float_cursor = 1 let g:lsp_signs_enabled = 1 " enable signs let g:lsp_diagnostics_echo_cursor = 1 " enable echo under cursor when in normal mode " let g:lsp_ultisnips_integration = 1 " for debug " let g:lsp_log_verbose = 1 " let g:lsp_log_file = expand('~/vim-lsp.log') " let g:asyncomplete_log_file = expand('~/asyncomplete.log') let g:lsp_settings = { \ 'efm-langserver': { \ 'disabled': 0, \ }, \ 'intelephense': { \ 'workspace_config': { \ 'intelephense': { \ 'stubs': [ \ 'apache', \ 'bcmath', \ 'bz2', \ 'calendar', \ 'com_dotnet', \ 'Core', \ 'ctype', \ 'curl', \ 'date', \ 'dba', \ 'dom', \ 'enchant', \ 'exif', \ 'FFI', \ 'fileinfo', \ 'filter', \ 'fpm', \ 'ftp', \ 'gd', \ 'gettext', \ 'gmp', \ 'hash', \ 'iconv', \ 'imap', \ 'intl', \ 'json', \ 'ldap', \ 'libxml', \ 'mbstring', \ 'meta', \ 'mysqli', \ 'oci8', \ 'odbc', \ 'openssl', \ 'pcntl', \ 'pcre', \ 'PDO', \ 'pdo_ibm', \ 'pdo_mysql', \ 'pdo_pgsql', \ 'pdo_sqlite', \ 'pgsql', \ 'Phar', \ 'posix', \ 'pspell', \ 'readline', \ 'Reflection', \ 'session', \ 'shmop', \ 'SimpleXML', \ 'snmp', \ 'soap', \ 'sockets', \ 'sodium', \ 'SPL', \ 'sqlite3', \ 'standard', \ 'superglobals', \ 'sysvmsg', \ 'sysvsem', \ 'sysvshm', \ 'tidy', \ 'tokenizer', \ 'xml', \ 'xmlreader', \ 'xmlrpc', \ 'xmlwriter', \ 'xsl', \ 'Zend OPcache', \ 'zip', \ 'zlib', \ 'wordpress' \ ] \ } \ } \ } \} autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif function! s:on_lsp_buffer_enabled() abort setlocal omnifunc=lsp#complete setlocal signcolumn=yes nmap gd (lsp-definition) nmap (lsp-rename) nmap gD (lsp-references) nmap K (lsp-hover) nmap ]s (lsp-next-error) nmap [s (lsp-previous-error) endfunction augroup lsp_install au! " call s:on_lsp_buffer_enabled only for languages that has the server registered. autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled() augroup END