jzaefferer / grunt-esformatter

Grunt wrapper plugin for esformatter - validate or format your JavaScript code
MIT License
16 stars 12 forks source link

'skipHashbang' option issue #9

Closed studiotimo closed 9 years ago

studiotimo commented 9 years ago

Hello,

I'm experiencing an issue when I tried skipHashbang: true in options.

In package.json, I have these in devDependencies:

"grunt-esformatter": "1.0.1",
"esformatter": "0.7.3",
"esformatter-semicolons": "1.1.1",
"esformatter-var-each": "2.1.0",
"esformatter-quotes": "1.0.3",
"esformatter-eol-last": "1.0.0",
"esformatter-dot-notation": "1.3.1",
"esformatter-literal-notation": "1.0.1"

And this is a part of Gruntfile.js:

  var step1 = {
    src: [
      'src/js/*.js'
    ],
    options: {
      'plugins': [
        'esformatter-semicolons',
        'esformatter-var-each'
      ],
      'skipHashbang': true,
      'quotes': {
        'type': 'single',
        'avoidEscape': true
      },
      'whiteSpace': {
        'before': {
          'Property': '>=0',
          'PropertyName': 1,
          'ArrayExpressionClosing': 1,
          'ObjectExpressionClosingBrace': 1
        },
        'after': {
          'FunctionReservedWord': 1,
          'ArrayExpressionOpening': 1,
          'ObjectExpressionOpeningBrace': '>=0'
        }
      },
      'lineBreak': {
        'before': {
          'ArrayExpressionClosing': '>=0',
          'ObjectExpressionClosingBrace': '>=0',
          'Property': '>=0'
        },
        'after': {
          'ArrayExpressionOpening': '>=0',
          'ArrayExpressionComma': '>=0',
          'ObjectExpressionClosingBrace': '>=0',
          'ObjectExpressionOpeningBrace': '>=0',
          'PropertyValue': '>=0'
        }
      }
    }
  };

  var step2 = JSON.parse(JSON.stringify(step1));

  step2.options.plugins = [
    'esformatter-quotes',
    'esformatter-eol-last',
    'esformatter-dot-notation',
    'esformatter-literal-notation'
  ];

  grunt.config.set('esformatter', {
    step1: step1,
    step2: step2
  });

  grunt.registerTask('compassFormat', ['esformatter']);

The issue I see while formatting is going on is this: whenever there's a line that has 'null' (in multiple files), for example, at this kind of line:

var foo = null;

error is thrown. One sample error message looks like this:

>> Exception while formatting js/views/slides.js
>> Error: Line 321: Unexpected token ;
>>     at createError (/Users/glee/demo_proj/node_modules/grunt-esformatter/node_modules/esformatter/node_modules/rocambole/node_modules/esprima/esprima.js:2392:21)
>>     at unexpectedTokenError (/Users/glee/demo_proj/node_modules/grunt-esformatter/node_modules/esformatter/node_modules/rocambole/node_modules/esprima/esprima.js:2467:13)
>>     at throwUnexpectedToken (/Users/glee/demo_proj/node_modules/grunt-esformatter/node_modules/esformatter/node_modules/rocambole/node_modules/esprima/esprima.js:2472:15)
>>     at parsePrimaryExpression (/Users/glee/demo_proj/node_modules/grunt-esformatter/node_modules/esformatter/node_modules/rocambole/node_modules/esprima/esprima.js:3266:13)
>>     at inheritCoverGrammar (/Users/glee/demo_proj/node_modules/grunt-esformatter/node_modules/esformatter/node_modules/rocambole/node_modules/esprima/esprima.js:2648:18)
>>     at parseLeftHandSideExpressionAllowCall (/Users/glee/demo_proj/node_modules/grunt-esformatter/node_modules/esformatter/node_modules/rocambole/node_modules/esprima/esprima.js:3373:20)
>>     at inheritCoverGrammar (/Users/glee/demo_proj/node_modules/grunt-esformatter/node_modules/esformatter/node_modules/rocambole/node_modules/esprima/esprima.js:2648:18)
>>     at parsePostfixExpression (/Users/glee/demo_proj/node_modules/grunt-esformatter/node_modules/esformatter/node_modules/rocambole/node_modules/esprima/esprima.js:3449:16)
>>     at parseUnaryExpression (/Users/glee/demo_proj/node_modules/grunt-esformatter/node_modules/esformatter/node_modules/rocambole/node_modules/esprima/esprima.js:3509:20)
>>     at inheritCoverGrammar (/Users/glee/demo_proj/node_modules/grunt-esformatter/node_modules/esformatter/node_modules/rocambole/node_modules/esprima/esprima.js:2648:18)

Do you have any idea what caused this error? Please let me know if you want me to provide more info. Thanks.

studiotimo commented 9 years ago

Sorry, it might not necessarily be related to 'skipHashbang' option. Let me close this and research more. Thanks-