From d8cd44429b035ba30d7b772abf1f9adbef61b57c Mon Sep 17 00:00:00 2001 From: Gleb Bahmutov Date: Mon, 5 Jun 2017 15:39:08 -0400 Subject: [PATCH] coffee: add coffeelint, close #126 --- packages/coffee/README.md | 15 +++ packages/coffee/package.json | 3 + packages/coffeelint.json | 135 ++++++++++++++++++++++ packages/launcher/package.json | 4 +- packages/launcher/test/spec_helper.coffee | 2 +- 5 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 packages/coffee/README.md create mode 100644 packages/coffeelint.json diff --git a/packages/coffee/README.md b/packages/coffee/README.md new file mode 100644 index 0000000000..38323ba277 --- /dev/null +++ b/packages/coffee/README.md @@ -0,0 +1,15 @@ +## linting + +To lint CoffeeScript files, use `coffeelint` tool in this project. +For example, from `packages/launcher/package.json` the command to lint + +```json +{ + "scripts": { + "pretest": "npm run lint", + "lint": "../coffee/node_modules/.bin/coffeelint test/*.coffee" + } +} +``` + +The linting settings are in `packages/coffeelint.json` file. diff --git a/packages/coffee/package.json b/packages/coffee/package.json index a36741c833..5891d18f08 100644 --- a/packages/coffee/package.json +++ b/packages/coffee/package.json @@ -6,5 +6,8 @@ }, "scripts": { "test": "echo 'Nothing to test for the coffee package'" + }, + "devDependencies": { + "coffeelint": "^1.16.0" } } diff --git a/packages/coffeelint.json b/packages/coffeelint.json new file mode 100644 index 0000000000..0bd113af9b --- /dev/null +++ b/packages/coffeelint.json @@ -0,0 +1,135 @@ +{ + "arrow_spacing": { + "level": "ignore" + }, + "braces_spacing": { + "level": "warn", + "spaces": 0, + "empty_object_spaces": 0 + }, + "camel_case_classes": { + "level": "error" + }, + "coffeescript_error": { + "level": "error" + }, + "colon_assignment_spacing": { + "level": "ignore", + "spacing": { + "left": 0, + "right": 1 + } + }, + "cyclomatic_complexity": { + "level": "ignore", + "value": 10 + }, + "duplicate_key": { + "level": "error" + }, + "empty_constructor_needs_parens": { + "level": "error" + }, + "ensure_comprehensions": { + "level": "warn" + }, + "eol_last": { + "level": "error" + }, + "indentation": { + "value": 2, + "level": "error" + }, + "line_endings": { + "level": "ignore", + "value": "unix" + }, + "max_line_length": { + "value": 100, + "level": "error", + "limitComments": true + }, + "missing_fat_arrows": { + "level": "ignore", + "is_strict": false + }, + "newlines_after_classes": { + "value": 3, + "level": "ignore" + }, + "no_backticks": { + "level": "error" + }, + "no_debugger": { + "level": "warn", + "console": false + }, + "no_empty_functions": { + "level": "ignore" + }, + "no_empty_param_list": { + "level": "ignore" + }, + "no_implicit_braces": { + "level": "warn", + "strict": true + }, + "no_implicit_parens": { + "level": "ignore", + "strict": true + }, + "no_interpolation_in_single_quotes": { + "level": "error" + }, + "no_nested_string_interpolation": { + "level": "warn" + }, + "no_plusplus": { + "level": "ignore" + }, + "no_private_function_fat_arrows": { + "level": "warn" + }, + "no_stand_alone_at": { + "level": "ignore" + }, + "no_tabs": { + "level": "error" + }, + "no_this": { + "level": "error" + }, + "no_throwing_strings": { + "level": "error" + }, + "no_trailing_semicolons": { + "level": "error" + }, + "no_trailing_whitespace": { + "level": "error", + "allowed_in_comments": false, + "allowed_in_empty_lines": true + }, + "no_unnecessary_double_quotes": { + "level": "ignore" + }, + "no_unnecessary_fat_arrows": { + "level": "warn" + }, + "non_empty_constructor_needs_parens": { + "level": "ignore" + }, + "prefer_english_operator": { + "level": "ignore", + "doubleNotLevel": "ignore" + }, + "space_operators": { + "level": "warn" + }, + "spacing_after_comma": { + "level": "ignore" + }, + "transform_messes_up_line_numbers": { + "level": "warn" + } +} diff --git a/packages/launcher/package.json b/packages/launcher/package.json index 5d32ed8e16..c509f15809 100644 --- a/packages/launcher/package.json +++ b/packages/launcher/package.json @@ -9,7 +9,9 @@ "test": "mocha", "clean-deps": "rm -rf node_modules", "clean": "rm lib/*.js lib/**/*.js || true", - "lint": "tslint --type-check --project . --fix --format stylish lib/*.ts lib/**/*.ts" + "lint": "npm run lint-ts && npm run lint-coffee", + "lint-ts": "tslint --type-check --project . --fix --format stylish lib/*.ts lib/**/*.ts", + "lint-coffee": "../coffee/node_modules/.bin/coffeelint test/*.coffee test/**/*.coffee" }, "repository": { "type": "git", diff --git a/packages/launcher/test/spec_helper.coffee b/packages/launcher/test/spec_helper.coffee index 45697fb3e7..7be29a687d 100644 --- a/packages/launcher/test/spec_helper.coffee +++ b/packages/launcher/test/spec_helper.coffee @@ -10,4 +10,4 @@ beforeEach -> @sandbox = sinon.sandbox.create() afterEach -> - @sandbox.restore() \ No newline at end of file + @sandbox.restore()