[SVN] Perl qq(..) with multiline nested (..) within
Peter Traskalik
dreamy.de at mac.com
Sun Jun 5 12:41:24 UTC 2005
I would like to enhance the Perl Bundle,
because the qq() pattern seems to have problems with multiline nested
"(..)" within.
this is my current status: it works quite well.
(i also added matches for html and sql,
because qq() is often used for multiline html/sql content)
--------------------------------------------------
{ name = "string.double-quoted.q.perl";
begin = "\\Wq[qwx]*\\(";
end = "\\)";
swallow = "\\(.*\\)[^;]|\\)\\s*[\\n\\)][^;]?";
patterns = (
{ match = "<.?*>";
include = "text.html";
},
{ match = "SELECT|UPDATE|INSERT";
include = "source.sql";
},
);
}
--------------------------------------------------
AFAIK "swallow" does only "one-line-matching"
my version works with this code:
$sql_filter = qq(
AND ( something IN (10,11,100,115 )
OR whatever ) if $foo == 1;
(the current Perl Bundle Syntax ends the match in second line at the
ending ")")
but my version fails here:
$sql_filter = qq(
AND ( something IN (10,11,100,115 )
OR whatever AND ( foo = bar) ) if $foo == 1;
because of the ") )" sequence i think...
this is very hard to match,
without actually "counting" the "(..)" pairs
there could be a built in functionality for "counting" the matching
"(" and ")"
so with a given end = "\\)"; TextMate would not match any of the
"(...)" pairs
in between if the amount of openings and closings is equal.
what do you think ?
maybe i am on the wrong way at all? missing something ?
Peter
More information about the textmate-dev
mailing list