summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-07-01 14:48:27 +0200
committerBram Moolenaar <Bram@vim.org>2016-07-01 14:48:27 +0200
commite8fea0728a2fa1fe78ef0ac90dee1a84bd7ef9fb (patch)
tree0d9af1d2747a9521a556ca4ffcc84702cca6c561
parent70e136e1d86ea1d795774824c7b712245912946d (diff)
patch 7.4.1971v7.4.1971
Problem: It is not easy to see unrecognized error lines below the current error position. Solution: Add ":clist +count".
-rw-r--r--runtime/doc/quickfix.txt21
-rw-r--r--src/quickfix.c25
-rw-r--r--src/version.c2
3 files changed, 39 insertions, 9 deletions
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 649eb1d90b..9b5803c610 100644
--- 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 command, it will be aborted.
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 QUICKFIX OR LOCATION LIST:
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.
diff --git a/src/quickfix.c b/src/quickfix.c
index 366e4bd922..f71fed3e17 100644
--- 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;
diff --git a/src/version.c b/src/version.c
index 774d309d37..cfce606279 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1971,
+/**/
1970,
/**/
1969,