@@ -1871,6 +1871,10 @@ impl State {
18711871 if !buftype. is_empty ( ) || languageId. is_empty ( ) {
18721872 return Ok ( ( ) ) ;
18731873 }
1874+ if !self . serverCommands . contains_key ( & languageId) {
1875+ return Ok ( ( ) ) ;
1876+ }
1877+
18741878 let uri = filename. to_url ( ) ?;
18751879
18761880 self . notify (
@@ -2217,14 +2221,19 @@ impl State {
22172221
22182222 pub fn languageClient_handleTextChanged ( & mut self , params : & Value ) -> Result < ( ) > {
22192223 info ! ( "Begin {}" , NOTIFICATION__HandleTextChanged ) ;
2220- let ( buftype, filename) : ( String , String ) =
2221- self . gather_args ( & [ VimVar :: Buftype , VimVar :: Filename ] , params) ?;
2224+ let ( buftype, languageId , filename) : ( String , String , String ) =
2225+ self . gather_args ( & [ VimVar :: Buftype , VimVar :: LanguageId , VimVar :: Filename ] , params) ?;
22222226 if !buftype. is_empty ( ) {
22232227 info ! (
22242228 "Skip handleTextChanged as buftype is non-empty: {}" ,
22252229 buftype
22262230 ) ;
2231+ return Ok ( ( ) ) ;
22272232 }
2233+ if !self . serverCommands . contains_key ( & languageId) {
2234+ return Ok ( ( ) ) ;
2235+ }
2236+
22282237 let skip_notification = self . get ( |state| {
22292238 if let Some ( metadata) = state. text_documents_metadata . get ( & filename) {
22302239 if let Some ( throttle) = state. change_throttle {
@@ -2254,7 +2263,11 @@ impl State {
22542263
22552264 pub fn languageClient_handleBufDelete ( & mut self , params : & Value ) -> Result < ( ) > {
22562265 info ! ( "Begin {}" , NOTIFICATION__HandleBufWritePost ) ;
2257- let ( filename, ) : ( String , ) = self . gather_args ( & [ VimVar :: Filename ] , params) ?;
2266+ let ( languageId, filename) : ( String , String ) = self . gather_args ( & [ VimVar :: LanguageId , VimVar :: Filename ] , params) ?;
2267+ if !self . serverCommands . contains_key ( & languageId) {
2268+ return Ok ( ( ) ) ;
2269+ }
2270+
22582271 self . update ( |state| {
22592272 state. text_documents . retain ( |f, _| f != & filename) ;
22602273 state. diagnostics . retain ( |f, _| f != & filename) ;
@@ -2269,8 +2282,12 @@ impl State {
22692282
22702283 pub fn languageClient_handleCursorMoved ( & mut self , params : & Value ) -> Result < ( ) > {
22712284 info ! ( "Begin {}" , NOTIFICATION__HandleCursorMoved ) ;
2272- let ( buftype, filename, line) : ( String , String , u64 ) =
2273- self . gather_args ( & [ VimVar :: Buftype , VimVar :: Filename , VimVar :: Line ] , params) ?;
2285+ let ( buftype, languageId, filename, line) : ( String , String , String , u64 ) =
2286+ self . gather_args ( & [ VimVar :: Buftype , VimVar :: LanguageId , VimVar :: Filename , VimVar :: Line ] , params) ?;
2287+ if !self . serverCommands . contains_key ( & languageId) {
2288+ return Ok ( ( ) ) ;
2289+ }
2290+
22742291 let ( visible_line_start, visible_line_end) : ( u64 , u64 ) = self . gather_args (
22752292 & [ "LSP#visible_line_start()" , "LSP#visible_line_end()" ] ,
22762293 params,
0 commit comments