diff options
author | Lech Lorens <lech.lorens@gmail.com> | 2017-10-01 15:37:27 +0200 |
---|---|---|
committer | Lech Lorens <lech.lorens@gmail.com> | 2017-10-31 19:14:23 +0100 |
commit | ff819d8ad72b6a7404d28707f1f9ef460c35c472 (patch) | |
tree | 50f9fb9a455c99beb32f1103d675ea3143ea87f3 /src/nvim/mark.c | |
parent | 6340689582bba14187a331b304dde9d91df828c1 (diff) | |
download | rneovim-ff819d8ad72b6a7404d28707f1f9ef460c35c472.tar.gz rneovim-ff819d8ad72b6a7404d28707f1f9ef460c35c472.tar.bz2 rneovim-ff819d8ad72b6a7404d28707f1f9ef460c35c472.zip |
quickfix: fix location list updates.
Fix quickfix performance optimization which prevented quickfix items
from being updated when there were multiple windows with location lists
but the buffer with errors only in one of the lists.
Diffstat (limited to 'src/nvim/mark.c')
-rw-r--r-- | src/nvim/mark.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/nvim/mark.c b/src/nvim/mark.c index 7889fabd45..1ba400972c 100644 --- a/src/nvim/mark.c +++ b/src/nvim/mark.c @@ -951,11 +951,17 @@ static void mark_adjust_internal(linenr_T line1, linenr_T line2, one_adjust_nodel(&(curbuf->b_visual.vi_start.lnum)); one_adjust_nodel(&(curbuf->b_visual.vi_end.lnum)); - /* quickfix marks */ - qf_mark_adjust(NULL, line1, line2, amount, amount_after); - /* location lists */ + // quickfix marks + if (!qf_mark_adjust(NULL, line1, line2, amount, amount_after)) { + curbuf->b_has_qf_entry &= ~BUF_HAS_QF_ENTRY; + } + // location lists + bool found_one = false; FOR_ALL_TAB_WINDOWS(tab, win) { - qf_mark_adjust(win, line1, line2, amount, amount_after); + found_one |= qf_mark_adjust(win, line1, line2, amount, amount_after); + } + if (!found_one) { + curbuf->b_has_qf_entry &= ~BUF_HAS_LL_ENTRY; } sign_mark_adjust(line1, line2, amount, amount_after); |