Pest

vscodeでパーサージェネレータpest独自形式のコードをフォーマットする

概要

rustのパーサージェネレータにpestというライブラリがある。 パーサーを生成する際に独自のpest形式のファイルを利用するが、 2026/02/17現在、既存のvscodeのプラグインでフォーマットできない。

そこで汎用的なvscodeのフォーマットのラッパープラグインである vscode-custom-local-formattersと cargoでインストールできるpest-fmtを用いて*.pest形式のファイルを フォーマットする方法を示す。

前提条件

前提条件はつぎのとおりである。

  • rustのパッケージマネージャであるcargoがインストールされていること
    • インストール方法は公式サイトを参照してください。
    • ${HOME}/.cargo/binがPATHに登録されていること
  • シェル(例: bash)が動作すること

手順

最初にpestのフォーマッターであるpestfmtをインストールする。

cargo install pest_fmt

次にvscodeで次のプラグインをインストールする。

  • vscode-custom-local-formatters

そして次のようにsettings.jsonに書く。

"customLocalFormatters.formatters": [
    {
        "languages": [
            "pest"
        ],
        "command": "bash -c \"pestfmt ${file} >/dev/null && cat ${file}\"",
    }
]

Tip