Javascript indenter (HTML indent is included)
VimL
Permalink
Failed to load latest commit information.
indent Version 1.0 Jun 3, 2011
README Version 1.0 Jun 3, 2011
test.html Version b2.2 Nov 16, 2010

README

This is a mirror of http://www.vim.org/scripts/script.php?script_id=3081

Hosted at: http://code.google.com/p/web-indent/

*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)

Summary:
================================================================================
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.