{
  "esnext": true,
  "verbose": true,
  "preset": "crockford",
  "requireMultipleVarDecl": null,
  "disallowDanglingUnderscores": null,
  "disallowKeywords": [
    "with"
  ],
  "requireSpaceAfterKeywords": null, // ESLint handles this better
  "disallowEmptyBlocks": true,

  "disallowMultipleVarDecl": "strict",
  "validateQuoteMarks": "\"",
  "validateIndentation": 2,
  "disallowSpaceAfterObjectKeys": true,
  "disallowSpacesInCallExpression": true,
  "disallowYodaConditions": true,
  "maximumLineLength": {
    "value": 120,
    "allowUrlComments": true
  },
  "requireFunctionDeclarations": true,
  "requireSemicolons": true,
  "validateLineBreaks": "LF",
  "validateParameterSeparator": ", ",
  "requireBlocksOnNewline": 1,
  "requireSpacesInAnonymousFunctionExpression": {
    "beforeOpeningCurlyBrace": true,
    "beforeOpeningRoundBrace": true,
    "allExcept": ["shorthand"]
  },

  "excludeFiles": [
    "node_modules",
    "benchmark/browser-bundle.js",
    "test/worker-bundle.js",
    "lib/jsdom/browser/htmltodom.js",
    "lib/jsdom/browser/default-stylesheet.js",
    "lib/jsdom/level2/style.js",
    "lib/jsdom/level3/xpath.js",
    "lib/jsdom/living/generated/**",
    "test/browser/files",
    "test/browser/index.js",
    "test/jquery-fixtures",
    "test/jsdom/files",
    "test/jsdom/leak.js",
    "test/level1",
    "test/level2",
    "test/level3",
    "test/sizzle",
    "test/web-platform-tests/tests",
    "test/window/files",
    "test/window/frame.js",
    "test/window/script.js",
    "test/*.js"
  ]
}
