##Install
- Install sublime-esformatter from package control
- Modify the package.json in the esformatter package folder to look like this:
{
"name": "esformatter-generator",
"version": "0.1.0",
"author": "Fabio Crisci <[email protected]>",
"description": "Generate the esformatter lib to communicate with sublime",
"scripts": {
"prepublish": "node doStuff.js"
},
"dependencies": {
"browserify": "x",
"mout": "^0.11.0",
"esformatter":"~0.6.0",
"esformatter-jsx": "^1.0.8"
},
"esformatter": {
"plugins": ["esformatter-jsx"]
},
"license": "MIT"
}
- Run npm install is the lib folder.
##Config (Esformtter.sublime-settings)
Inspired by the esformatter demo
{
"format_options": {
"plugins": [
"esformatter-jsx"
],
"collapseObjects": {
"ObjectExpression": {
"maxLineLength": 80,
"maxKeys": 4,
"maxDepth": 1,
"forbidden": [
"FunctionExpression"
]
},
"ArrayExpression": {
"maxLineLength": 80,
"maxKeys": 4,
"maxDepth": 1,
"forbidden": [
"FunctionExpression"
]
}
},
"jsx": {
"attrsOnSameLineAsTag": false,
"maxAttrsOnTag": 4,
"firstAttributeOnSameLine": true,
"alignWithFirstAttribute": true
},
"indent": {
"value": " ",
"ArrayExpression": 1,
"AssignmentExpression": 1,
"BinaryExpression": 1,
"ConditionalExpression": 1,
"CallExpression": 1,
"CatchClause": 1,
"DoWhileStatement": 1,
"ForInStatement": 1,
"ForStatement": 1,
"FunctionDeclaration": 1,
"FunctionExpression": 1,
"IfStatement": 1,
"MemberExpression": 1,
"MultipleVariableDeclaration": 1,
"ObjectExpression": 1,
"ReturnStatement": 1,
"SwitchCase": 1,
"SwitchStatement": 1,
"TopLevelFunctionBlock": 1,
"TryStatement": 1,
"VariableDeclaration.LogicalExpression": 1,
"WhileStatement": 1
},
"lineBreak": {
"before": {
"AssignmentExpression": ">=0",
"AssignmentOperator": 0,
"BlockStatement": 1,
"CallExpression": -1,
"ConditionalExpression": ">=1",
"CatchOpeningBrace": 0,
"CatchClosingBrace": ">=1",
"CatchKeyword": 0,
"DeleteOperator": ">=1",
"DoWhileStatement": ">=1",
"DoWhileStatementOpeningBrace": 0,
"DoWhileStatementClosingBrace": ">=1",
"EndOfFile": 1,
"EmptyStatement": -1,
"FinallyKeyword": -1,
"FinallyOpeningBrace": 0,
"FinallyClosingBrace": ">=1",
"ForInStatement": ">=1",
"ForInStatementExpressionOpening": 0,
"ForInStatementExpressionClosing": 0,
"ForInStatementOpeningBrace": 0,
"ForInStatementClosingBrace": ">=1",
"ForStatement": ">=1",
"ForStatementExpressionOpening": 0,
"ForStatementExpressionClosing": "<2",
"ForStatementOpeningBrace": 0,
"ForStatementClosingBrace": ">=1",
"FunctionExpression": 0,
"FunctionExpressionOpeningBrace": 0,
"FunctionExpressionClosingBrace": ">=1",
"FunctionDeclaration": ">=1",
"FunctionDeclarationOpeningBrace": 0,
"FunctionDeclarationClosingBrace": ">=1",
"IfStatement": ">=1",
"IfStatementOpeningBrace": 0,
"IfStatementClosingBrace": ">=1",
"ElseIfStatement": 0,
"ElseIfStatementOpeningBrace": 0,
"ElseIfStatementClosingBrace": ">=1",
"ElseStatement": 0,
"ElseStatementOpeningBrace": 0,
"ElseStatementClosingBrace": ">=1",
"LogicalExpression": -1,
"ObjectExpressionOpeningBrace": 0,
"ObjectExpressionClosingBrace": 1,
"Property": 1,
"ReturnStatement": ">=1",
"SwitchOpeningBrace": 0,
"SwitchClosingBrace": ">=1",
"ThisExpression": -1,
"ThrowStatement": ">=1",
"TryKeyword": -1,
"TryOpeningBrace": 0,
"TryClosingBrace": ">=1",
"VariableName": ">=1",
"VariableValue": 0,
"VariableDeclaration": ">=1",
"VariableDeclarationWithoutInit": ">=1",
"WhileStatement": ">=1",
"WhileStatementOpeningBrace": 0,
"WhileStatementClosingBrace": ">=1",
"ArrayExpressionClosing": 1
},
"after": {
"AssignmentExpression": ">=1",
"AssignmentOperator": 0,
"BlockStatement": 0,
"CallExpression": -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",
"ForStatement": ">=1",
"ForStatementExpressionOpening": "<2",
"ForStatementExpressionClosing": -1,
"ForStatementOpeningBrace": ">=1",
"ForStatementClosingBrace": ">=1",
"FunctionExpression": ">=1",
"FunctionExpressionOpeningBrace": ">=1",
"FunctionExpressionClosingBrace": -1,
"FunctionDeclaration": ">=1",
"FunctionDeclarationOpeningBrace": ">=1",
"FunctionDeclarationClosingBrace": ">=1",
"IfStatement": ">=1",
"IfStatementOpeningBrace": ">=1",
"IfStatementClosingBrace": ">=1",
"ElseIfStatement": ">=1",
"ElseIfStatementOpeningBrace": ">=1",
"ElseIfStatementClosingBrace": ">=1",
"ElseStatement": ">=1",
"ElseStatementOpeningBrace": ">=1",
"ElseStatementClosingBrace": ">=1",
"LogicalExpression": -1,
"ObjectExpressionClosingBrace": 0,
"ObjectExpressionOpeningBrace": 1,
"PropertyValue": 0,
"Property": 0,
"ReturnStatement": 1,
"SwitchOpeningBrace": ">=1",
"SwitchClosingBrace": ">=1",
"ThisExpression": 0,
"ThrowStatement": ">=1",
"TryKeyword": -1,
"TryOpeningBrace": ">=1",
"TryClosingBrace": 0,
"VariableDeclaration": ">=1",
"WhileStatement": ">=1",
"WhileStatementOpeningBrace": ">=1",
"WhileStatementClosingBrace": ">=1",
"ArrayExpressionOpening": 1,
"ArrayExpressionComma": 1
}
},
"whiteSpace": {
"value": " ",
"removeTrailing": 1
}
}
}