[TxMt] Change SQL bundle to pick out the constant.numeric element from a storage.type
Allan Odgaard
throw-away-1 at macromates.com
Wed Oct 25 01:12:36 UTC 2006
On 24. Oct 2006, at 21:31, Timothy Bates wrote:
> So a suggestion for whomever maintains the sql bundle: can we
> change the
> simple regexp for storage type to a capture type.
>
> I think something like this? [...]
Well, because of how the commands have different use of integers, it
ends up being a lot of captures, but I “unfolded” it into the rule
below.
Looking at that pattern though, I wonder if the last brahcn shouldn’t
use \s instead of s?
I.e. with s it matches: ‘timestamps(42) withoutstimeszone’ instead of
‘timestamp (42) withoutstimeszone’.
{ match = '(?xi)
# normal stuff, capture 1
\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|
double\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|
point|polygon|real|serial|smallint|sysdate|text)\b
# numeric suffix, capture 2 + 3i
|\b(bit\svarying|character\s(?:varying)?|tinyint|var\schar|
float|interval)\((\d+)\)
# optional numeric suffix, capture 4 + 5i
|\b(char|number|varchar\d?)\b(?:\((\d+)\))?
# special case, capture 6 + 7i + 8i
|\b(numeric)\b(?:\((\d+),(\d+)\))?
# special case, captures 9, 10i, 11
|\b(times)(?:\((\d+)\))(\swithoutstimeszone\b)?
# special case, captures 12, 13, 14i, 15
|\b(timestamp)(?:(s)\((\d+)\)(\swithoutstimeszone\b)?)?
';
captures =
{ 1 = { name = 'storage.type.sql'; };
2 = { name = 'storage.type.sql'; };
3 = { name = 'constant.numeric.sql'; };
4 = { name = 'storage.type.sql'; };
5 = { name = 'constant.numeric.sql'; };
6 = { name = 'storage.type.sql'; };
7 = { name = 'constant.numeric.sql'; };
8 = { name = 'constant.numeric.sql'; };
9 = { name = 'storage.type.sql'; };
10 = { name = 'constant.numeric.sql'; };
11 = { name = 'storage.type.sql'; };
12 = { name = 'storage.type.sql'; };
13 = { name = 'storage.type.sql'; };
14 = { name = 'constant.numeric.sql'; };
15 = { name = 'storage.type.sql'; };
};
},
More information about the textmate
mailing list