AutoIndent for JavaScript in Vim that understands semicolon insertion

I do not end my JavaScript instructions with semicolons when newlines work. Please do not cry. My question is: is there an automatic indentation package for vim that will work?

Here is an example of how inconceivable 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
+5
source share
1 answer

I am pleased with the following Vim Script:

The result of your code after 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
})
+9
source

All Articles