I know most of people develop and debug JavaScript from development tools provided by the browser, e.g. firebug, developer tools in Chrome, Safari, etc. But it will be really neat if I can just run JavaScript and view output directly from TM.
So, I searched and searched. There are many existing blog posts on this topic already. It basically consists of two steps:
1. get a JavaScript engine that executes the JavaScript code, here are some options:
- Mac/Safari has a JS engine (SquirrelFish Extreme) built in already, it is located at /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc
- Node.js: Node.js is a event-based JS platform based on the V8 JS engine, see my previous post on how to set it up
- Mozilla JS engines: installation guide to build/install SpiderMonkey, Rhino, TraceMonkey on Mac
- For other JS engines, do a Web search for installation instructions
2. define new TM commands for JavaScript in TM bundle editor and assign ctrl+shift+R key binding to the commands.
For command setup to use Node.js, see this github snippet by beastaugh, it basically creates a script that executes another script given the file path.
For command to set up other engines, you specify the path to the engine executable, execute the JavaScript and output in a popup window. You can also use another command and open up a terminal to show the results, see this post for how to do that.
Then, you are all set. This is a screen shot that allows me to pick one of the three engines to run my JavaScript from TM ;-)