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