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-lsp が bin に登録されます。
pnpm build
quarto-dsh-lsp手動テスト: initialize リクエストをパイプで送信できます。
関連
- scan(記法検査) — 診断と同じ検査ロジック