Coc.nvimを触ってみようアドベントカレンダー 9日目 – coc-cfn-lint

とっても楽しいcoc.nvimを触ってみようというアドベントカレンダーです。9日目はcoc-cfn-lint。CFnのテンプレート(JSON/YAML)やSAMのテンプレートを編集する必要がでた場合にとても役立ちます。
2021.12.09

Coc.nvimを触ってみよう Advent Calendar 2021 9日目です。

今回は coc-cfn-lint です。

coc-cfn-lint について

cfn-lintのcoc拡張です。CloudFormation用のcoc linter拡張は他に見当たらなかったため、唯一無二となります。CFn及びSAMをJSON/YAMLの2形式でカバーしているため、不足はないはずです。

プロジェクトディレクトリ内の設定ファイル(cfnlintrc.cfnlintrc.yaml.cfnlintrc.yml)を検知するため、既に設定がある状態でも問題なく利用できます。

coc-cfn-lint をインストールする

vimを起動した状態で以下のコマンドを実行します。

:CocInstall coc-cfn-lint

なお、cfn-lintに依存しているため、まだインストールしていない場合は併せて導入します。

brew install cfn-lint

使ってみる

cfn-lintをhomebrew経由でインストールしている場合には初期設定でもほぼ問題なく動作しますが、pip経由でインストールしている場合はパスが環境で異なってくるためにcoc-settings.jsonでの指定はほぼ必須です。

{
   "cfnlint.path": '/path/to/cfn-lint' 
}

初期設定ではファイルを開いたり保存するとlinterが走ります。

あとがき

最近はcdkを専ら使うことが多くなりましたが、GitHub ActionsのOIDCプロバイダのようにサンプルとして提示する場合にはcdkだと使いづらいケースもあります。思わぬタイミングでCFnテンプレートを提示された時に役立ちな拡張です。