mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	fix(lsp): call config on_exit handler before context is cleared (#16781)
The on_exit handler provided to the client configuration is called after
the client's context is cleared (e.g. which buffers the client was
attached to). Calling the handler sooner allows these handlers to access
the client object and do their own cleanup with the full context.
(cherry picked from commit 5ab49430ee)
Co-authored-by: Gregory Anders <greg@gpanders.com>
			
			
This commit is contained in:
		![41898282+github-actions[bot]@users.noreply.github.com](/assets/img/avatar_default.png) github-actions[bot]
					github-actions[bot]
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							37a00be7c0
						
					
				
				
					commit
					571609fb89
				
			| @@ -776,6 +776,10 @@ function lsp.start_client(config) | ||||
|   ---@param code (number) exit code of the process | ||||
|   ---@param signal (number) the signal used to terminate (if any) | ||||
|   function dispatch.on_exit(code, signal) | ||||
|     if config.on_exit then | ||||
|       pcall(config.on_exit, code, signal, client_id) | ||||
|     end | ||||
|  | ||||
|     active_clients[client_id] = nil | ||||
|     uninitialized_clients[client_id] = nil | ||||
|  | ||||
| @@ -791,10 +795,6 @@ function lsp.start_client(config) | ||||
|         vim.notify(msg, vim.log.levels.WARN) | ||||
|       end) | ||||
|     end | ||||
|  | ||||
|     if config.on_exit then | ||||
|       pcall(config.on_exit, code, signal, client_id) | ||||
|     end | ||||
|   end | ||||
|  | ||||
|   -- Start the RPC client. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user