docs: function extraNewLineBetween(previous, current) {
      // no new line before the first element of the block
      if (!previous) {
          return false;}
  
  
      /**
       * always have newline before return, unless it's the only statement
       */
      if (previous && current.type === 'ReturnStatement') {
          return true;}
  
  
      // group var declarations together
      // Example
      //  var a = 5;
      //  var b = 5;
      //  var l;
      if (previous.type === 'VariableDeclaration' && 
      current.type === 'VariableDeclaration') {
          return false;}
  
  
      if (NEED_NEWLINE_BEFORE[current.type]) {
          return true;}
  
  
      if (NEED_EXTRA_NEWLINE_AFTER[previous.type]) {
          return true;}
  
  
      if (previous.type === 'ImportDeclaration' && 
      current.type !== 'ImportDeclaration') {
          return true;}
  
  
      if (newLineAfterCompositeExpressions(previous)) {
          return true;}
  
  
      return false;}