Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AutoIndent for JavaScript in Vim that understands Semicolon Insertion

I don't end my JavaScript statements with semicolons when newlines will work. No flames, please. My question is, is there an automatic indentation package for vim that will work?

Here is an example of how dumb it is:

$(function(){
    var foo // code starts here,
    // The following line breaks things, but adding a comment to it fixes things
({a:1})
var foo // everything is stuck left now.
          ({a:1})
          var foo // previous line justifies all following lines wherever you put it

          function flat(){
              var foo // function starts out right, but the next line dedents it
          ({a:1})
          var foo
      }
      var foo // now we're over here
      if (foo) {
          var foo // this if block doesn't close properly
          } else if (foo){ // add a comment here to dedent the else body
          var foo
          } else if (foo){
              var foo
              } // add a comment here to indent and break the following lines
              var foo
              })
              // all parenthesis match, but yet our indentations don't
like image 497
Nick Retallack Avatar asked Apr 30 '10 05:04

Nick Retallack


1 Answers

I'm happy with the following Vim Script:

  • Improved Javascript Indent script for Vim

Result of your code after a gg=G:

var one = 1
var two = 2
var fun = function(){
  var three = 3
  var four = 4
  var five = 5
}

var fun2 = (function(foo){
  var six = 6
})
like image 158
Christian C. Salvadó Avatar answered Sep 28 '22 09:09

Christian C. Salvadó