VS Codeでtextlintがリアルタイムで動かない原因|サブフォルダ・workspace問題

この記事の内容について、業務や開発でお困りの場合は個別に対応できます。

※この記事は、VS Codeでtextlintを設定したにもかかわらず「リアルタイムの波線が出ない」問題に実際にハマった体験をもとに書いています。CLIでは動くのにエディタでは反応しない――その原因は、設定ではなくworkspaceの開き方でした。

VS Codeで日本語文章をリアルタイムに校正できるtextlintは非常に便利なツールですが、実際に使ってみると「なぜか動かない」「波線が一切出ない」といった状況に陥ることがあります。私自身も、設定を一通り終えたはずなのにまったく反応せず、かなりの時間を溶かしました。

結論から言うと、原因はtextlintそのものではなく、VS Codeのworkspaceの開き方と、node_modulesの置き場所でした。この記事では、その失敗談と、再現性の高い解決策をまとめます。


なぜVS Codeでtextlintが動かなくなるのか

textlintのCLI(npx textlint *.mdなど)は正常に動くのに、VS Code上ではリアルタイムの波線が一切出ない。この現象は珍しくありません。

原因は、VS Codeのtextlint拡張が**「ワークスペースのルート」を基準に設定ファイルとnode_modulesを探す**という仕様にあります。

たとえば、次のような構成です。

メインフォルダ/
├ 他の作業フォルダ
 └ サブフォルダ/
├ node_modules/
├ .textlintrc
└ *.md

この状態でVS Codeを「メイン」フォルダごと開いてしまうと、textlint拡張はルート直下に設定やnode_modulesを見つけられず、結果として何も起きません。CLIはカレントディレクトリ基準で動くため、ここで挙動が分かれます。


実際にやってしまった失敗

私の場合、textlint関連の設定やインストールはすべてサブフォルダ側で行っていました。ところがVS Codeでは、無意識にさらに上位のフォルダを開いたまま作業していました。

その結果、

  • CLIでは動く
  • VS Codeでは波線が出ない
  • 設定を見直しても原因が分からない

という状態に陥りました。

↑実際の画像。Lintingされてないですね・・・。


解決策:確実に直す方法

対処法1:textlintを入れたフォルダをそのまま開く

もっとも確実なのは、node_modulesと.textlintrcが存在するフォルダを、VS Codeのワークスペースとして直接開くことです。

VS Codeのメニューから「フォルダーを開く」を選び、textlintをインストールしたフォルダを指定します。これだけで、リアルタイムの波線が復活するケースがほとんどです。

対処法2:Multi-root Workspaceを使う

上位フォルダ全体も見渡したい場合は、Multi-root Workspaceが有効です。

  • 上位フォルダを追加
  • textlintを入れたサブフォルダも追加
  • ワークスペースとして保存

この構成にすると、VS Codeはtextlint用フォルダを正しく認識しつつ、他の作業フォルダも同時に扱えます。


設定は最小構成から始める

動作確認の段階では、.textlintrcはできるだけシンプルにするのがおすすめです。

{<br>"rules": {<br>"preset-jtf-style": true<br>}<br>}

オプションや個別ルールの調整は、リアルタイム動作を確認してから段階的に行う方が安全です。


まとめ

VS Codeでtextlintが動かない原因の多くは、設定ミスではなくworkspaceとフォルダ構成のズレです。

textlintは強力ですが、VS Code拡張としてはやや繊細な面があります。まずは「どのフォルダをワークスペースとして開いているか」を疑うことで、無駄な試行錯誤を避けられます。

無事にLintingされました~!よかった。


でも結局、校正判断は人間ですから・・・。ということで以下の本がおすすめです。

『みんなの校正教室』大西寿男 著、2025年1月10日、創元社 刊
https://amzn.to/3XTH4qc

ZIDOOKA!

この記事の内容について、対応できます

この記事に関連する技術トラブルや開発上の問題について個別対応を行っています。

個別対応は3,000円〜 内容・工数により事前にお見積りします
最後までお読みいただきありがとうございました

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

AI活用に関するポリシー

当サイトでは、記事の執筆補助にAIを活用する場合がありますが、全面的な委任は行いません。