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