Javascript indenter (HTML indent is included)
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
indent
README
test.html

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.