Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save 872409/377055499b0d3d77eeb0 to your computer and use it in GitHub Desktop.
Save 872409/377055499b0d3d77eeb0 to your computer and use it in GitHub Desktop.

##Install

  1. Install sublime-esformatter from package control
  2. Modify the package.json in the esformatter package folder to look like this:
{
  "name": "esformatter-generator",
  "version": "0.1.0",
  "author": "Fabio Crisci <piuccio@gmail.com>",
  "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"
}
  1. 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
    }
  }
}

##usage https://github.com/piuccio/sublime-esformatter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment