タイポを検出して指摘してくれる typos を試してみた。

こんにちは k-jun です。今回は、rust 製のタイポ検出ツール typos を試してみます。

https://github.com/crate-ci/typos

結構あるあるなんですよね。コードを書いていて、最初に変数を定義した人間がtypo をしており、あとに編集を加える人間はそれを根本から修正するのか typo に甘んじるのか悩むという... そんな状況が改善できると良いですよね...

Install

$ cargo install typos-cli

Run

手元のメモを溜め込んでいる repository が存在するので、そちらに実行してみます。

$ typos
error: `laod` should be `load`
  --> ./book/実践ハイパフォ−マンスMySQL/2-MySQLのベンチマーク/2.4-ベンチマークツール.md:8:7
  |
8 | * http_laod
  |        ^^^^
  |
error: `assing` should be `assign`
  --> ./book/Nginx実践入門/9-Luaによるnginxの拡張.md:149:15
    |
149 | ngx.va.uri = "/assing"
    |                ^^^^^^
    |
error: `calue` should be `value`
  --> ./book/Nginx実践入門/7-大規模コンテンツ配信サーバーの構築.md:68:68
   |
68 |     proxsy_cache_path /var/lib/nginx/cache/nginx levels=1 keys_zone=calue:4M inactive=1d max_size=100M;
   |                                                                     ^^^^^
   |
error: `UNCOMMITED` should be `UNCOMMITTED`
  --> ./book/実践ハイパフォ−マンスMySQL/1-MySQLのアーキテクチャと歴史/1.3-トランザクション.md:23:7
   |
23 | * READ UNCOMMITED
   |        ^^^^^^^^^^
   |
error: `CAHR` should be `CHAR`
  --> ./book/実践ハイパフォ−マンスMySQL/4-スキーマとデータ型の最適化/4.1-最適なデータ型の選択.md:54:22
...

ぐはぁ.... 大量に出てきました.... 辛い。どうやら自動修正もしてくれるようなので、実行してみます。

typos --write-changes

20 程度のファイルの typo が全部治りました...。ci として組み込んでおけば大量の typo を防止できそうです...。特に我々のような非ネイティブは typo に気づきにくいですからね。 こういうふうな自動検知は非常に大切です。それでは今回はこのへんで。