coc.nvim + coc-diagnostic + actionlintで GitHub Actions workflowを快適にlintできるようにしてみた
Workflowのチェックができるactionlintを公開された方がいたので、coc.nvimを通してneovim上で手軽にlintできるようにしてみました。
GitHub Actions Workflowのlinterを公開された方がおられたので、ものは試しと業務で使っているWorkflowをチェック等していました。引っかかるところがチラホラ。
CICD上でのチェックを入れようと思いつつも、やっぱりエディタでの入力時に使えるのが一番です。既に導入済みのcoc.nvimとcoc-diagnosticを使って、nvim上で補完できるようにしてみました。
coc-diagnostic用の設定
特に注記する場所はありません。強いていえば args
に忘れず -oneline
をいれておくあたりです。
{ "languageserver": { "dls": { "command": "diagnostic-languageserver", "args": ["--stdio"], "filetypes": ["yaml"], "initializationOptions": { "cacheDirectory": "/tmp/", "linters": { "actionlint": { "command": "actionlint", "rootPatterns": [], "debounce": 100, "isStdout": true, "isStderr": false, "offsetLine": 0, "offsetColumn": 0, "args": ["-oneline", "%relativepath"], "sourceName": "actionlint", "formatLines": 1, "formatPattern": [ "^([^:]+):(\\d+):(\\d+):\\s+(.*)$", { "sourceName": 1, "sourceNameFilter": true, "line": 2, "column": 3, "endLine": 2, "endColumn": 3, "message": [4] } ], "parseJson": { "sourceName": "file", "sourceNameFilter": true, "line": "line", "column": "column", "endLine": "endLine", "endColumn": "endColumn", "message": "${message}" } } }, "filetypes": { "yaml": "actionlint", } } } } }
エラーを一覧で見たい場合は、:CocDiagnostics
を使います。
あとがき
検証には手間どりましたが、ActionsのWorkflow実行でエラーになる部分の察知をneovim上で手軽に行えるようになりました。これで今までやらかしの多かったWorkflowのtypoも手間掛けずに減りそうなので一安心です。