The Closure Compiler is strict on defined variables and namespaces, with means it must compile all dependencies of a file before the current file can be compiled. The calcdeps.py script in the closure framework provides a dependency chain for the closure compiler.
This fork of Javascript Tools, calls the calcdeps.py script and compiles your full JS application with the compiler. You MUST setup a environment variable in TextMate called CLOSURE_PATH pointing to the location of your closure library.
How to install
-
[Get with **GitHub for Mac**](http://mac.github.com/ "GitHub for Mac")
- Clone it to your
~/Library/Application Support/TextMate/Pristine Copy/Bundles
- In TextMate choose the menu item… Bundles / Bundle Editor / Reload Bundles
- If node is not installed in your PATH, go to TextMate → Preferences → Advanced → Shell Variables and add /usr/local/bin, basically the path to where node lives on your machine (which node).
2. Unzip the download
3. Rename the folder to JavaScript-tools.tmbundle
4. Double-click
5. TextMate handles the rest!
NOTE: These docs are now a little out-of-date.
Opens this help file.
Attempts to run the current javascript document or selection in TextMate's Web Preview window.
With JavaScript Lint, you can check all your JavaScript source code for common mistakes without actually running the script or opening the web page. http://javascriptlint.com/
-
Validate Syntax (⌃⇧V) uses Matthias Miller's JavaScript Lint to check your script for errors and warnings and shows the results in a new window. The Validate JavaScript window will give you a description and hyperlink when problems are found. The hyperlink will take you straight to the line and column where JavaScript Lint suspects the problem arises.
-
Validate Syntax Quick (⌘S) same as above except that instead of a dedicated window you simply get a tooltip showing the number of errors and warnings. This command overrides the Save behavior so every time you save your javascript it will be passed through jslint. Of course it only applies to javascript files so you don't need to worry about accidentally jslint'ing your non-javascript files.
-
Edit Lint Validation settings allows you to customize what jslint considers when checking your script. The format and meaning of the options are straightforward and well documented within the settings file itself.
-
Format JavaScript (⌃Q) attempts to beautify your javascript by inserting uniform line breaks and indentation throughout your current document or selection.
-
Compress (current file) (⌃⌘C) uses a custom Rhino build from the Dojo Toolkit project to compress your current javascript document. Before compressing it attempts to insert missing semi-colons so you should consider running Validate Syntax and fixing missing semi-colons prior to using this command.
-
Dean Edwards Packer (current file) (⌃⌘C) compresses and obfuscates your current javascript document. It currently relies on the Packr ruby port which is based on version 3 of Packer. According to Dean Edwards, "All statements, including function declarations, must be correctly terminated with semi-colons" before you run this command. After an email exchange with James Coglan, author of Packr, it's been decided that base62 encoding not be on by default as having it off yields more efficiency when your scripts are gzipped.
However, if you would like base62 encoding, just set the VariableTM_JST_PB62
totrue
in the Advanced pane of the TextMate preferences or in your TextMate Project variables (see the TextMate documentation for more info on setting environment variables). -
YUI! Compressor (current file) (⌃⌘C) compresses your current javascript document. By default it assumes your character set is UTF-8. Additionally it strictly preserves semi-colons, i.e. it will not drop or attempt to insert any semi-colons. Both of these settings can be easily changed by opening the Bundle editor and adjusting the second line of this command through the Bundle editor.
-
Minimize (current file) (⌃⌘C) uses Douglas Crockford's JSMin to minimize your current javascript document. It will not do any semi-colon insertion or removal.
-
Minimize selection (⌃⌥⇧Q) same as the above except it only applies to the selected portion of your current javascript document.
-
Convert JavaScript to Bookmarklet (⌃⌥⇧Q) turns your current javascript selection or document into a bookmarklet for use in a web browser.
-
Convert Bookmarklet to JavaScript (⌃⌥⇧Q) does the opposite of the above; turns an existing bookmarklet into a standard javascript.
- JavaScript Lint Based on SpiderMonkey, which is licensed under the MPL/GPL/LGPL tri-license
- Dojo Toolkit BSD License or Academic Free License version 2.1
- Rhino MPL 1.1/GPL 2.0 except where noted
- Dean Edwards Packer LGPL License
- Packr MIT License
- YUI! Compressor BSD License
- JSMin Copyright 2001 Douglas Crockford