PIYO - Tech & Life -

textlintの結果をEmacs上で確認できるようにした

昨日テキスト校正くんが便利だという記事を書いたばかりではありますが、Visual Studio CodeではなくEmacsで書けるのが望ましいです。

いずれはテキスト校正くんと同様のチェックをかけたいものの、まずは以前textlint導入記事で導入したルールを使って判定するところまで持っていきます。

Emacs上での結果表示にはflycheckという有名な拡張を使用します。

textlint再導入

textlintは.textlintrcファイルにより、プロジェクトごとに独自のルールによって文章校正が可能です。 とはいったものの、僕にとってそれはオーバースペックです。 個別のルールまでは不要のため、グローバルにtextlintを導入しました。

先日の記事でも導入した、textlint-rule-preset-ja-technical-writingを利用することにします。

文書を自動チェックするtextlintを日本語の技術ブログにも使おう - PIYO - Tech & Life -
日本語にtextlintをかけると便利、という話をチラっと聞いたのでブログに応用すべく導入してみました。 まず、textlint自体がこちら。 GitHub - textlint/textlint: The pluggable natural language linter for text and markdown. The pluggable natural language linter for text and markdown. - textlint/textlint github.com そして、日本

今回はグローバルにインストールしますので、-gオプションをつけてインストールします。

% npm install -g textlint
% npm install -g textlint-rule-preset-ja-technical-writing

また、設定ファイルはホームディレクトリに設置します。

% cat ~/.textlintrc
{
    "rules": {
        "preset-ja-technical-writing": true
    }
}

これでtextlintの導入は完了ですね。

flycheckの設定

Emacsユーザーでflycheckを使っている方は多いと思われますので、flycheck自体のインストールは割愛します。

こちらのGistを参考に、markdown-modeでtextlintを使う設定を↓のように書きました。

textlint for emacs flycheck · GitHub
textlint for emacs flycheck. GitHub Gist: instantly share code, notes, and snippets.
(flycheck-define-checker textlint
  "A linter for Markdown."
  :command ("textlint" "--format" "unix" source)
  :error-patterns
  ((warning line-start (file-name) ":" line ":" column ": "
     (id (one-or-more (not (any " "))))
     (message (one-or-more not-newline)
       (zero-or-more "\n" (any " ") (one-or-more not-newline)))
     line-end))
  :modes (text-mode markdown-mode gfm-mode))

(add-hook 'markdown-mode-hook
          '(lambda ()
             (setq flycheck-checker 'textlint)
             (flycheck-mode 1)))

この設定を評価後にMarkdown形式のファイルを開くとチェック結果がきちんと対象箇所に波線で表示されるようになりました。

校正くんが提供してくれる漢字を開くルールや技術用語に関するルールなどはおいおい取り込んでみたいと考えています。