Closed14
Romeを軽く試す
試したい
ちょうどいいコードが手元にないので、Prettier
を実験材料とする
とりあえず、インストール
yarn
yarn add -D rome@next
$ yarn lint:prettier
yarn run v1.22.19
$ prettier src/**/*.js --check
Checking formatting...
All matched files use Prettier code style!
Done in 2.54s.
$ yarn lint:rome
yarn run v1.22.19
$ rome check src/**/*.js
The number of diagnostics exceeds the number allowed by Rome.
Diagnostics not shown: 221.
Checked 132 files in 27ms
Rome
速すぎて笑えるが、lintでは下記のようなものがチェックされる
error[js/noDelete]: This is an unexpected use of the delete operator.
┌─ src/language-css/clean.js:37:7
│
37 │ delete newObj.text;
│ ^^^^^^^^^^^^^^^^^^
Suggested fix: Replace with undefined assignment
| @@ -34,7 +34,7 @@
33 33 | *
34 34 | * @format
35 35 | */
36 | - delete newObj.text;
36 | + newObj.text = undefined;
37 37 |
38 38 | // standalone pragma
39 39 | if (/^\*\s*@(?:format|prettier)\s*$/.test(ast.text)) {
他には
- error[js/noDelete]: This is an unexpected use of the delete operator.
- error[js/useSimplifiedLogicExpression]: Logical expression contains unnecessary complexity.
- error[js/useTemplate]: Template literals are preferred over string concatenation.
- error[js/noUnusedVariables]: This parameter is unused.
- error[js/useSingleCaseStatement]: A switch case should only have a single statement. If you want more, then wrap it in a block.
- Suggested fix: Exchange alternate and consequent of the node
- error[js/noNegationElse]: Invert blocks when performing a negation test.
下記にあるルールに基いているらしい
$ yarn fix:rome
yarn run v1.22.19
$ rome format --write src/**/*.js
Formatted 132 files in 45ms
Done in 0.17s.
$ yarn fix:prettier
yarn run v1.22.19
$ yarn lint:prettier --write
$ prettier src/**/*.js --check --write
Checking formatting...
[warn] Code style issues found in 130 files.
Done in 3.54s.
速すぎて実行を疑いました
デフォルトフォーマットの違い
Prettier | Rome | |
---|---|---|
タブ/スペース | スペース | タブ |
幅 | 2 | 2 |
末尾カンマ | es5 | all |
他には改行やコメントの処理が違う
Rome
は厳密に指定制限を越えていない場合は、1行にまとめる。
また無名関数のタイミングで改行をしているかもしれない。
- const {
- cjkPattern,
- kPattern,
- punctuationPattern,
- } = require("./constants.evaluate.js");
+ const { cjkPattern, kPattern, punctuationPattern } = require(
+ "./constants.evaluate.js",
+ );
- const descriptors = srcset
- .map((src) => src[key])
- .map((descriptor) => (descriptor ? descriptor.toString() : ""));
+ const descriptors = srcset.map((src) => src[key]).map(
+ (descriptor) => (descriptor ? descriptor.toString() : ""),
+ );
rome check
での提案の適用は下記のオプションを使用することでできます。
-
--apply
- 安全な修正を適用する
-
--apply-suggested
- 安全な修正と推奨される修正を適用する
rome check
とrome format
を混合してました。
rome check
はLinter
rome format
はFormater
rome ci
は両方を実行できる
このスクラップは2022/09/29にクローズされました