royriojas / esformatter-jsx

esformatter plugin: format jsx files (or js files with Facebook React JSX Syntax)
MIT License
142 stars 25 forks source link

"formatJSX": false does not ignore markup like esformatter-jsx-ignore did #62

Open vlork opened 8 years ago

vlork commented 8 years ago

Hey! Had issues with formatting using tabs, so I figured I'd roll with it and format my JSX manually. However, settings formatJSX: false still formats as below.

Example

// source
const Thing = () => {
    return (
        <div
            some="value"
            other={{
                field: 'value'
            }} >

            <div expression={ maybe
                ? true
                : false }
            />

        </div>
    );
};

// result
const Thing = () => {
    return (
        <div
        some="value"
        other={{
            field: 'value'
        }} >

            <div expression={ maybe
            ? true
            : false }
        />

        </div>
        );
};
vlork commented 8 years ago

The reason I can't just use esformatter-jsx-ignore is because it throws on es6 imports.

royriojas commented 8 years ago

hi @initialize,

can you provide an example of your esformatter config?

vlork commented 8 years ago

Here is the .esformatter config file.

{
    "plugins": [
        "esformatter-semicolons",
        "esformatter-jsx"
    ],
    "jsx": {
        "formatJSX": false
    },
    "esformatter": {
        "allowShebang": true
    },
    "indent": {
        "value": "\t",
        "alignComments": true,
        "ArrayExpression": 1,
        "ArrayPattern": 1,
        "ArrowFunctionExpression": 1,
        "AssignmentExpression": 1,
        "AssignmentExpression.BinaryExpression": 1,
        "AssignmentExpression.LogicalExpression": 1,
        "AssignmentExpression.UnaryExpression": 1,
        "CallExpression": 1,
        "CallExpression.BinaryExpression": 1,
        "CallExpression.LogicalExpression": 1,
        "CallExpression.UnaryExpression": 1,
        "CatchClause": 1,
        "ConditionalExpression": 1,
        "CommentInsideEmptyBlock": 1,
        "ClassDeclaration": 1,
        "ClassExpression": 1,
        "DoWhileStatement": 1,
        "ForInStatement": 1,
        "ForOfStatement": 1,
        "ForStatement": 1,
        "FunctionDeclaration": 1,
        "FunctionExpression": 1,
        "IfStatement": 1,
        "MemberExpression": 1,
        "MultipleVariableDeclaration": 1,
        "NewExpression": 1,
        "ObjectExpression": 1,
        "ObjectExpression.BinaryExpression": 1,
        "ObjectExpression.LogicalExpression": 1,
        "ObjectExpression.UnaryExpression": 1,
        "ObjectPattern": 1,
        "ParameterList": 1,
        "ReturnStatement": 1,
        "SingleVariableDeclaration": 0,
        "SwitchCase": 1,
        "SwitchStatement": 1,
        "TopLevelFunctionBlock": 1,
        "TryStatement": 1,
        "VariableDeclaration.BinaryExpression": 1,
        "VariableDeclaration.LogicalExpression": 1,
        "VariableDeclaration.UnaryExpression": 1,
        "WhileStatement": 1
    },
    "lineBreak": {
        "value": "\n",
        "before": {
            "AssignmentExpression": ">=1",
            "AssignmentOperator": 0,
            "AssignmentPattern": 0,
            "ArrayPatternOpening": 0,
            "ArrayPatternClosing": 0,
            "ArrayPatternComma": 0,
            "ArrowFunctionExpressionArrow": 0,
            "ArrowFunctionExpressionOpeningBrace": 0,
            "ArrowFunctionExpressionClosingBrace": ">=1",
            "BlockStatement": 0,
            "BreakKeyword": ">=1",
            "CallExpression": -1,
            "CallExpressionOpeningParentheses": 0,
            "CallExpressionClosingParentheses": -1,
            "ClassDeclaration": ">=1",
            "ClassExpression": ">=1",
            "ClassOpeningBrace": 0,
            "ClassClosingBrace": ">=1",
            "ConditionalExpression": ">=1",
            "CatchOpeningBrace": 0,
            "CatchClosingBrace": ">=1",
            "CatchKeyword": 0,
            "DeleteOperator": ">=1",
            "DoWhileStatement": ">=1",
            "DoWhileStatementOpeningBrace": 0,
            "DoWhileStatementClosingBrace": ">=1",
            "EndOfFile": -1,
            "EmptyStatement": -1,
            "ExportAllDeclaration": ">=1",
            "ExportDefaultDeclaration": ">=1",
            "ExportNamedDeclaration": ">=1",
            "FinallyKeyword": -1,
            "FinallyOpeningBrace": 0,
            "FinallyClosingBrace": ">=1",
            "ForInStatement": ">=1",
            "ForInStatementExpressionOpening": 0,
            "ForInStatementExpressionClosing": 0,
            "ForInStatementOpeningBrace": 0,
            "ForInStatementClosingBrace": ">=1",
            "ForOfStatement": ">=1",
            "ForOfStatementExpressionOpening": 0,
            "ForOfStatementExpressionClosing": 0,
            "ForOfStatementOpeningBrace": 0,
            "ForOfStatementClosingBrace": ">=1",
            "ForStatement": ">=1",
            "ForStatementExpressionOpening": 0,
            "ForStatementExpressionClosing": "<2",
            "ForStatementOpeningBrace": 0,
            "ForStatementClosingBrace": ">=1",
            "FunctionExpression": -1,
            "FunctionExpressionOpeningBrace": 0,
            "FunctionExpressionClosingBrace": ">=1",
            "FunctionDeclaration": ">=1",
            "FunctionDeclarationOpeningBrace": 0,
            "FunctionDeclarationClosingBrace": ">=1",
            "IIFEClosingParentheses": 0,
            "IfStatement": ">=1",
            "IfStatementOpeningBrace": 0,
            "IfStatementClosingBrace": ">=1",
            "ElseIfStatement": 0,
            "ElseIfStatementOpeningBrace": 0,
            "ElseIfStatementClosingBrace": ">=1",
            "ElseStatement": 0,
            "ElseStatementOpeningBrace": 0,
            "ElseStatementClosingBrace": ">=1",
            "LogicalExpression": -1,
            "MethodDefinition": ">=1",
            "MemberExpressionOpening": 0,
            "MemberExpressionClosing": "<2",
            "MemberExpressionPeriod": -1,
            "ObjectExpressionClosingBrace": ">=1",
            "ObjectPatternOpeningBrace": 0,
            "ObjectPatternClosingBrace": 0,
            "ObjectPatternComma": 0,
            "Property": ">=1",
            "PropertyValue": 0,
            "ReturnStatement": -1,
            "SwitchOpeningBrace": 0,
            "SwitchClosingBrace": ">=1",
            "SwitchCaseColon": 0,
            "ThisExpression": -1,
            "ThrowStatement": ">=1",
            "TryKeyword": -1,
            "TryOpeningBrace": 0,
            "TryClosingBrace": ">=1",
            "VariableName": ">=1",
            "VariableValue": 0,
            "VariableDeclaration": ">=1",
            "VariableDeclarationSemiColon": 0,
            "VariableDeclarationWithoutInit": ">=1",
            "WhileStatement": ">=1",
            "WhileStatementOpeningBrace": 0,
            "WhileStatementClosingBrace": ">=1"
        },
        "after": {
            "AssignmentExpression": ">=1",
            "AssignmentOperator": 0,
            "AssignmentPattern": 0,
            "ArrayPatternOpening": 0,
            "ArrayPatternClosing": 0,
            "ArrayPatternComma": 0,
            "ArrowFunctionExpressionArrow": 0,
            "ArrowFunctionExpressionOpeningBrace": ">=1",
            "ArrowFunctionExpressionClosingBrace": -1,
            "BlockStatement": 0,
            "BreakKeyword": -1,
            "CallExpression": -1,
            "CallExpressionOpeningParentheses": -1,
            "CallExpressionClosingParentheses": -1,
            "ClassDeclaration": ">=1",
            "ClassExpression": ">=1",
            "ClassOpeningBrace": ">=1",
            "ClassClosingBrace": ">=1",
            "CatchOpeningBrace": ">=1",
            "CatchClosingBrace": ">=0",
            "CatchKeyword": 0,
            "ConditionalExpression": ">=1",
            "DeleteOperator": ">=1",
            "DoWhileStatement": ">=1",
            "DoWhileStatementOpeningBrace": ">=1",
            "DoWhileStatementClosingBrace": 0,
            "EmptyStatement": -1,
            "FinallyKeyword": -1,
            "FinallyOpeningBrace": ">=1",
            "FinallyClosingBrace": ">=1",
            "ForInStatement": ">=1",
            "ForInStatementExpressionOpening": "<2",
            "ForInStatementExpressionClosing": -1,
            "ForInStatementOpeningBrace": ">=1",
            "ForInStatementClosingBrace": ">=1",
            "ForOfStatement": ">=1",
            "ForOfStatementExpressionOpening": "<2",
            "ForOfStatementExpressionClosing": -1,
            "ForOfStatementOpeningBrace": ">=1",
            "ForOfStatementClosingBrace": ">=1",
            "ForStatement": ">=1",
            "ForStatementExpressionOpening": "<2",
            "ForStatementExpressionClosing": -1,
            "ForStatementOpeningBrace": ">=1",
            "ForStatementClosingBrace": ">=1",
            "FunctionExpression": ">=1",
            "FunctionExpressionOpeningBrace": ">=1",
            "FunctionExpressionClosingBrace": -1,
            "FunctionDeclaration": ">=1",
            "FunctionDeclarationOpeningBrace": ">=1",
            "FunctionDeclarationClosingBrace": ">=1",
            "IIFEOpeningParentheses": 0,
            "IfStatement": ">=1",
            "IfStatementOpeningBrace": ">=1",
            "IfStatementClosingBrace": ">=1",
            "ElseIfStatement": ">=1",
            "ElseIfStatementOpeningBrace": ">=1",
            "ElseIfStatementClosingBrace": ">=1",
            "ElseStatement": ">=1",
            "ElseStatementOpeningBrace": ">=1",
            "ElseStatementClosingBrace": ">=1",
            "LogicalExpression": -1,
            "MethodDefinition": ">=1",
            "MemberExpressionOpening": "<2",
            "MemberExpressionClosing": "<2",
            "MemberExpressionPeriod": 0,
            "ObjectExpressionOpeningBrace": ">=1",
            "ObjectPatternOpeningBrace": 0,
            "ObjectPatternClosingBrace": 0,
            "ObjectPatternComma": 0,
            "Property": 0,
            "PropertyName": 0,
            "ReturnStatement": -1,
            "SwitchOpeningBrace": ">=1",
            "SwitchClosingBrace": ">=1",
            "SwitchCaseColon": ">=1",
            "ThisExpression": 0,
            "ThrowStatement": ">=1",
            "TryKeyword": -1,
            "TryOpeningBrace": ">=1",
            "TryClosingBrace": 0,
            "VariableValue": -1,
            "VariableDeclaration": ">=1",
            "VariableDeclarationSemiColon": ">=1",
            "WhileStatement": ">=1",
            "WhileStatementOpeningBrace": ">=1",
            "WhileStatementClosingBrace": ">=1"
        }
    },
    "whiteSpace": {
        "value": " ",
        "removeTrailing": 1,
        "before": {
            "AssignmentPattern": 1,
            "ArrayExpressionOpening": 0,
            "ArrayExpressionClosing": 0,
            "ArrayExpressionComma": 0,
            "ArrayPatternOpening": 1,
            "ArrayPatternClosing": 0,
            "ArrayPatternComma": 0,
            "ArrowFunctionExpressionArrow": 1,
            "ArrowFunctionExpressionOpeningBrace": 1,
            "ArrowFunctionExpressionClosingBrace": 0,
            "ArgumentComma": 0,
            "ArgumentList": 0,
            "AssignmentOperator": 1,
            "BinaryExpression": 0,
            "BinaryExpressionOperator": 1,
            "BlockComment": 1,
            "CallExpression": -1,
            "CallExpressionOpeningParentheses": 0,
            "CallExpressionClosingParentheses": -1,
            "CatchParameterList": 0,
            "CatchOpeningBrace": 1,
            "CatchClosingBrace": 1,
            "CatchKeyword": 1,
            "CommaOperator": 0,
            "ClassOpeningBrace": 1,
            "ClassClosingBrace": 1,
            "ConditionalExpressionConsequent": 1,
            "ConditionalExpressionAlternate": 1,
            "DoWhileStatementOpeningBrace": 1,
            "DoWhileStatementClosingBrace": 1,
            "DoWhileStatementConditional": 1,
            "EmptyStatement": 0,
            "ExpressionClosingParentheses": 0,
            "FinallyKeyword": -1,
            "FinallyOpeningBrace": 1,
            "FinallyClosingBrace": 1,
            "ForInStatement": 1,
            "ForInStatementExpressionOpening": 1,
            "ForInStatementExpressionClosing": 0,
            "ForInStatementOpeningBrace": 1,
            "ForInStatementClosingBrace": 1,
            "ForOfStatement": 1,
            "ForOfStatementExpressionOpening": 1,
            "ForOfStatementExpressionClosing": 0,
            "ForOfStatementOpeningBrace": 1,
            "ForOfStatementClosingBrace": 1,
            "ForStatement": 1,
            "ForStatementExpressionOpening": 1,
            "ForStatementExpressionClosing": 0,
            "ForStatementOpeningBrace": 1,
            "ForStatementClosingBrace": 1,
            "ForStatementSemicolon": 0,
            "FunctionDeclarationOpeningBrace": 1,
            "FunctionDeclarationClosingBrace": 1,
            "FunctionExpressionOpeningBrace": 1,
            "FunctionExpressionClosingBrace": 1,
            "FunctionGeneratorAsterisk": 0,
            "FunctionName": 1,
            "IIFEClosingParentheses": 0,
            "IfStatementConditionalOpening": 1,
            "IfStatementConditionalClosing": 0,
            "IfStatementOpeningBrace": 1,
            "IfStatementClosingBrace": 1,
            "ModuleSpecifierClosingBrace": 1,
            "ElseStatementOpeningBrace": 1,
            "ElseStatementClosingBrace": 1,
            "ElseIfStatementOpeningBrace": 1,
            "ElseIfStatementClosingBrace": 1,
            "LineComment": 1,
            "LogicalExpressionOperator": 1,
            "MemberExpressionOpening": 0,
            "MemberExpressionClosing": 0,
            "MemberExpressionPeriod": 0,
            "ObjectExpressionOpeningBrace": -1,
            "ObjectExpressionClosingBrace": 1,
            "ObjectPatternOpeningBrace": 0,
            "ObjectPatternClosingBrace": 1,
            "ObjectPatternComma": 0,
            "Property": 1,
            "PropertyValue": 1,
            "ParameterComma": 0,
            "ParameterList": 0,
            "SwitchDiscriminantOpening": 1,
            "SwitchDiscriminantClosing": 0,
            "SwitchCaseColon": 0,
            "ThrowKeyword": 1,
            "TryKeyword": -1,
            "TryOpeningBrace": 1,
            "TryClosingBrace": 1,
            "UnaryExpressionOperator": 0,
            "VariableName": 1,
            "VariableValue": 1,
            "VariableDeclarationSemiColon": 0,
            "WhileStatementConditionalOpening": 1,
            "WhileStatementConditionalClosing": 0,
            "WhileStatementOpeningBrace": 1,
            "WhileStatementClosingBrace": 1
        },
        "after": {
            "AssignmentPattern": 1,
            "ArrayExpressionOpening": 0,
            "ArrayExpressionClosing": 0,
            "ArrayExpressionComma": 1,
            "ArrayPatternOpening": 0,
            "ArrayPatternClosing": 1,
            "ArrayPatternComma": 1,
            "ArrowFunctionExpressionArrow": 1,
            "ArrowFunctionExpressionOpeningBrace": 0,
            "ArrowFunctionExpressionClosingBrace": 0,
            "ArgumentComma": 1,
            "ArgumentList": 0,
            "AssignmentOperator": 1,
            "BinaryExpression": 0,
            "BinaryExpressionOperator": 1,
            "BlockComment": 1,
            "CallExpression": -1,
            "CallExpressionOpeningParentheses": -1,
            "CallExpressionClosingParentheses": -1,
            "CatchParameterList": 0,
            "CatchOpeningBrace": 1,
            "CatchClosingBrace": 1,
            "CatchKeyword": 1,
            "ClassOpeningBrace": 1,
            "ClassClosingBrace": 1,
            "CommaOperator": 1,
            "ConditionalExpressionConsequent": 1,
            "ConditionalExpressionTest": 1,
            "DoWhileStatementOpeningBrace": 1,
            "DoWhileStatementClosingBrace": 1,
            "DoWhileStatementBody": 1,
            "EmptyStatement": 0,
            "ExpressionOpeningParentheses": 0,
            "FinallyKeyword": -1,
            "FinallyOpeningBrace": 1,
            "FinallyClosingBrace": 1,
            "ForInStatement": 1,
            "ForInStatementExpressionOpening": 0,
            "ForInStatementExpressionClosing": 1,
            "ForInStatementOpeningBrace": 1,
            "ForInStatementClosingBrace": 1,
            "ForOfStatement": 1,
            "ForOfStatementExpressionOpening": 0,
            "ForOfStatementExpressionClosing": 1,
            "ForOfStatementOpeningBrace": 1,
            "ForOfStatementClosingBrace": 1,
            "ForStatement": 1,
            "ForStatementExpressionOpening": 0,
            "ForStatementExpressionClosing": 1,
            "ForStatementClosingBrace": 1,
            "ForStatementOpeningBrace": 1,
            "ForStatementSemicolon": 1,
            "FunctionReservedWord": 0,
            "FunctionName": 0,
            "FunctionExpressionOpeningBrace": 1,
            "FunctionExpressionClosingBrace": 0,
            "FunctionDeclarationOpeningBrace": 1,
            "FunctionDeclarationClosingBrace": 1,
            "IIFEOpeningParentheses": 0,
            "IfStatementConditionalOpening": 0,
            "IfStatementConditionalClosing": 1,
            "IfStatementOpeningBrace": 1,
            "IfStatementClosingBrace": 1,
            "ModuleSpecifierOpeningBrace": 1,
            "ElseStatementOpeningBrace": 1,
            "ElseStatementClosingBrace": 1,
            "ElseIfStatementOpeningBrace": 1,
            "ElseIfStatementClosingBrace": 1,
            "MemberExpressionClosing": 0,
            "MemberExpressionOpening": 0,
            "MemberExpressionPeriod": 0,
            "MethodDefinitionName": 0,
            "LogicalExpressionOperator": 1,
            "ObjectExpressionOpeningBrace": 1,
            "ObjectExpressionClosingBrace": 0,
            "ObjectPatternOpeningBrace": 1,
            "ObjectPatternClosingBrace": 0,
            "ObjectPatternComma": 1,
            "PropertyName": 0,
            "PropertyValue": 0,
            "ParameterComma": 1,
            "ParameterList": 0,
            "SwitchDiscriminantOpening": 0,
            "SwitchDiscriminantClosing": 1,
            "ThrowKeyword": 1,
            "TryKeyword": -1,
            "TryOpeningBrace": 1,
            "TryClosingBrace": 1,
            "UnaryExpressionOperator": 0,
            "VariableName": 1,
            "VariableValue": 0,
            "VariableDeclarationSemiColon": 0,
            "WhileStatementConditionalOpening": 0,
            "WhileStatementConditionalClosing": 1,
            "WhileStatementOpeningBrace": 1,
            "WhileStatementClosingBrace": 1
        }
    }
}
royriojas commented 8 years ago

Oh I get it, the formatting that you're getting is done by esformatter itself, not by this plugin

This entry:

const Thing = () => {
    return (
        <div some="value" other={{ field: 'value' }} >
            <div expression={ maybe ? true : false }/>
        </div>
    );
};

Produces this:

const Thing = () => {
  return (
    <div some="value" other={{
      field: 'value'
    }} >
            <div expression={ maybe ? true : false }/>
        </div>
    );
};

Even when the plugin is not loaded (pure esformatter).

The formatJSX flag just disable the plugin so the formatting you receive is probably comming from esformatter itself.

formatJSX option is misleading. I might be able to completely ignore JSX blocks using the logic we had in esformatter-jsx-ignore if that is what you were expecting.

vlork commented 8 years ago

Ah, that explains it. Yeah, that would be great!

Just thinking; There might be people out there who rely on the current functionality of "formatJSX": false, so it might be safer to either add a new value "formatJSX": "ignore" or introduce a new property "ignore": true, depending on your preference.

vishalvisd commented 8 years ago

Any progress with this, I too got struck looking for a way to ignore JSX .... esformatter-jsx-ignore wont work on es6 imports and formatJSX of esformatter-jsx can't be used either as per discussion above!!

Any way to ignore JSX ??