初めてのおつかいでどうしたもんかと思ったやつ。
enforce the consistent use of either backticks, double, or single quotes (quotes) をちゃんと読んでみる。なんかこんだけのもんだから、きっとコントロール出来るにちげぇねぇぜっ、と信頼してみる。
何? うん、おさらい。
- 文字列リテラルを書くのに「ポリシーもなく」不統一だと読みにくい
- ついでに言うと、Syntax Highlighting 時に一重引用符と二重引用符を区別しちゃうヤツもいる
- ので、「原則としてどちらか」に統一したいが
- だからと言って、「二重引用符を含む文字列」を、エスケープしてまで二重引用符で囲め、なんて許容出来ない
ごくごく当たり前のニーズでしょ。
でドキュメント。なんか制御がわかりにくい気がすんだけれど、「avoidEscape」を true にすると、「エスケープしてまで二重引用符にしようとすんなや」という、まさにワタシの思ったことをしてくれるみたい。英語だけ読んででもピンと来なくて、correct/incorrect 例をガン見しててようやっと理解した。
ゆえ、ワタシの .eslintrc.js(抜粋):
1 module.exports = {
2 "env": {
3 "browser": true,
4 "commonjs": true,
5 "es6": true
6 },
7 "extends": "eslint:recommended",
8 "parserOptions": {
9 "sourceType": "module",
10 "ecmaVersion": 2017
11 },
12 "rules": {
13 "indent": [
14 "error",
15 4
16 ],
17 //...
18 "quotes": [
19 "warn",
20 "double",
21 {
22 // ありがとぅー…ありがとぅー…ありがとぅー…
23 "avoidEscape": true,
24
25 // まだワタシには関係ないが将来のために
26 "allowTemplateLiterals": true,
27 }
28 ],
29 "semi": [
30 "error",
31 "always"
32 ],
33 // ...
34 "switch-colon-spacing": [
35 "error",
36 {"after": true, "before": false}
37 ],
38 }
39 };
それはそうと、「backtick」の意味が、このドキュメントで初めてわかった。あぁ、だんだん他の言語で「ええもん」とされて使われてるものが取り込まれてるんだね。イキのいい最近の Python では f-string、ruby なら pp、そして「化石」の bourne-shell なら(ややこしいが)二重引用符、に相当。つまり substitution を解釈する。ついでに python の “”” とか ”’ みたいに、改行をそのままブチ込める。うーん、すぐにでも使いたくなってきた。それこそ複雑な正規表現を書くのに便利だったりするかもしれん。