@@ -153,25 +153,31 @@ endfunction
153153command ! -nargs =* LanguageClientStart :call LanguageClient#startServer (<f-args> )
154154command ! LanguageClientStop call LanguageClient#shutdown ()
155155
156- augroup languageClient
156+ function ! s: ConfigureAutocmds ()
157+ let l: commands = get (g: , ' LanguageClient_serverCommands' , {})
158+ if ! has_key (l: commands , &filetype )
159+ " skip setting autocmds if the filetype doesn't have a configured server command
160+ return
161+ endif
162+
163+ call LanguageClient#handleFileType ()
164+ augroup languageClient
157165 autocmd !
158- autocmd FileType * call LanguageClient#handleFileType ()
159- autocmd BufNewFile * call LanguageClient#handleBufNewFile ()
160- autocmd BufEnter * call LanguageClient#handleBufEnter ()
161- autocmd BufWritePost * call LanguageClient#handleBufWritePost ()
162- autocmd BufDelete * call LanguageClient#handleBufDelete ()
163- autocmd TextChanged * call LanguageClient#handleTextChanged ()
164- autocmd TextChangedI * call LanguageClient#handleTextChanged ()
166+ autocmd BufNewFile <buffer> call LanguageClient#handleBufNewFile ()
167+ autocmd BufEnter <buffer> call LanguageClient#handleBufEnter ()
168+ autocmd BufWritePost <buffer> call LanguageClient#handleBufWritePost ()
169+ autocmd BufDelete <buffer> call LanguageClient#handleBufDelete ()
170+ autocmd TextChanged <buffer> call LanguageClient#handleTextChanged ()
171+ autocmd TextChangedI <buffer> call LanguageClient#handleTextChanged ()
165172 if exists (' ##TextChangedP' )
166- autocmd TextChangedP * call LanguageClient#handleTextChanged ()
173+ autocmd TextChangedP <buffer> call LanguageClient#handleTextChanged ()
167174 endif
168- autocmd CursorMoved * call LanguageClient#handleCursorMoved ()
169- autocmd VimLeavePre * call LanguageClient#handleVimLeavePre ()
170-
171- autocmd CompleteDone * call LanguageClient#handleCompleteDone ()
175+ autocmd CursorMoved <buffer> call LanguageClient#handleCursorMoved ()
176+ autocmd VimLeavePre <buffer> call LanguageClient#handleVimLeavePre ()
172177
178+ autocmd CompleteDone <buffer> call LanguageClient#handleCompleteDone ()
173179 if get (g: , ' LanguageClient_signatureHelpOnCompleteDone' , 0 )
174- autocmd CompleteDone *
180+ autocmd CompleteDone <buffer>
175181 \ call LanguageClient#textDocument_signatureHelp ({}, ' s:HandleOutputNothing' )
176182 endif
177183
@@ -192,4 +198,10 @@ augroup languageClient
192198 nnoremap <Plug> (lcn-format-sync) :call LanguageClient_textDocument_formatting_sync()<CR>
193199 nnoremap <Plug> (lcn-diagnostics-next) :call LanguageClient_diagnosticsNext()<CR>
194200 nnoremap <Plug> (lcn-diagnostics-prev) :call LanguageClient_diagnosticsPrevious()<CR>
201+ augroup END
202+ endfunction
203+
204+ augroup languageClient_fileType
205+ autocmd !
206+ autocmd FileType * call s: ConfigureAutocmds ()
195207augroup END
0 commit comments