Mercurial > vim
changeset 9379:b398e4e12751 v7.4.1971
commit https://github.com/vim/vim/commit/e8fea0728a2fa1fe78ef0ac90dee1a84bd7ef9fb
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jul 1 14:48:27 2016 +0200
patch 7.4.1971
Problem: It is not easy to see unrecognized error lines below the current
error position.
Solution: Add ":clist +count".
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 01 Jul 2016 15:00:06 +0200 |
parents | 966944639989 |
children | a419e980f5b7 |
files | runtime/doc/quickfix.txt src/quickfix.c src/version.c |
diffstat | 3 files changed, 39 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1,4 +1,4 @@ -*quickfix.txt* For Vim version 7.4. Last change: 2016 Jun 02 +*quickfix.txt* For Vim version 7.4. Last change: 2016 Jul 01 VIM REFERENCE MANUAL by Bram Moolenaar @@ -270,11 +270,24 @@ processing a quickfix or location list c The 'switchbuf' settings are respected when jumping to a buffer. +:cl[ist] +{count} List the current and next {count} valid errors. This + is similar to ":clist from from+count", where "from" + is the current error position. + :cl[ist]! [from] [, [to]] List all errors. - *:lli* *:llist* -:lli[st] [from] [, [to]] +:cl[ist]! +{count} List the current and next {count} error lines. This + is useful to see unrecognized lines after the current + one. For example, if ":clist" shows: + 8384 testje.java:252: error: cannot find symbol ~ + Then using ":cl! +3" shows the reason: + 8384 testje.java:252: error: cannot find symbol ~ + 8385: ZexitCode = Fmainx(); ~ + 8386: ^ ~ + 8387: symbol: method Fmainx() ~ + +:lli[st] [from] [, [to]] *:lli* *:llist* Same as ":clist", except the location list for the current window is used instead of the quickfix list. @@ -318,7 +331,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN etc. < When the current file can't be |abandon|ed and the [!] is not present, the command fails. - When an error is detected excecution stops. + When an error is detected execution stops. The last buffer (or where an error occurred) becomes the current buffer. {cmd} can contain '|' to concatenate several commands.
--- a/src/quickfix.c +++ b/src/quickfix.c @@ -2258,6 +2258,7 @@ qf_list(exarg_T *eap) int idx1 = 1; int idx2 = -1; char_u *arg = eap->arg; + int plus = FALSE; int all = eap->forceit; /* if not :cl!, only show recognised errors */ qf_info_T *qi = &ql_info; @@ -2278,16 +2279,30 @@ qf_list(exarg_T *eap) EMSG(_(e_quickfix)); return; } + if (*arg == '+') + { + ++arg; + plus = TRUE; + } if (!get_list_range(&arg, &idx1, &idx2) || *arg != NUL) { EMSG(_(e_trailing)); return; } - i = qi->qf_lists[qi->qf_curlist].qf_count; - if (idx1 < 0) - idx1 = (-idx1 > i) ? 0 : idx1 + i + 1; - if (idx2 < 0) - idx2 = (-idx2 > i) ? 0 : idx2 + i + 1; + if (plus) + { + i = qi->qf_lists[qi->qf_curlist].qf_index; + idx2 = i + idx1; + idx1 = i; + } + else + { + i = qi->qf_lists[qi->qf_curlist].qf_count; + if (idx1 < 0) + idx1 = (-idx1 > i) ? 0 : idx1 + i + 1; + if (idx2 < 0) + idx2 = (-idx2 > i) ? 0 : idx2 + i + 1; + } if (qi->qf_lists[qi->qf_curlist].qf_nonevalid) all = TRUE;