U+0008等の制御文字を検知・除去してくれる textlint-rule-no-control-character を公開しました
背景
Macで入力されたテキストに、偶にU+0008(BACKSPACE)やU+000B(垂直タブ)といった制御文字が混在しているということがあり、去年仕事で悩まされることがありました。
最近でも制御文字が混在しているのを見つけて修正Pull Request送ったりもしました。
macOSだと何もないように見えても、Windowsだと豆腐が見えます。
この辺りtextlintで自動的に検知や修正やってくれそうと思い、自分でルールを作ってみました。それが以下になります。
GitHub
npm
使い方
textlint自体の使い方はドットインストールに動画があります。
このルールをtextlint導入済みプロジェクトに追加するためにパッケージをインストールします。
npm install textlint-rule-no-control-character
次に.textlintrcにこのルールを使うと記述します。
{
"rules": {
"textlint-rule-no-control-character": true
}
}
検知は textlint {filename} で以下のように検知できます。
自動修正にも対応しており、--fixオプションをつけるだけでできます。
やりました😉
おまけ:Visual Studio Codeにはプラグインがあるよ
この制御文字問題はみんな悩まされているようなので、それを対応するプラグインがすでにあります。
感想…?
textlintルールはTypeScriptで作れるので勉強中の身としてはありがたかったです。
以下のコマンドで基本プロジェクトが作れるので中身をサクッと書き換えれば簡単にルールが作れました。
npx create-textlint-rule {rule-name} --typescript
今回はじめてnpmパッケージ公開しました。アカウント作って設定してpublishするだけでした。簡単!
そして公開してから既に同様のtextlint-ruleがあるのを発見しました😇
😉