From f190d9c182423c6223c4ae3062dcbb54398a57c5 Mon Sep 17 00:00:00 2001 From: Nick Jensen Date: Fri, 13 Oct 2023 15:39:16 +1300 Subject: [PATCH] Always use callback is called after buffer#Valid() --- autoload/OmniSharp/actions/buffer.vim | 4 ++-- autoload/OmniSharp/actions/diagnostics.vim | 3 ++- autoload/OmniSharp/buffer.vim | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/autoload/OmniSharp/actions/buffer.vim b/autoload/OmniSharp/actions/buffer.vim index 3018bc112..a05a6fa6c 100644 --- a/autoload/OmniSharp/actions/buffer.vim +++ b/autoload/OmniSharp/actions/buffer.vim @@ -10,12 +10,12 @@ set cpoptions&vim " SendBuffer: flag indicating that the buffer contents should be sent, " regardless of &modified status or b:changedtick function! OmniSharp#actions#buffer#Update(...) abort - if !OmniSharp#buffer#Valid() | return | endif let opts = a:0 ? a:1 : {} let opts.Initializing = get(opts, 'Initializing', 0) let opts.SendBuffer = opts.Initializing || get(opts, 'SendBuffer', 0) + let bufnr = get(opts, 'bufnr', bufnr('%')) let lasttick = get(b:, 'OmniSharp_UpdateChangeTick', -1) - if opts.SendBuffer || b:changedtick != lasttick + if OmniSharp#buffer#Valid(bufnr) && opts.SendBuffer || b:changedtick != lasttick let b:OmniSharp_UpdateChangeTick = b:changedtick if g:OmniSharp_server_stdio let requestOpts = { diff --git a/autoload/OmniSharp/actions/diagnostics.vim b/autoload/OmniSharp/actions/diagnostics.vim index eaba8e807..dcab828a9 100644 --- a/autoload/OmniSharp/actions/diagnostics.vim +++ b/autoload/OmniSharp/actions/diagnostics.vim @@ -55,7 +55,8 @@ function! OmniSharp#actions#diagnostics#StdioCheck(bufnr, Callback) abort " and does not need to be updated, the `/codecheck` request occurs " immediately. call OmniSharp#actions#buffer#Update({ - \ 'Callback': function('s:StdioCheck', [a:bufnr, a:Callback]) + \ 'Callback': function('s:StdioCheck', [a:bufnr, a:Callback]), + \ 'bufnr': a:bufnr \}) endfunction diff --git a/autoload/OmniSharp/buffer.vim b/autoload/OmniSharp/buffer.vim index 5a27db07b..d08be09ed 100644 --- a/autoload/OmniSharp/buffer.vim +++ b/autoload/OmniSharp/buffer.vim @@ -11,6 +11,7 @@ function! OmniSharp#buffer#Initialize(job, bufnr, command, opts) abort if has_key(OmniSharp#GetHost(a:bufnr), 'initializing') | return | endif let host.initializing = 1 call OmniSharp#actions#buffer#Update({ + \ 'bufnr': a:bufnr, \ 'Callback': function('s:CBInitialize', [a:job, a:bufnr, host]), \ 'Initializing': 1 \}) @@ -156,7 +157,7 @@ function! OmniSharp#buffer#Update(responseBody) abort endfunction function! OmniSharp#buffer#Valid(...) abort - let bufnr = bufnr(a:0 ? a:1 : '%') + let bufnr = a:0 ? a:1 : bufnr('%') let bufname = fnamemodify(bufname(bufnr), ':p') let buftype = a:0 ? getbufvar(a:1, '&buftype') : &buftype return buftype !=# 'nofile' && bufname !=# ''