Robert,
I updated the docblock in the script with installation instructions (including Allan's handy hint about STDIN).
It's basically a standalone script which TM pipes stuff into / out of with a tiny Command.
So you open a new TM document, write your regexp on the first line, write some match/replace-fodder below it, select-all and run the Command.
please let me know if you get stuck
cheers
D
On 04/04/2005, at 1:57 AM, Robert Ullrey wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
David, Looks great....Now the stupid question. How do I use it?
Should I place this in TextMate as a snippet and then type in a line of regexp to test and run the rx_helper over it, or install this a as a command within the ruby bundle. Alternately, should I have my file open in textmate and then write my rexexp in the "filter through command" after calling rx_helper.
Thanks for the work, and the time to explain its use
Robert
On Apr 3, 2005, at 6:37 AM, David Lee wrote:
Hi all
I've written a short ruby script for the purposes of checking regular expressions within TextMate.
http://dml.homedns.org/rx_helper.rb
It expects to be fed a regular expression on a line of its own, followed by any number of lines to test against. The RX can be either a straight match (eg ^([a-z]+):([0-9]+ ) or a substitution (eg, /old/new/). Cuddling /slashes/ are only required for /pattern/replacement/ expressions.
If you create the following action in TextMate:
echo "$TM_SELECTED_TEXT" | /path_to_script/rx_helper.rb
with input='selected text' & output='show as tooltip', you can open a new window, write a regexp, write some test cases for your regexp, then select-all and see the results in a tooltip whenever you need it (I have it bound to ctrl-alt-option-X).
I hope someone finds it useful. If you find any bugs / have any suggestions on how to improve it, please do let me know.
cheers
D
P.S here's some sample input and output:
IN (TextMate scratch file)
(http|https|ftp)://(([-_a-zA-Z1-9]+).)+([-_a-zA-Z1-9]{2,3}) http://www.google.com https://www.netbank.com.au ftp://mafia.ru www.clickstart.com boozehound gary sweeney http://www.amazon.com/ http://www.amazon.com/exec/obidos/subst/home/home.html/002-0270779 -6984007 ~
OUT (tooltip)
(http|https|ftp)://(([-_a-zA-Z1-9]+).)+([-_a-zA-Z1-9]{2,3}) Successful Matches: =================== http://www.google.com : matched expression match number [1] : http match number [2] : google. match number [3] : google match number [4] : com https://www.netbank.com.au : matched expression match number [1] : https match number [2] : com. match number [3] : com match number [4] : au ftp://mafia.ru : matched expression match number [1] : ftp match number [2] : mafia. match number [3] : mafia match number [4] : ru http://www.amazon.com/ : matched expression match number [1] : http match number [2] : amazon. match number [3] : amazon match number [4] : com http://www.amazon.com/exec/obidos/subst/home/home.html/002-0270779 -6984007 : matched expression match number [1] : http match number [2] : amazon. match number [3] : amazon match number [4] : com
Failed Matches:
www.clickstart.com : failed boozehound : failed gary sweeney : failed
For new threads USE THIS: textmate@lists.macromates.com (threading gets destroyed and the universe will collapse if you don't) http://lists.macromates.com/mailman/listinfo/textmate
-----BEGIN PGP SIGNATURE----- Version: PGP 8.1
iQA/AwUBQlASWmO1AQX/YDblEQK6HwCeOI17A5+LGZfOy8MaQXQMKPGaLCIAn0mn We4Jdx/9UCM9/r7cxGghP7wH =L5Pz -----END PGP SIGNATURE-----
For new threads USE THIS: textmate@lists.macromates.com (threading gets destroyed and the universe will collapse if you don't) http://lists.macromates.com/mailman/listinfo/textmate