Editor Integration¶
Integrate rumdl with your favorite editor for real-time linting.
VS Code / Cursor / Windsurf¶
The easiest way to integrate rumdl:
This automatically detects your editor and installs the appropriate extension.
Features:
- Real-time linting as you type
- Quick fixes for common issues
- Code formatting on save
- Hover tooltips with rule documentation
See VS Code Integration for detailed setup.
Neovim¶
Using nvim-lspconfig¶
Using null-ls / none-ls¶
local null_ls = require("null-ls")
null_ls.setup({
sources = {
null_ls.builtins.diagnostics.rumdl,
null_ls.builtins.formatting.rumdl,
},
})
Manual LSP Setup¶
vim.api.nvim_create_autocmd("FileType", {
pattern = "markdown",
callback = function()
vim.lsp.start({
name = "rumdl",
cmd = { "rumdl", "server" },
root_dir = vim.fs.dirname(vim.fs.find({".rumdl.toml", ".git"}, { upward = true })[1]),
})
end,
})
Vim¶
Using ALE¶
Format Selection¶
Helix¶
Add to languages.toml:
[[language]]
name = "markdown"
language-servers = ["rumdl"]
[language-server.rumdl]
command = "rumdl"
args = ["server"]
Zed¶
Add to settings.json:
{
"languages": {
"Markdown": {
"language_servers": ["rumdl"]
}
},
"lsp": {
"rumdl": {
"binary": {
"path": "rumdl",
"arguments": ["server"]
}
}
}
}
Sublime Text¶
Using LSP package:
{
"clients": {
"rumdl": {
"enabled": true,
"command": ["rumdl", "server"],
"selector": "text.html.markdown"
}
}
}
Generic LSP¶
Any editor supporting LSP can use rumdl:
The server communicates via stdin/stdout using the Language Server Protocol.
Format on Save¶
Most editors can be configured to format on save using rumdl's stdin/stdout mode:
This reads from stdin and outputs formatted content to stdout.