😞
textlint
承前
を元に設定しようとしたが、かなり苦しんだ。
textlint
そもそもEmacsからtextlintが呼び出せなかった。
Emacsからtextlintを呼び出せるように/opt/homebrew/binにシンボリックリンクを作成。
% ls -l /opt/homebrew/bin/textlint
ls -l /opt/homebrew/bin/textlint
lrwxr-xr-x 1 XXXXXX admin 44 Jul 30 16:20 /opt/homebrew/bin/textlint -> ../lib/node_modules/textlint/bin/textlint.js
ちなみにEmacsのinit.elでPATH変数を定義している。
(setenv "PATH" "/opt/homebrew/bin:/opt/homebrew/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin:/Library/Apple/usr/bin")
よくよく環境を確認したらEmacsのPATH変数に「/opt/homebrew/opt/node@16/bin」を追加してもよかった。
ルールを.textlintに定義。
{
"rules": {
"preset-ja-technical-writing": true,
"no-dropping-the-ra": true
}
}
ところがこれだけだと「.org」「.howm」ファイルがtextlintの対象にならなかった。
textlintをデバックオプションで動かしてはじめて対象になってないことに気づく。
textlint --debug a.org
<割愛>
textlint:engine-core No Process files that are un-support extensions: [ '/Users/XXXXXX/a.org' ] +1ms
「.org」「.howm」を対象に。
下記のように指定したら有効になったが、これが正しい対応なのか、わからない。
{
"plugins": {
"@textlint/markdown": {
"extensions": [".howm", ".org"]
}
},
"rules": {
"preset-ja-technical-writing": true,
"no-dropping-the-ra": true
}
}
% cat a.org
cat a.org
今日は、天気が良さそうに思います。
食べれる。
% textlint a.org
textlint a.org
/Users/XXXXXX/a.org
1:13 error 弱い表現: "思います" が使われています。 ja-technical-writing/ja-no-weak-phrase
2:3 error ら抜き言葉を使用しています。 no-dropping-the-ra
✖ 2 problems (2 errors, 0 warnings)
flycheck
init.elに下記を追加して。
(add-hook 'after-init-hook #'global-flycheck-mode)
を元にチェッカーをでっちあげる。
;; textlint用のチェッカー
(flycheck-define-checker textlint
"A linter for text."
:command ("textlint" "--format" "unix" "--plugin" "org" 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 org-mode))
Discussion