Hi,
I 'finished' the recoding of TMTOOLS. If someone has a bit time please give me a feedback about the functionality, bugs, wishes, etc. Please note: The version 0.9 is still beta, i.e. please be careful while testing it. By myself I use it every day while working, and it helps me a lot; at least for me ;)
I also wrote a tentative help file for it very quickly.
To install the plug-in download it, uncompress it, and double-click it.
http://email.eva.mpg.de/~bibiko/downloads/textmate/ TMTools.tmplugin.zip (111kB)
(it should be universal - if not please give me a hint)
For help have a look at this page (utf-8 encoded!)
http://email.eva.mpg.de/~bibiko/downloads/textmate/tmtoolshelp.html
or type in an empty TM document (after installing ;):
"$TMTOOLS" help me
and press CTRL+R
A short demo: http://www.bibiko.de/TMTOOLS_demo_01.mov (10MB)
Up to now TMTOOLS contains 106 shell commands which interact with TM.
some examples: "$TMTOOLS" get windowOriginAndSize "$TMTOOLS" get currentWord '{only=tail;delimiter=" ():.";}' "$TMTOOLS" set spellCheckerLanguage '{to=en_GB;}' "$TMTOOLS" set windowSize '{width=100;height=200;}' "$TMTOOLS" set grammar '{to="Ruby";}' "$TMTOOLS" call template '{name="From Clipboard";}' "$TMTOOLS" show projectDrawer '{onEdge=0;}' "$TMTOOLS" complete usingDictionary '{lang="da";showInternalListFirst=yes;}' "$TMTOOLS" use nsstring '{initWith="たてもの"; toGet="canBeConvertedToEncoding:"; with="8"; }'
The command "$TMTOOLS" do onKeyDownAfterDelay is still experimental. I tested it a lot, and it works. This command installs an event manager which will execute any shell command after a delay of X seconds if no other keyDown event occurs within X seconds. The following example will save the current document in /tmp after 5sec if there is no further key pressed. (A kind of AutoSave function while non-typing) If one presses ESC (stopkey=53) one destroys that event handler. For more details see help. Furthermore it can be used to display suggestions for the code completion à la XCODE (see demo).
"$TMTOOLS" do onKeyDownAfterDelay "{ delay="5"; repeat=no; startAtCall=no; shell='"$TMTOOLS" get textString > /tmp/"$TM_FILENAME ".txmtbkp;say "document was saved"'; stopkey=53; }"
Best,
Hans