Typo(スペルミス)を自動で検知する
転職するたびに Spell Check の仕組みを導入しています。
今回は最新版を紹介します。
エディタの拡張機能による開発時のチェック、Git Hooks による Commit 時のチェック、GitHub Actions による Push 時(PR 上)のチェックと抜かりないようにしています。
過去の記事
第 1 弾
第 2 弾
導入方法
開発時のチェック
Visual Studio Code の拡張機能「Code Spell Checker」をインストールして完了です。
デモ
Commit 時のチェック
pre-commit フレームワークを利用しています。
pre-commit をインストールします。
brew install pre-commit
プロジェクトのルートに.pre-commit-config.yaml
を配置します。
repos:
- repo: https://github.com/streetsidesoftware/cspell-cli
rev: v6.31.0
hooks:
- id: cspell
git hook script をインストールして完了です。
pre-commit install
デモ
Push 時のチェック
プロジェクトの.github/workflows
にspell-check.yaml
を配置して完了です。
CI が Fail になるため、Merge を防ぐこともできます。
name: Spell Check
on:
push:
jobs:
spell-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: streetsidesoftware/cspell-action@v2
デモ
設定
プロジェクトのルートにcspell.config.yaml
を配置します。
$schema: https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json
version: "0.2"
language: en
dictionaryDefinitions:
- name: project-words
path: ./project-words.txt
addWords: true
dictionaries:
- bash
- filetypes
- markdown
- softwareTerms
- networking-terms
- project-words
ignorePaths:
- .gitignore
- .vscode
- log
- project-words.txt
dictionaries の一覧はここから見れます。
White List
プロジェクトのルートにproject-words.txt
を配置します。
記載した単語は検知されなくなります。
コメントも記載できます。
hoge # TODO:
fuga # FIXME:
ポイント
エディタの拡張機能による開発時のチェック、Git Hooks による Commit 時のチェック、GitHub Actions による Push 時(PR 上)のチェックの全てを CSpell で統一しているので、共通の設定が利用でき、同じ検知内容となります。
また、導入が楽になるようにしました。
(今までは出力の丁寧さから Rust 製の typos を利用していましたが、Rust のインストールが必要など導入に一手間が必要でした。)
おわりに
正しい英語を利用することは、高いソフトウェア品質の第一歩だと考えています。
仕組みで解決できるので、ぜひ導入してみてください 🙌
Discussion