On May 23, 2005, at 14:51, Kai von Fintel wrote:
So, how hard would it be for someone to write a command thingy to make such functionality available in TextMate?
Should be pretty easy.
You have TM_COLUMN_NUMBER as the caret position and TM_CURRENT_LINE as the contents of the current line.
Slapping together something quick in bash yeilds:
for (( i = $TM_COLUMN_NUMBER-1; i >= 0; i-- )); do res=$(perl -pe <<<${TM_CURRENT_LINE:$i} 's/^(((https?|ftp|mailto): \S+?)(?=[),.]*(\s|$)|$)|).*/$1/') if [[ -n $res ]]; then open "$res" break fi done
This will find the first URL (using a rather primitive regex) to the left of the caret. It's rather slow though.
If you're using this in plain text you can put something like this in the Plain text.plist to get these highlighted: { name = "markup.underline.link"; match = "(https?|ftp|mailto):\S+?(?=[),.]*(\s|$)|$)"; },
If you're running recent betas then you can also put “markup.underline.link” in the scope of the command, so that the key equivalent will only fire when actually on an URL (which allows you to select a key that'd normally be used for something else).
[...] I don't have the time to investigate this myself.
In that case you should put up a bounty for those whiling to spend their time solving your problems! ;)