Showing only posts in category “js2-mode”.
Show all
Editing JavaScript with Emacs — js2-mode
I wrote about this topic before. My small hackish mode attracted a few people for its good indentation, but it still had some issues that were hard to track down. In short, it's quite impossible to use c-mode's indentation.
In the last few days I played with Steve Yegge's excellent js2-mode and I'll write about my setup here. js2-mode is different from most other programming modes that you can find in Emacs (and in any other editor for that matter), because it employs a full, solid parser of the language. Instead of guessing the syntax with buggy regexps, js2-mode actually parses your code into an abstract syntax tree (AST) and can therefore provide complex information about it, not to mention very good syntax highlighting. For example, js2-mode can and does warn you about syntax errors such as misplaced parens, or missing semicolon, or trailing comma. Or about undeclared variables — a ”must have” with JavaScript, since it's usually the source of many subtle bugs.
I noticed this excellent mode about an year ago, but indentation was simply unbearable so this is why I didn't use it. But now I decided to give it a second try. Indentation can be fixed.
js2-highlight-vars-mode
This is a minor mode that I wrote on top of js2-mode which automatically highlights all occurrences of the variable under the cursor within its defining scope. I once saw this at a friend who was using Eclipse, and I thought it's pretty cool. With the powerful API that js2-mode exposes, it was pretty easy to write it, even despite my limited (E)Lisp experience.
[ read more... ]