[patch] move to next error

68 views
Skip to first unread message

Christian Brabandt

unread,
Aug 1, 2011, 5:30:42 PM8/1/11
to vim...@vim.org
Hi Bram,

this patch fixes this issue from the todo list:


,----
| 8 Add a command to jump to the next character highlighted with
| "Error".
`----

It implements the [e and ]e movement commands, which move to the
previous or next error. And while I was at it, I also made [t ]t move to
the previous/next item that is highlighted with TODO highlighting.

regards,
Christian

[e_movement.diff

Ben Fritz

unread,
Aug 2, 2011, 10:38:11 AM8/2/11
to vim_dev, bretts...@comcast.net
Copying the maintainer of the txtfmt plugin, because ]e/[e ]t/[t are
the beginnings of many mappings defined in this plugin. This should
not be a concern of the patch, but it will make these new commands
awkward to use if txtfmt is installed.

I'm not sure I need or want anything changed, I'm just pointing it out
in case Brett wants to retool the mappings to avoid this.

Bram Moolenaar

unread,
Aug 2, 2011, 4:30:48 PM8/2/11
to Christian Brabandt, vim...@vim.org

Christian Brabandt wrote:

Thanks, I'll put it on the todo list.

We are running out of command characters, taking two more from the ] and
[ list makes me wonder how many users will use them. Perhaps we should
have one "move to highlight" command with an argument to specify what
kind of highlighting? That would be more future safe.


--
No letters of the alphabet were harmed in the creation of this message.

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

Christian Brabandt

unread,
Aug 2, 2011, 4:45:58 PM8/2/11
to vim...@vim.org
Hi

Small update to the patch. What the patch does not yet do is take the
matchlist into account. Should it move there too?

On Mo, 01 Aug 2011, Christian Brabandt wrote:

> @@ -6329,7 +6330,7 @@
> curwin->w_set_curswant = TRUE;
>
> i = do_search(cap->oap, dir, pat, cap->count1,
> - opt | SEARCH_OPT | SEARCH_ECHO | SEARCH_MSG, NULL);
> + opt | SEARCH_OPT | SEARCH_ECHO, NULL);
> if (i == 0)
> clearop(cap->oap);
> else

Not sure, how this part got into the patch. That was wrong.

> + return FAIL;
> + }
> +#endif
> + else

The #endif should move one line down.

Attached is an updated patch.


regards,
Christian

[e_movement.diff

Christian Brabandt

unread,
Aug 2, 2011, 4:50:42 PM8/2/11
to vim...@vim.org
Hi Bram!

On Di, 02 Aug 2011, Bram Moolenaar wrote:

>
> Christian Brabandt wrote:
>
> > this patch fixes this issue from the todo list:
> >
> >
> > ,----
> > | 8 Add a command to jump to the next character highlighted with
> > | "Error".
> > `----
> >
> > It implements the [e and ]e movement commands, which move to the
> > previous or next error. And while I was at it, I also made [t ]t move to
> > the previous/next item that is highlighted with TODO highlighting.
>
> Thanks, I'll put it on the todo list.
>
> We are running out of command characters, taking two more from the ] and
> [ list makes me wonder how many users will use them. Perhaps we should
> have one "move to highlight" command with an argument to specify what
> kind of highlighting? That would be more future safe.

Like what? Something like ]h plus a char, that identifies the
highlighting?

regards,
Christian

Charles Campbell

unread,
Aug 3, 2011, 4:39:20 PM8/3/11
to vim...@googlegroups.com
What about [h and ]h, which would move to the next/previous instance of
the highlighting group specified in a new vim option; as a suggestion,
jumphlgroup . This would be instead of [t and ]t, and could be used
instead of [e and]e, too, I suppose.

Regards,
Chip Campbell

Ben Schmidt

unread,
Aug 3, 2011, 8:36:34 PM8/3/11
to vim...@googlegroups.com
On 3/08/11 6:30 AM, Bram Moolenaar wrote:
> Christian Brabandt wrote:
>
>> this patch fixes this issue from the todo list:
>>
>>
>> ,----
>> | 8 Add a command to jump to the next character highlighted with
>> | "Error".
>> `----
>>
>> It implements the [e and ]e movement commands, which move to the
>> previous or next error. And while I was at it, I also made [t ]t move to
>> the previous/next item that is highlighted with TODO highlighting.
>
> Thanks, I'll put it on the todo list.
>
> We are running out of command characters, taking two more from the ] and
> [ list makes me wonder how many users will use them. Perhaps we should
> have one "move to highlight" command with an argument to specify what
> kind of highlighting? That would be more future safe.

I think something more future-proof and flexible would be better, too.

Maybe it needs to be an Ex command that a user can map if desired to
access in normal mode.

Ben.

Bram Moolenaar

unread,
Aug 4, 2011, 11:31:36 AM8/4/11
to Charles Campbell, vim...@googlegroups.com

Charles Campbell wrote:

That sounds like a good idea. The option can be set depending on the
language, by a filetype plugin. It can be a list of highlight groups, so
that you can tell where ]h and [h stop. You could also make a mapping
that sets the option and then does the ]h, to jump to specific
highlights.

--
CONCORDE: Quickly, sir, come this way!
LAUNCELOT: No! It's not right for my idiom. I must escape more ... more ...
CONCORDE: Dramatically, sir?
LAUNCELOT: Dramatically.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

Christian Brabandt

unread,
Aug 7, 2011, 9:09:56 AM8/7/11
to vim...@googlegroups.com
Hi Bram!

On Do, 04 Aug 2011, Bram Moolenaar wrote:

> > What about [h and ]h, which would move to the next/previous instance of
> > the highlighting group specified in a new vim option; as a suggestion,
> > jumphlgroup . This would be instead of [t and ]t, and could be used
> > instead of [e and]e, too, I suppose.
>
> That sounds like a good idea. The option can be set depending on the
> language, by a filetype plugin. It can be a list of highlight groups, so
> that you can tell where ]h and [h stop. You could also make a mapping
> that sets the option and then does the ]h, to jump to specific
> highlights.

Here we go an updated patch.

The comments should explain how it works. I intentionally commented out
some parts of it. You may enable, if you like it. (basically, how moving
backwards works).

One thing, I still haven't looked at how to add moving to parts that are
highlighted because of the match() functions.

regards,
Christian
--
Demn�chst sollen auch die ersten Landesmeisterschaften im
Beamtendreikampf ausgerichtet werden: Knicken, Lochen, Abheften.

highlight_movement.diff

Bram Moolenaar

unread,
Aug 8, 2011, 3:49:00 PM8/8/11
to Christian Brabandt, vim...@googlegroups.com

Christian Brabandt wrote:

> Hi Bram!
>
> On Do, 04 Aug 2011, Bram Moolenaar wrote:
>
> > > What about [h and ]h, which would move to the next/previous instance of
> > > the highlighting group specified in a new vim option; as a suggestion,
> > > jumphlgroup . This would be instead of [t and ]t, and could be used
> > > instead of [e and]e, too, I suppose.
> >
> > That sounds like a good idea. The option can be set depending on the
> > language, by a filetype plugin. It can be a list of highlight groups, so
> > that you can tell where ]h and [h stop. You could also make a mapping
> > that sets the option and then does the ]h, to jump to specific
> > highlights.
>
> Here we go an updated patch.
>
> The comments should explain how it works. I intentionally commented out
> some parts of it. You may enable, if you like it. (basically, how moving
> backwards works).
>
> One thing, I still haven't looked at how to add moving to parts that are
> highlighted because of the match() functions.

Thanks for making an updated patch. A few obvious mistakes:

> + *'jumphlgroup'* *'jhl'* *'nojumphlgroup'* *'nojhl'*
> +'joinspaces' 'js' string (Vim default "Error", Vi default "")

"joinspaces" is misplaced.

> + /*
> + * "[e" and "]e": move to previous or next error highlight
> + * "[t" and "]t": move to previous or next TODO highlight
> + */

Still the old command names.

> + * Move to next syntax error.

"syntax highlight gorup". Doesn't have to be an error.

There are a lot of new lines. I hope you didn't use copy/paste for
them.

--
In Africa some of the native tribes have a custom of beating the ground
with clubs and uttering spine chilling cries. Anthropologists call
this a form of primitive self-expression. In America we call it golf.

Christian Brabandt

unread,
Aug 9, 2011, 5:07:12 PM8/9/11
to vim...@googlegroups.com
Hi Bram!

Here is an updated patch, that should work with match() functions and
includes a test. It is using the next_search_hl() function to find
matches from the matchlist (and I had to make this function non-static
in order to use it). Unfortunately, this does not seem to work well with
multiline patterns (so it will always jump to the first line of a
multiline pattern).

On Mo, 08 Aug 2011, Bram Moolenaar wrote:
> Thanks for making an updated patch. A few obvious mistakes:
>
> > + *'jumphlgroup'* *'jhl'* *'nojumphlgroup'* *'nojhl'*
> > +'joinspaces' 'js' string (Vim default "Error", Vi default "")
>
> "joinspaces" is misplaced.

Copy Paste error. 'jumphlgroup' was meant. Not sure what you meant with
misplaced, it should be aligned like all other options.

>
> > + /*
> > + * "[e" and "]e": move to previous or next error highlight
> > + * "[t" and "]t": move to previous or next TODO highlight
> > + */
>
> Still the old command names.

Removed.

> > + * Move to next syntax error.
>
> "syntax highlight gorup". Doesn't have to be an error.

Fixed.

>
> There are a lot of new lines. I hope you didn't use copy/paste for
> them.

Yeah, making a new option introduced a lot of new lines. I tried to keep
it as simple as possible. I am surprised, it got that big, since it
started as a rather small patch.

regards,
Christian

syn_motion.diff

Christian Brabandt

unread,
Aug 19, 2011, 2:30:14 AM8/19/11
to vim...@googlegroups.com
Hi Bram,

attached is an updated patch, that should now also compile for small
versions (I included some missing #ifdef):

regards,
Christian

syn_motion.diff
Reply all
Reply to author
Forward
0 new messages