From ad3376b9dcbaa05ad60cc3029eaac14e42ef67f6 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 15 Jan 2016 13:37:03 -0800 Subject: [PATCH 1/9] Add initial eslint config --- .eslintrc.json | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .eslintrc.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000000..31b3561a749 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,37 @@ +{ + "rules": { + "indent": [ + 2, + 2, + { + "SwitchCase": 1 + } + ], + "quotes": [ + 2, + "single" + ], + "linebreak-style": [ + 2, + "unix" + ], + "semi": [ + 2, + "always" + ], + "comma-dangle": 0, + "indent": 0, + "no-console": 0, + "no-undef": 0, + "no-unreachable": 0, + "no-unused-vars": 0, + "quotes": 0, + "semi": 0 + }, + "env": { + "es6": true, + "node": true, + "browser": true + }, + "extends": "eslint:recommended" +} From 4db4d409a7b24375361558aeaa4f3d0d97900180 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 15 Jan 2016 13:52:18 -0800 Subject: [PATCH 2/9] Add initial eslint script --- script/eslint.py | 25 ++++++++++++++++++++++ .eslintrc.json => script/eslintrc-src.json | 0 2 files changed, 25 insertions(+) create mode 100755 script/eslint.py rename .eslintrc.json => script/eslintrc-src.json (100%) diff --git a/script/eslint.py b/script/eslint.py new file mode 100755 index 00000000000..cbf1b0b2470 --- /dev/null +++ b/script/eslint.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python + +import glob +import os +import sys + +from lib.util import execute + + +SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + + +def main(): + os.chdir(SOURCE_ROOT) + + eslint = os.path.join(SOURCE_ROOT, 'node_modules', '.bin', 'eslint') + if sys.platform in ['win32', 'cygwin']: + eslint += '.cmd' + settings = ['--quiet', '--config', os.path.join('script', 'eslintrc.json')] + + execute([eslint] + settings + ['atom']) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/.eslintrc.json b/script/eslintrc-src.json similarity index 100% rename from .eslintrc.json rename to script/eslintrc-src.json From 0a3331a07c9250a2d780770ed6043bf35c341f8d Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 15 Jan 2016 13:52:42 -0800 Subject: [PATCH 3/9] Add eslint dev dependency --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 7f1bde090eb..79f4cebc110 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.36.4", "devDependencies": { "asar": "^0.9.0", + "eslint": "^1.10.3", "request": "*" }, "optionalDependencies": { From 756f8039e519ceb7480608ca5bb5ae63f162d2a5 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 15 Jan 2016 14:02:05 -0800 Subject: [PATCH 4/9] Lint spec js files --- script/eslint.py | 10 ++++++++-- script/eslintrc-spec.json | 10 ++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 script/eslintrc-spec.json diff --git a/script/eslint.py b/script/eslint.py index cbf1b0b2470..a86c67f5a17 100755 --- a/script/eslint.py +++ b/script/eslint.py @@ -16,9 +16,15 @@ def main(): eslint = os.path.join(SOURCE_ROOT, 'node_modules', '.bin', 'eslint') if sys.platform in ['win32', 'cygwin']: eslint += '.cmd' - settings = ['--quiet', '--config', os.path.join('script', 'eslintrc.json')] + settings = ['--quiet', '--config'] - execute([eslint] + settings + ['atom']) + sourceConfig = os.path.join('script', 'eslintrc-src.json') + sourceFiles = glob.glob('atom/**/*.js') + execute([eslint] + settings + [sourceConfig] + sourceFiles) + + specConfig = os.path.join('script', 'eslintrc-spec.json') + specFiles = glob.glob('spec/*.js') + execute([eslint] + settings + [specConfig] + specFiles) if __name__ == '__main__': diff --git a/script/eslintrc-spec.json b/script/eslintrc-spec.json new file mode 100644 index 00000000000..e956ea5e107 --- /dev/null +++ b/script/eslintrc-spec.json @@ -0,0 +1,10 @@ +{ + "rules": { + "no-empty": 0 + }, + "env": { + "jquery": true, + "mocha": true + }, + "extends": "./eslintrc-src.json" +} From b87599a6a2896f0e665ba27f3ecacd76f57952fd Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 15 Jan 2016 14:37:51 -0800 Subject: [PATCH 5/9] Rename eslintrc-src to eslintrc-base --- script/eslint.py | 2 +- script/{eslintrc-src.json => eslintrc-base.json} | 0 script/eslintrc-spec.json | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename script/{eslintrc-src.json => eslintrc-base.json} (100%) diff --git a/script/eslint.py b/script/eslint.py index a86c67f5a17..72c86a5dad9 100755 --- a/script/eslint.py +++ b/script/eslint.py @@ -18,7 +18,7 @@ def main(): eslint += '.cmd' settings = ['--quiet', '--config'] - sourceConfig = os.path.join('script', 'eslintrc-src.json') + sourceConfig = os.path.join('script', 'eslintrc-base.json') sourceFiles = glob.glob('atom/**/*.js') execute([eslint] + settings + [sourceConfig] + sourceFiles) diff --git a/script/eslintrc-src.json b/script/eslintrc-base.json similarity index 100% rename from script/eslintrc-src.json rename to script/eslintrc-base.json diff --git a/script/eslintrc-spec.json b/script/eslintrc-spec.json index e956ea5e107..3a4fbe2c128 100644 --- a/script/eslintrc-spec.json +++ b/script/eslintrc-spec.json @@ -6,5 +6,5 @@ "jquery": true, "mocha": true }, - "extends": "./eslintrc-src.json" + "extends": "./eslintrc-base.json" } From 1d3e7dc6e4ba3abd1927502e5e9665049f2e4e38 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 15 Jan 2016 14:38:07 -0800 Subject: [PATCH 6/9] Run eslint on CI --- script/cibuild | 1 + 1 file changed, 1 insertion(+) diff --git a/script/cibuild b/script/cibuild index 1273945409e..391b859a3d2 100755 --- a/script/cibuild +++ b/script/cibuild @@ -63,6 +63,7 @@ def main(): run_script('bootstrap.py', args) run_script('cpplint.py') + run_script('eslint.py') if PLATFORM != 'win32': run_script('pylint.py') if is_release: From 2869869a993d16c3b226ce91550ed1be57834515 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 15 Jan 2016 14:40:37 -0800 Subject: [PATCH 7/9] Combine duplicate eslint keys --- script/eslintrc-base.json | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/script/eslintrc-base.json b/script/eslintrc-base.json index 31b3561a749..61354a2e998 100644 --- a/script/eslintrc-base.json +++ b/script/eslintrc-base.json @@ -1,14 +1,14 @@ { "rules": { "indent": [ - 2, + 0, 2, { "SwitchCase": 1 } ], "quotes": [ - 2, + 0, "single" ], "linebreak-style": [ @@ -16,17 +16,14 @@ "unix" ], "semi": [ - 2, + 0, "always" ], "comma-dangle": 0, - "indent": 0, "no-console": 0, "no-undef": 0, "no-unreachable": 0, - "no-unused-vars": 0, - "quotes": 0, - "semi": 0 + "no-unused-vars": 0 }, "env": { "es6": true, From da120d8874e5a1dbf9474e2e8fe61b53a1d96bac Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 15 Jan 2016 14:43:23 -0800 Subject: [PATCH 8/9] Lint entire atom folder --- script/eslint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/eslint.py b/script/eslint.py index 72c86a5dad9..8fa2c3a7e3a 100755 --- a/script/eslint.py +++ b/script/eslint.py @@ -19,7 +19,7 @@ def main(): settings = ['--quiet', '--config'] sourceConfig = os.path.join('script', 'eslintrc-base.json') - sourceFiles = glob.glob('atom/**/*.js') + sourceFiles = ['atom'] execute([eslint] + settings + [sourceConfig] + sourceFiles) specConfig = os.path.join('script', 'eslintrc-spec.json') From 503cd04c751e360edc7246628b2ede9b47410301 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 15 Jan 2016 14:58:34 -0800 Subject: [PATCH 9/9] Disable linebreak-style rule --- script/eslintrc-base.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/script/eslintrc-base.json b/script/eslintrc-base.json index 61354a2e998..5c9f15eb666 100644 --- a/script/eslintrc-base.json +++ b/script/eslintrc-base.json @@ -11,15 +11,12 @@ 0, "single" ], - "linebreak-style": [ - 2, - "unix" - ], "semi": [ 0, "always" ], "comma-dangle": 0, + "linebreak-style": 0, "no-console": 0, "no-undef": 0, "no-unreachable": 0,