JavaScript で文字列を length で数えるのはやめようの記事
JavaScript で文字数を length で数えるのはやめようの実例
かなり前にlength
での文字数の計算がよくないみたいのはどっかで見た記憶がある(JavaScript じゃなかったかもしれない)
これが原因で Prettier にバグがあるというのは面白かった。
Prettier でのメソッドチェーンの改行の条件を初めて知ったが、たしかに「いずれかの引数が正規表現でかつ 5 文字以上」というのは普通に起こりうる条件だし、その条件にこういったlength
の判定が使われていればおかしくなるのも頷ける。
で、これどうするんだろうと思ってたけど、Prettier 内の別の場所で getStringWidth`という関数が使われており、それを使うようにすれば問題なく、しかも次のバージョンに修正が含まれているとのことらしい。なるほど。
普段length
を使った判定をしている場合、対象の文字列の長さが「0 かどうか」くらいしか使っていないので、こういったバグを踏んだことはないけど覚えておこう。