Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Javascript indenter (HTML indent is included)

Subscribe to updates I use JavaScript-Indent

Statistics on JavaScript-Indent

Number of watchers on Github 63
Number of open issues 2
Main language VimL
Open pull requests 2+
Closed pull requests 1+
Last commit over 8 years ago
Repo Created almost 9 years ago
Repo Last Updated over 1 year ago
Size 105 KB
Homepage http://www.vim.or...
Organization / Authorvim-scripts
Page Updated
Do you use JavaScript-Indent? Leave a review!
View open issues (2)
View JavaScript-Indent activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating JavaScript-Indent for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

This is a mirror of

Hosted at:

*Update: (3/30/11) - Release Candidate 1.0 - Progress Started. *Update: (5/14/10) - Beta 3.0 Released (See Below) (First Release Candidate) *Update: (5/6/10) - Beta 2.2 Released (See Below) *Update: (5/6/10) - Beta 2.1 Released (See Below) *Update: (5/5/10) - Beta 2.0 Released (See Below) *Update: (5/3/10) - Beta 1.0 Released (See Below)


I wrote this basically due to the lack of any good javascript indent plugin out there. And due to javascripts lax syntactical structure cindent() just wont cut it.

Web-Indent handles all basic forms of add notes, bugs and multi-line and singe line objects: var x = { y : { z; } }

var y = [ x, y, z ]

var z = {x : x, y : y, w: w};

t; // no indent

Handles all basic control structures (with or without leading '{'): if(x) // comment y; z;

Handles inline and nextline control structure block initializers ('{' in the vernacular): if(x) { x; } else { z; }

Handles multi-line function declarations: var x = function( y, // notice one tab over z, w) { t; }

Handles multi-line control structure statements: if( x == y || y == z || z == w) { t; }

This indenter is also fully compatible with Mootools and esp. its Class package. I haven't tested it with any of the other frameworks, but due to their similar syntactical nature, I'm assuming they will work as will.

Included Files:

  ~test.js - A sample js file with various coding patterns.  Set tabstop=6 and shiftwidth=6 and comments should line up correctly.
  ~indent/javascript.vim - The core indenting file
  ~indent/html.vim - An updated version of the pre-packaged html indenter that utilizes javascript.vim (MUST BE LOCATED IN SAME DIRECTORY!!)

Release Notes:

~1.0 Released: (5/15/10) - Fixed: Continuation Lines - Removed: Logging

~Beta 3.0 Released: (5/14/10) - Fixed: Runaway Indentation.
- Fixed: indentkeys now correctly invoke indent. - Fixed: Comment lines with keywords are correctly indented. Thanks to trojhlav for pointing it out. - Notes: \ First Release Candidate (v 1.0) \ Correctly indented entire jQuery source. \ Correctly indented entire MooTools source. - Concerns: \ Still no support for continuation lines. ~

PS: I'm also not sure if I'm allowed to repost the html.vim, since I couldn't find a license for it. I'm pretty sure it was the one packaged with vim by default. If anyone has any objections, I'll take it down immediately.

JavaScript-Indent open pull requests (View All Pulls)
  • remove html echo
  • Remove echo when opening HTML files; Fix s:SearchForPair
JavaScript-Indent questions on Stackoverflow (View All Questions)
  • Javascript Indent issue in Sublime Text
  • vim JavaScript Indent plugin - what are the commands?
  • How to make JavaScript indent local in Emacs
JavaScript-Indent list of languages used
  • Vim script
Other projects in VimL