LSP — エディタ連携

qmd と _quarto.yml で補完と診断を提供する LSP サーバー

概要

quarto-dsh-lsp は、.qmd_quarto.yml に対して 補完診断 を提供するミニマルな LSP サーバーです(stdio 動作)。

機能

補完

  • _quarto.yml — 実在する YAML キー(project / website / format / execute …)
  • .qmd — Q markdown 記法・チャンクオプション

診断

保存(didOpen / didChange)のたびに自動で通知:

  • 未知の callout 型(callout-bogus など)
  • 未知のチャンクオプション(#| bogus など)
  • 未定義の相互参照(@fig-xxx
  • Div の開閉ミス
  • 実在しない _quarto.yml キー

エディタへの登録

VS Code(例)

settings.json:

{
  "languageserver": {
    "quarto-dsh": {
      "command": "quarto-dsh-lsp",
      "filetypes": ["qmd", "md", "yaml"]
    }
  }
}

Neovim(例)

vim.api.nvim_create_autocmd("FileType", {
  pattern = "qmd",
  callback = function()
    vim.lsp.start({ name = "quarto-dsh", cmd = { "quarto-dsh-lsp" } })
  end,
})
Tip実行

ビルド後は quarto-dsh-lspbin に登録されます。

pnpm build
quarto-dsh-lsp

手動テスト: initialize リクエストをパイプで送信できます。

関連