Bug 1170804 - Add .eslintrc configuration file to mobile/android. r=margaret
authorMichael Comella <michael.l.comella@gmail.com>
Wed, 24 Jun 2015 22:37:55 -0700
changeset 281122 14f8333949e896ba722adb4a2492a31aa8eeae62
parent 281121 27f5ace2fa5ead1aa521101e923efcd48db745dd
child 281123 7c445f47c4d6a78ff57c5b3d32702e6cd0ab6156
push id4932
push userjlund@mozilla.com
push dateMon, 10 Aug 2015 18:23:06 +0000
treeherdermozilla-beta@6dd5a4f5f745 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmargaret
bugs1170804
milestone41.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1170804 - Add .eslintrc configuration file to mobile/android. r=margaret eslint can be run by `cd`ing to mobile/android and running `eslint .` (assuming eslint is installed). Note that .jsm files have not yet been configured. Add an eslintignore to avoid the files that will take more work.
mobile/android/.eslintignore
mobile/android/.eslintrc
new file mode 100644
--- /dev/null
+++ b/mobile/android/.eslintignore
@@ -0,0 +1,9 @@
+chrome/content
+tests/
+
+# Uses `#filter substitution`
+app/mobile.js
+
+# Not much JS to lint and non-standard at that
+installer/
+locales/
new file mode 100644
--- /dev/null
+++ b/mobile/android/.eslintrc
@@ -0,0 +1,101 @@
+env:
+    browser: true
+    es6: true
+
+globals:
+    Components: false
+
+    # TODO: Create custom rule for `Cu.import`
+    AddonManager: false
+    AppConstants: false
+    Downloads: false
+    File: false
+    FileUtils: false
+    HelperApps: false
+    JNI: false
+    Messaging: false
+    OS: false
+    PrivateBrowsingUtils: false
+    Prompt: false
+    Services: false
+    Task: false
+    TelemetryStopwatch: false
+    UserAgentOverrides: 0
+    WebappManager: false
+    XPCOMUtils: false
+    dump: false
+    exports: false
+    importScripts: false
+    require: false
+
+    Iterator: false # TODO: Remove - deprecated!
+
+rules:
+    global-strict: 0 # Overridden by "strict"
+    no-underscore-dangle: 0 # We allow trailing underscores in names.
+
+    # We disable everything to get all files to pass w/o updating them.
+    # We'll re-enable one by one.
+    camelcase: 0
+    comma-dangle: 0
+    consistent-return: 0
+    curly: 0
+    dot-notation: 0
+    eqeqeq: 0
+    key-spacing: 0
+    new-cap: 0
+    no-constant-condition: 0
+    no-extra-semi: 0
+    no-caller: 0
+    no-return-assign: 0
+    no-extra-bind: 0
+    no-empty: 0
+    no-multi-spaces: 0
+    no-loop-func: 0
+    no-new-object: 0
+    no-octal: 0
+    no-shadow: 0
+    no-trailing-spaces: 0
+    no-use-before-define: 0
+    no-unused-vars: 0
+    quotes: 0 # [2, "double"]
+    semi: 0
+    space-infix-ops: 0
+    space-unary-ops: 0 # 2: https://github.com/eslint/eslint/issues/2764
+    strict: 0
+
+  #"ecmaFeatures": {
+  #  "forOf": true,
+  #  "jsx": true,
+  #},
+  #"rules": {
+  #  // turn off all kinds of stuff that we actually do want, because
+  #  // right now, we're bootstrapping the linting infrastructure.  We'll
+  #  // want to audit these rules, and start turning them on and fixing the
+  #  // problems they find, one at a time.
+
+  #  // Eslint built-in rules are documented at <http://eslint.org/docs/rules/>
+  #  "camelcase": 0,               // TODO: Remove (use default)
+  #  "consistent-return": 0,       // TODO: Remove (use default)
+  #  dot-location: 0,              // [2, property],
+  #  "eqeqeq": 0,                  // TBD. Might need to be separate for content & chrome
+  #  "global-strict": 0,           // Leave as zero (this will be unsupported in eslint 1.0.0)
+  #  "linebreak-style": [2, "unix"],
+  #  "new-cap": 0,                 // TODO: Remove (use default)
+  #  "no-catch-shadow": 0,         // TODO: Remove (use default)
+  #  "no-console": 0,              // Leave as 0. We use console logging in content code.
+  #  "no-empty": 0,                // TODO: Remove (use default)
+  #  "no-extra-bind": 0,           // Leave as 0
+  #  "no-extra-boolean-cast": 0,   // TODO: Remove (use default)
+  #  "no-multi-spaces": 0,         // TBD.
+  #  "no-new": 0,                  // TODO: Remove (use default)
+  #  "no-redeclare": 0,            // TODO: Remove (use default)
+  #  "no-return-assign": 0,        // TODO: Remove (use default)
+  #  "no-underscore-dangle": 0,    // Leave as 0. Commonly used for private variables.
+  #  "no-unneeded-ternary": 2,
+  #  "no-unused-expressions": 0,   // TODO: Remove (use default)
+  #  "no-unused-vars": 0,          // TODO: Remove (use default)
+  #  "no-use-before-define": 0,    // TODO: Remove (use default)
+  #  "quotes": [2, "double", "avoid-escape"],
+  #  "strict": 0,                  // [2, "function"],
+  #}