Mercurial > vim
diff src/testdir/test_quickfix.vim @ 33650:5614c43616fe v9.0.2064
patch 9.0.2064: cannot use buffer-number for errorformat
Commit: https://github.com/vim/vim/commit/b731800522af00fd348814d33a065b92e698afc3
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Wed Oct 25 20:50:28 2023 +0200
patch 9.0.2064: cannot use buffer-number for errorformat
Problem: cannot use buffer-number for errorformat
Solution: add support for parsing a buffer number using '%b' in
'errorformat'
closes: #13419
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 25 Oct 2023 21:00:04 +0200 |
parents | 05188ca69e43 |
children | 40c314f639cf |
line wrap: on
line diff
--- a/src/testdir/test_quickfix.vim +++ b/src/testdir/test_quickfix.vim @@ -6447,4 +6447,53 @@ func Test_quickfix_buffer_contents() call setqflist([], 'f') endfunc +" Test for "%b" in "errorformat" +func Test_efm_format_b() + call setqflist([], 'f') + new + call setline(1, ['1: abc', '1: def', '1: ghi']) + let b1 = bufnr() + new + call setline(1, ['2: abc', '2: def', '2: ghi']) + let b2 = bufnr() + new + call setline(1, ['3: abc', '3: def', '3: ghi']) + let b3 = bufnr() + new + let lines =<< trim eval END + {b1}:1:1 + {b2}:2:2 + {b3}:3:3 + END + call setqflist([], ' ', #{lines: lines, efm: '%b:%l:%c'}) + cfirst + call assert_equal([b1, 1, 1], [bufnr(), line('.'), col('.')]) + cnext + call assert_equal([b2, 2, 2], [bufnr(), line('.'), col('.')]) + cnext + call assert_equal([b3, 3, 3], [bufnr(), line('.'), col('.')]) + enew! + + " Use a non-existing buffer + let lines =<< trim eval END + 9991:1:1:m1 + 9992:2:2:m2 + {b3}:3:3:m3 + END + call setqflist([], ' ', #{lines: lines, efm: '%b:%l:%c:%m'}) + cfirst | cnext + call assert_equal([b3, 3, 3], [bufnr(), line('.'), col('.')]) + " Lines with non-existing buffer numbers should be used as non-error lines + call assert_equal([ + \ #{lnum: 0, bufnr: 0, end_lnum: 0, pattern: '', valid: 0, vcol: 0, nr: -1, + \ module: '', type: '', end_col: 0, col: 0, text: '9991:1:1:m1'}, + \ #{lnum: 0, bufnr: 0, end_lnum: 0, pattern: '', valid: 0, vcol: 0, nr: -1, + \ module: '', type: '', end_col: 0, col: 0, text: '9992:2:2:m2'}, + \ #{lnum: 3, bufnr: b3, end_lnum: 0, pattern: '', valid: 1, vcol: 0, + \ nr: -1, module: '', type: '', end_col: 0, col: 3, text: 'm3'}], + \ getqflist()) + %bw! + call setqflist([], 'f') +endfunc + " vim: shiftwidth=2 sts=2 expandtab