]> Sergey Matveev's repositories - vim-lsp.git/commitdiff
Use the LSPBufferAutocmds group for the internal LspServerReady autocmd
authorYegappan Lakshmanan <yegappan@yahoo.com>
Sun, 22 Sep 2024 16:32:57 +0000 (09:32 -0700)
committerYegappan Lakshmanan <yegappan@yahoo.com>
Sun, 22 Sep 2024 16:32:57 +0000 (09:32 -0700)
autoload/lsp/lsp.vim
autoload/lsp/lspserver.vim

index 5138c17734881578321dc1fa431cbdc7c54c9299..adbd60c0e74d845d05157fcaeaa39ce1915e922a 100644 (file)
@@ -482,9 +482,13 @@ export def AddFile(bnr: number): void
     if lspserver.ready
       BufferInit(lspserver.id, bnr)
     else
-      augroup LSPBufferAutocmds
-        exe $'autocmd User LspServerReady_{lspserver.id} ++once BufferInit({lspserver.id}, {bnr})'
-      augroup END
+      # Lsp server is not ready yet.  Initialize the lsp state for this buffer
+      # when the server is ready.
+      autocmd_add([{group: 'LSPBufferAutocmds',
+                   event: 'User',
+                   pattern: $'LspServerReady_{lspserver.id}',
+                   once: true,
+                   cmd: $'BufferInit({lspserver.id}, {bnr})'}])
     endif
   endfor
 enddef
index 3d91520f2e455471d5c6f369f8580a5f42fc34c0..7304b0030868be29fcfcef9e3689b6545a58d7dd 100644 (file)
@@ -132,8 +132,8 @@ def ServerInitReply(lspserver: dict<any>, initResult: dict<any>): void
     exe $'doautocmd <nomodeline> User LspServerReady{lspserver.name}'
   endif
   # Used internally, and shouldn't be used by users
-  if exists($'#User#LspServerReady_{lspserver.id}')
-    exe $'doautocmd <nomodeline> User LspServerReady_{lspserver.id}'
+  if exists($'#LSPBufferAutocmds#User#LspServerReady_{lspserver.id}')
+    exe $'doautocmd <nomodeline> LSPBufferAutocmds User LspServerReady_{lspserver.id}'
   endif
 
   # set the server debug trace level