From 30098a5427f98ca3049100a1cd47f75602e85ce4 Mon Sep 17 00:00:00 2001 From: Adam Doppelt Date: Tue, 13 Mar 2018 19:26:16 -0700 Subject: [PATCH 1/3] Add tslint/prettier extensions for linting/formatting. --- .prettierrc | 6 ++ .vscode/extensions.json | 3 + .vscode/settings.json | 8 +- package-lock.json | 169 +++++++++++++++++++++++++++++++++++++++- package.json | 21 ++++- tslint.json | 7 ++ 6 files changed, 209 insertions(+), 5 deletions(-) create mode 100644 .prettierrc create mode 100644 .vscode/extensions.json create mode 100644 tslint.json diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..43d28f7cc --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 100, + "singleQuote": true, + "trailingComma": "es5", + "useTabs": true +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000..bbe809dc3 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["esbenp.prettier-vscode", "eg2.tslint"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 9d3f3ebf0..9ce26adeb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,5 +4,11 @@ "files.trimTrailingWhitespace": true, "eslint.enable": false, "editor.insertSpaces": false, + "[javascript]": { + "editor.formatOnSave": true + }, + "[typescript]": { + "editor.formatOnSave": true + }, "typescript.tsdk": "node_modules/typescript/lib" -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index bd6549b5a..91712621f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "ruby-lang", - "version": "1.0.0", + "name": "Ruby", + "version": "0.17.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -43,6 +43,15 @@ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", @@ -129,6 +138,17 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -193,6 +213,12 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, "caseless": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", @@ -246,6 +272,21 @@ "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", "dev": true }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", @@ -432,6 +473,18 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, "event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", @@ -1696,6 +1749,22 @@ } } }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", + "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "dev": true, + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.0" + } + }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -2352,6 +2421,12 @@ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, + "prettier": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", + "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", + "dev": true + }, "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", @@ -2715,6 +2790,12 @@ "through": "2.3.8" } }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, "sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", @@ -2886,6 +2967,90 @@ "punycode": "1.4.1" } }, + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tslint": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz", + "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.3.2", + "commander": "2.12.2", + "diff": "3.5.0", + "glob": "7.1.2", + "js-yaml": "3.11.0", + "minimatch": "3.0.4", + "resolve": "1.5.0", + "semver": "5.4.1", + "tslib": "1.9.0", + "tsutils": "2.22.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "tslint-config-prettier": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.10.0.tgz", + "integrity": "sha512-WghvT/oYVV6UGhkHyAVUjcJYmqnYJgw8nfYOmsnTeBdpNeyPfhQTwZ+qa63cni2VE/6J29VP/7ijWcuaVlVcqg==", + "dev": true + }, + "tsutils": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.22.2.tgz", + "integrity": "sha512-u06FUSulCJ+Y8a2ftuqZN6kIGqdP2yJjUPEngXqmdPND4UQfb04igcotH+dw+IFr417yP6muCLE8/5/Qlfnx0w==", + "dev": true, + "requires": { + "tslib": "1.9.0" + } + }, "tunnel-agent": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", diff --git a/package.json b/package.json index 1d2383be7..145fa27e7 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,10 @@ "gulp-typescript": "^2.12.0", "gulp-util": "^3.0.5", "mocha": "^2.4.5", + "prettier": "^1.11.1", "run-sequence": "*", + "tslint": "^5.9.1", + "tslint-config-prettier": "^1.10.0", "typescript": "^2.1.5", "vscode": "^1.1.4", "vscode-debugadapter-testsupport": "^1.19.0" @@ -135,13 +138,21 @@ }, "ruby.codeCompletion": { "type": "string", - "enum": ["solargraph", "rcodetools", "none"], + "enum": [ + "solargraph", + "rcodetools", + "none" + ], "default": "solargraph", "description": "Method to use for code completion." }, "ruby.intellisense": { "type": "string", - "enum": ["solargraph", "rubyLocate", "none"], + "enum": [ + "solargraph", + "rubyLocate", + "none" + ], "default": "solargraph", "description": "Method to use for intellisense (go to definition, etc.)." }, @@ -567,5 +578,11 @@ ] } ] + }, + "prettier": { + "printWidth": 100, + "singleQuote": true, + "trailingComma": "es5", + "useTabs": true } } diff --git a/tslint.json b/tslint.json new file mode 100644 index 000000000..b1e1116f1 --- /dev/null +++ b/tslint.json @@ -0,0 +1,7 @@ +{ + "defaultSeverity": "error", + "extends": ["tslint:recommended", "tslint-config-prettier"], + "jsRules": {}, + "rules": {}, + "rulesDirectory": [] +} From 1da912f57aebf644af3c65c0c2ae6e264d536cf9 Mon Sep 17 00:00:00 2001 From: Adam Doppelt Date: Tue, 13 Mar 2018 19:36:33 -0700 Subject: [PATCH 2/3] don't need this stanza anymore --- package.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/package.json b/package.json index 145fa27e7..d2c13d611 100644 --- a/package.json +++ b/package.json @@ -578,11 +578,5 @@ ] } ] - }, - "prettier": { - "printWidth": 100, - "singleQuote": true, - "trailingComma": "es5", - "useTabs": true } } From a5d45fa1970770a7d5910bc06068177a04b5c90c Mon Sep 17 00:00:00 2001 From: Adam Doppelt Date: Wed, 14 Mar 2018 12:52:53 -0700 Subject: [PATCH 3/3] Switch to tslint-microsoft-contrib. Turned off a few rules that seem overly noisy. --- package-lock.json | 9 +++++++++ package.json | 1 + tslint.json | 11 ++++++++--- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 91712621f..468df9658 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3042,6 +3042,15 @@ "integrity": "sha512-WghvT/oYVV6UGhkHyAVUjcJYmqnYJgw8nfYOmsnTeBdpNeyPfhQTwZ+qa63cni2VE/6J29VP/7ijWcuaVlVcqg==", "dev": true }, + "tslint-microsoft-contrib": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.0.3.tgz", + "integrity": "sha512-5AnfTGlfpUzpRHLmoojPBKFTTmbjnwgdaTHMdllausa4GBPya5u36i9ddrTX4PhetGZvd4JUYIpAmgHqVnsctg==", + "dev": true, + "requires": { + "tsutils": "2.22.2" + } + }, "tsutils": { "version": "2.22.2", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.22.2.tgz", diff --git a/package.json b/package.json index d2c13d611..0416404dc 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "run-sequence": "*", "tslint": "^5.9.1", "tslint-config-prettier": "^1.10.0", + "tslint-microsoft-contrib": "^5.0.3", "typescript": "^2.1.5", "vscode": "^1.1.4", "vscode-debugadapter-testsupport": "^1.19.0" diff --git a/tslint.json b/tslint.json index b1e1116f1..04ccaa789 100644 --- a/tslint.json +++ b/tslint.json @@ -1,7 +1,12 @@ { - "defaultSeverity": "error", - "extends": ["tslint:recommended", "tslint-config-prettier"], + "defaultSeverity": "warning", + "extends": ["tslint-microsoft-contrib", "tslint-config-prettier"], "jsRules": {}, - "rules": {}, + "rules": { + "missing-jsdoc": false, + "no-backbone-get-outside-model": false, + "no-backbone-get-set-outside-model": false, + "no-relative-imports": false + }, "rulesDirectory": [] }