typos で typo を見逃さないようにしてみた(IDEや開発言語不問の方法)
はじめに
プログラミングをしていると、typoしたり、typoを見つけることありますよね。
でも、「このプルリクで修正するのは不自然だな」とか「typoを修正するプルリクを後で別途作ろう」とか思っているうちに、修正が先延ばしになったりしますよね。
この記事では、typos を使って、typoを見逃さないようにする方法を紹介します。
Docker + docker compose + typos
様々な環境で使えるように、typosの実行環境をDocker化します。
ビルドに数分かかってしまうので、Docker Hubにて、imunew/typos-cli を公開しました。
35 MBほどのビルド済みイメージをpullするだけで使えるようになりました。
Dockerfile
こちら を参考に typos が実行できる小さなイメージを作ります。
Dockerfile はこんな感じです。
docker-compose.yml
docker-compose.yml を使っている場合は、以下のような感じでソースコードと設定ファイル(typos.toml)をマウントします。
version: '3.9'
services:
spell-check:
image: imunew/typos-cli
volumes:
- ./src:/app/src:cached
- ./typos.toml:/app/typos.toml
working_dir: /app
typos.toml
こちら を参考に設定ファイルを記述します。
以下は、設定例です。
例えば、XxxRegistService は XxxRegisterService に修正しろと指摘されますが、今回はそのままにしたかったので、default.extend-wordsにRegist = "Regist"と記載します。
[files]
extend-exclude = [
"*.md"
]
# 除外する単語をここに列挙する
[default.extend-words]
Regist = "Regist"
regist register でググると、下記のような記事がヒットするので、興味のある方はどうぞ。
Makefile
pre-commit(後述)などで、docker compose run すると、the input device is not a TTY とエラーが出て失敗してしまうので、-Tを付けて実行します。
spell-check:
docker compose run --rm -T spell-check src --diff
.pre-commit-config.yaml
pre-commit でチェックする場合は、こんな感じで設定します。
repos:
- repo: local
hooks:
- id: spell-check
name: spell-check
entry: make spell-check
language: system
pass_filenames: false
.github/workflows/spell-check.yml
GitHub Actions でチェックする場合は、こんな感じですね。
typos-action を使ってもいいかもしれません。
name: spell-check
on:
push:
jobs:
spell-check:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: false
- name: Check spell
run: |
make spell-check
おわりに
いかがだったでしょうか?
今回、紹介した方法は、IDEや開発言語を選ばない方法になっているので、様々なチームで導入しやすいのではないかと思います。
これで、typoが気になるけど、指摘や修正に躊躇する日々とさよならできますね。
ではでは。
Discussion