Emacs espresso-mode for jQuery
Because js2-mode (20090723b) indents jQuery like this:
$(document).ready(function() {
$("a").click(function() {
alert("Hello World");
});
});
instead of this:
$(document).ready(function() {
$("a").click(function() {
alert("Hello World");
});
});
I've switched to espresso-mode. Here's my install notes:
- Download
$ cd ~/.emacs.d/site-lisp $ wget http://download.savannah.gnu.org/releases-noredirect/espresso/espresso.el
- Edit your
.emacs:(add-to-list 'load-path "~/.emacs.d/site-lisp") (autoload #'espresso-mode "espresso" "Start espresso-mode" t) (add-to-list 'auto-mode-alist '("\\.js$" . espresso-mode)) (add-to-list 'auto-mode-alist '("\\.json$" . espresso-mode)) - Start emacs and byte-compile espresso.el:
M-x byte-compile-file RET ~/.emacs.d/site-lisp/espresso.el
Side note: I just realized it is "espresso-mode" and not "expresso-mode".
Related posts
- Colorized, interactive "git blame" in Emacs: vc-annotate — posted 2011-05-28
- My Emacs Python environment — posted 2010-05-10
- Notes on C++ development with Emacs on Ubuntu Linux — posted 2009-07-08
- Creating remote server nicknames with .ssh/config — posted 2008-11-20
- Emacs notes — posted 2008-11-03
5
Comments
—
Comments feed for this post
#2 Eliot commented on 2010-04-26:
Hey Jonathan, glad it was helpful. Yeah I had other small annoyances with js2-mode also. Unfortunately I didn't take the time to fix them like you did.
#3 Per Wiklander commented on 2010-12-10:
According to emacs wiki:
"This is part of Emacs since version 23.2 under the name js-mode (with an alias javascript-mode)"
#4 Tikhon commented on 2011-06-13:
You can actually use js2 mode for highlighting and espresso for indenting; look at the post here.
This was written before espresso was added to Emacs as js-mode, so in the code snippets you need to replace espresso with js.
I've been using js2 mode with this modification for both jQuery and node (nested callback galore), and have been perfectly happy.
Post a comment
About
I'm Eliot and this is my notepad for programming topics such as Python, Django, Ubuntu, Emacs, etc... more »
Search Blog
Tags
-
algorithms
(5)
-
aws
(9)
-
blogproject
(20)
-
c_cplusplus
(12)
-
cardstore
(8)
-
colinux
(2)
-
concurrency
(13)
-
conkeror
(2)
-
core
(2)
-
cygwin
(17)
-
datastructures
(14)
-
datetime
(4)
-
decorators
(4)
-
django
(40)
-
emacs
(22)
-
files_directories
(11)
-
git
(5)
-
hardware
(5)
-
install_setup
(8)
-
javascript
(3)
-
keyboard
(9)
-
matplotlib
(5)
-
mercurial
(4)
-
nginx
(2)
-
persistence
(5)
-
preferences
(7)
-
processes
(4)
-
pyqt
(18)
-
python
(144)
-
ratpoison
(3)
-
regexes
(6)
-
rsync
(3)
-
softwaretools
(17)
-
sql
(14)
-
ssh
(10)
-
subversion
(6)
-
twisted
(7)
-
ubuntu
(65)
-
urxvt
(5)
-
vxworks
(25)
-
webdev
(5)
-
wmii
(7)
Blogroll
- Adam Gomaa
- Alex Clemesha
- Amir Salihefendic
- Armin Ronacher
- David Beazley
- David Ziegler
- Duncan McGreggor
- Gareth Rushgrave
- Glyph Lefkowitz
- Guido van Rossum
- Ian Bicking
- Jacob Kaplan-Moss
- James Bennett
- James Tauber
- Jesper Noehr
- Marty Alchin
- Matt Harrison
- Nikolay Kolev
- Parand Darugar
- Peter Baumgartner
- Peter Bengtsson
- Rob Hudson
- Simon Willison
- Will McGugan
#1 Jonathan Chu commented on 2010-04-25:
Thanks for these notes Eliot! A while back, I spent a night making small mods to js2 for various annoyances; espresso mode seems to fit my needs perfectly.