[TxMt] excluding match from language pattern
Allan Odgaard
throw-away-1 at macromates.com
Tue Mar 7 15:47:55 UTC 2006
On 6/3/2006, at 8:55, Quinn Comendant wrote:
> [...]
>
> $sql = "WHERE category = '" . addslashes($category) . "'";
>
> ...or...
>
> $qid = DB::query("
> WHERE category = '" . addslashes($category) . "'
> ");
To match the SQL part I think you will need two different rules (one
for each construct).
I have written an example of matching the first construct below, let
me know if you have further questions.
{ begin = '(\$sql) = '; end = ';';
# assign a scope name to the “$sql” part
captures = { 1 = { name = 'variable.other.php'; } };
patterns = ( # start a new context for … in “$sql = …;”
# match strings in this context
{ name = 'string.quoted.double.php';
begin = '"'; end = '"';
patterns = (
{ match = '\\.'; }. # escaped characters
{ include = 'source.sql'; } # treat content of
string as SQL
);
}.
# for that which is not matched as a string in this
# context use the normal (root level) PHP rules
{ include = '$self'; }
);
}
More information about the textmate
mailing list