From 3694725e6a89499428cdcf41bf6daa4bd844ac90 Mon Sep 17 00:00:00 2001 From: Tim Parker Date: Sun, 15 Sep 2024 19:11:23 -0500 Subject: [PATCH] Fixes to restart behavior: missing didOpen and duplicate workspace path. --- autoload/go/lsp.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autoload/go/lsp.vim b/autoload/go/lsp.vim index b226423b01..a776bc55cb 100644 --- a/autoload/go/lsp.vim +++ b/autoload/go/lsp.vim @@ -363,7 +363,7 @@ function! s:newlsp() abort \ } call go#statusline#Update(l:wd, l:status) - let self.workspaceDirectories = add(self.workspaceDirectories, l:wd) + let self.workspaceDirectories = s:dedup(add(self.workspaceDirectories, l:wd)) let l:msg = self.newMessage(go#lsp#message#Initialize(l:wd)) let l:state = s:newHandlerState('') @@ -458,7 +458,7 @@ function! s:newlsp() abort call call('go#lsp#AddWorkspaceDirectory', l:workspaces) " * send DidOpen messages for all buffers that have b:did_lsp_open set " TODO(bc): check modifiable and filetype, too? - bufdo if get(b:, 'go_lsp_did_open', 0) | if &modified | call go#lsp#DidOpen(expand('%:p')) | else | call go#lsp#DidChange(expand('%:p')) | endif | endif + bufdo! if get(b:, 'go_lsp_did_open', 0) | let b:go_lsp_did_open = 0 | if &modified | call go#lsp#DidOpen(expand('%:p')) | else | call go#lsp#DidChange(expand('%:p')) | endif | endif let l:lsp.queue = extend(l:lsp.queue, l:queue) return endfunction