From 4d79ee0be643c259c9cc076d331f1a56854b23f9 Mon Sep 17 00:00:00 2001 From: Andreas Louv Date: Sat, 1 Apr 2023 21:24:57 +0200 Subject: [PATCH] Add failing test for hydrating quickfix list --- test/clangd_tests.vim | 31 ++++++++++++++++++++++++++----- test/tsserver_tests.vim | 20 +++++++++++++++++--- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/test/clangd_tests.vim b/test/clangd_tests.vim index 1ce4cd6..07fd960 100644 --- a/test/clangd_tests.vim +++ b/test/clangd_tests.vim @@ -163,19 +163,40 @@ def g:Test_LspShowReferences() :LspShowReferences sleep 100m assert_equal('quickfix', getwinvar(winnr('$'), '&buftype')) - var qfl: list> = getloclist(0) - assert_equal(bnr, qfl[0].bufnr) + var loclist: list> = getloclist(0) + assert_equal(bnr, loclist[0].bufnr) + assert_equal(3, loclist->len()) + assert_equal([4, 6], [loclist[0].lnum, loclist[0].col]) + assert_equal([5, 2], [loclist[1].lnum, loclist[1].col]) + assert_equal([6, 6], [loclist[2].lnum, loclist[2].col]) + :only + cursor(1, 5) + :LspShowReferences + assert_equal(1, getloclist(0)->len()) + loclist = getloclist(0) + assert_equal([1, 5], [loclist[0].lnum, loclist[0].col]) + :lclose + + # Test for opening in qf list + g:LspOptionsSet({ useQuickfixForLocations: true }) + cursor(5, 2) + :LspShowReferences + sleep 100m + assert_equal('quickfix', getwinvar(winnr('$'), '&buftype')) + var qfl: list> = getqflist() assert_equal(3, qfl->len()) + assert_equal(bufnr(), qfl[0].bufnr) assert_equal([4, 6], [qfl[0].lnum, qfl[0].col]) assert_equal([5, 2], [qfl[1].lnum, qfl[1].col]) assert_equal([6, 6], [qfl[2].lnum, qfl[2].col]) :only cursor(1, 5) :LspShowReferences - assert_equal(1, getloclist(0)->len()) - qfl = getloclist(0) + assert_equal(1, getqflist()->len()) + qfl = getqflist() assert_equal([1, 5], [qfl[0].lnum, qfl[0].col]) - :lclose + :cclose + g:LspOptionsSet({ useQuickfixForLocations: false }) # Test for LspPeekReferences diff --git a/test/tsserver_tests.vim b/test/tsserver_tests.vim index 4130e93..c286d86 100644 --- a/test/tsserver_tests.vim +++ b/test/tsserver_tests.vim @@ -49,14 +49,28 @@ def g:Test_LspGoto() cursor(7, 8) assert_equal('', execute('LspGotoDefinition')) sleep 200m - var qfl: list> = getloclist(0) + var loclist: list> = getloclist(0) + assert_equal('quickfix', getwinvar(winnr('$'), '&buftype')) + assert_equal(3, loclist->len()) + assert_equal(bufnr(), loclist[0].bufnr) + assert_equal([1, 10, ''], [loclist[0].lnum, loclist[0].col, loclist[0].type]) + assert_equal([2, 10, ''], [loclist[1].lnum, loclist[1].col, loclist[1].type]) + assert_equal([3, 10, ''], [loclist[2].lnum, loclist[2].col, loclist[2].type]) + lclose + + g:LspOptionsSet({ useQuickfixForLocations: true }) + cursor(7, 8) + assert_equal('', execute('LspGotoDefinition')) + sleep 200m + var qfl: list> = getqflist() assert_equal('quickfix', getwinvar(winnr('$'), '&buftype')) - assert_equal(bufnr(), qfl[0].bufnr) assert_equal(3, qfl->len()) + assert_equal(bufnr(), qfl[0].bufnr) assert_equal([1, 10, ''], [qfl[0].lnum, qfl[0].col, qfl[0].type]) assert_equal([2, 10, ''], [qfl[1].lnum, qfl[1].col, qfl[1].type]) assert_equal([3, 10, ''], [qfl[2].lnum, qfl[2].col, qfl[2].type]) - lclose + cclose + g:LspOptionsSet({ useQuickfixForLocations: false }) # Opening the preview window with an unsaved buffer displays the "E37: No # write since last change" error message. To disable this message, mark the -- 2.48.1