Your message dated Sun, 28 Jan 2018 16:25:08 -0500
with message-id <20180128212508.4dnqjbpkkk4cg...@freya.jamessan.com>
has caused the   report #881654,
regarding vim: visible bracket matching broken in configure.ac files
to be marked as having been forwarded to the upstream software
author(s) Christian Hammesr <c...@lathspell.westend.com>

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
881654: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881654
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Hi Christian,

As described below, the highlighting performed by :MatchParen gets
confused by the AC_MSG_* syntax region.

On Mon, Nov 13, 2017 at 10:36:35PM +0100, Ferenc Wágner wrote:
> Please create /tmp/configure.ac with the following contents:
> 
> [AC_MSG_([yes])]
> 
> and position the cursor on the first character, the opening bracket.
> This highlights the first closing bracket, right after "yes", instead
> of the closing bracket at the end of the line.  However, hitting %
> correctly jumps to the end of the line.

":help pi_paren" explains the problem

> The syntax highlighting attributes are used.  When the cursor currently is not
> in a string or comment syntax item, then matches inside string and comment
> syntax items are ignored.  Any syntax items with "string" or "comment"
> somewhere in their name are considered string or comment items.

Since the opening ([ are highlighted as configstring, they aren't
considered a valid match for the closing ]).

Changing the syntax region's name to configmsg, like in the attached
patch, fixes the problem.  The contents are still highlighted like a
string, but it doesn't confuse the paren matching.

Cheers,
-- 
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7  2D23 DFE6 91AE 331B A3DB
diff --git i/runtime/syntax/config.vim w/runtime/syntax/config.vim
index c6d4e6b36..76da12cec 100644
--- i/runtime/syntax/config.vim
+++ w/runtime/syntax/config.vim
@@ -30,8 +30,8 @@ syn keyword configspecial   cat rm eval
 syn region  configstring    start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell
 
 " Anything inside AC_MSG_TYPE([...])  and AC_MSG_TYPE(...) is a string.
-syn region  configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell
-syn region  configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell
+syn region  configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell
+syn region  configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell
 
 " Define the default highlighting.
 " Only when an item doesn't have highlighting yet
@@ -45,6 +45,7 @@ hi def link confignumber    Number
 hi def link configkeyword   Keyword
 hi def link configspecial   Special
 hi def link configstring    String
+hi def link configmsg       String
 
 
 let b:current_syntax = "config"

--- End Message ---

Reply via email to