🌉 kakehashi v0.0.13リリース!Markdownのコードブロックみたいな埋め込みコードの診断に対応!

by
カテゴリ:
タグ:

kakehashi v0.0.13をリリースしました!

kakehashiは、LSPに対応するエディタに対して以下のような機能を提供する言語サーバーです。

  1. 任意言語のシンタックスハイライト
  2. Markdown中のコードブロックのような埋め込みコードに対するコード補間、定義ジャンプ、ホバー

そして、v0.0.13ではコードの診断に対応しました。動画ではPythonコードをpyrightで診断した結果を表示しています。

現時点の制限として、診断の表示には橋渡しする言語サーバーがpull型の診断に対応している必要があります。

実はLSPの仕様としては診断には2つの方法があるのですね。

pull型の方が後から追加された都合で、publishDiagnosticsしかサポートしていない言語サーバー(例: lua-language-server)があり、これらはまだ未サポートです。

kakehashi自体はpull/pushどちらを通じてでもクライアントに診断結果を渡せます。エディタによっては診断の重複表示が発生するので、良い感じに設定してください。たとえば私はkakehashiに限ってpublishDiagnosticsを無視するようにNeovimで設定しています。

vim.lsp.handlers["textDocument/publishDiagnostics"] = function(err, result, ctx)
    local client = vim.lsp.get_client_by_id(ctx.client_id)

    local ignore_pull = { "kakehashi" }
    if client and vim.tbl_contains(ignore_pull, client.name) then
      return
    end

    return vim.lsp.diagnostic.on_publish_diagnostics(err, result, ctx)
end

ENJOY!

このブログもkakehashiを使いながら書いており、大分安定してきたなという感触があります。ぜひ使ってみてGitHubのスターやスポンサーを通じて応援いただけると嬉しいです!