このエントリでは、 vscodeでRe:View(.re)ファイルへのtextlintを実行する設定方法を示します。

次のvscodeの外部ツールとの連携方法を参考とした手順です。

Integrate with External Tools via Tasks | Visual Studio Code
https://code.visualstudio.com/docs/debugtest/tasks

作業ディレクトリの作成とtextlintのインストール

作業ディレクトリを作ります。

$ mkdir vscode-textlint-study && cd $_

texlintと各種ルール・プラグインを追加します。

$ npm add textlint textlint-plugin-review textlint-rule-preset-ja-technical-writing

textlintの設定

textlintの設定ファイルを作成します。

.textlintrc

{
  "rules": {
    "preset-ja-technical-writing": {
      "max-ten": {
          "max": 6
      },
      "sentence-length": {
          "max": 160
      }
    }
  },
  "plugins": [
    "review"
  ]
}

この段階で、コマンドからtextlintを実行出来るようになります。

vscodeの設定

taskの追加

vscodeにtextlintのtaskを追加します。

.vscode/tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "textlint",
            "type": "shell",
            "command": "node_modules/.bin/textlint -f compact ${relativeFile} || exit 0",
            "presentation": {"reveal": "silent", "revealProblems": "onProblem", "close": true},
            "problemMatcher": {
                "owner": "textlint",
                "fileLocation": ["absolute"],
                "pattern": [
                    {
                        "regexp": "^(.*):\\s+line\\s(\\d+),\\s+col\\s+(\\d+),\\s+(.*)\\s+-\\s+(.*)$",
                        "file": 1,
                        "line": 2,
                        "column": 3,
                        "severity": 4,
                        "message": 5,
                    }
                ]
            }
        }
    ],
}

この段階で、
Ctrl+Shift+P → 「Tasks: Run Task」
から、textlintタスクを呼び出せるようになります。

taskの自動実行

タスクの実行を手動では無く自動化するために、
「ファイルの自動保存」と「保存時のタスク実行」を設定します。

保存時のタスク実行は、以下の拡張を利用するので、インストールしておきます。

Trigger Task on Save | Gruntfuggly | VisualStudio Marketplace
https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.triggertaskonsave

次の設定ファイルで、「ファイルの自動保存」と「保存時のタスク実行」を設定します。

.vscode/settings.json

{
    "triggerTaskOnSave.tasks": {
        "textlint": [
            "**/*.re",
        ]
    },
    "files.autoSave": "afterDelay"
}

ここまでの設定で、
textlintの指摘を確認しながらドキュメントを書き進めることができるようになります。

以上。