Markdown Language Server by Bitno
A lightweight, private and secure Markdown formatter and linter for VS Code.
Early development: this extension is still being built. Expect missing features, rough edges and breaking changes between versions.
Lightweight, private and secure by design
Built by a developer, for developers.
- Lightweight: it starts only when you open a Markdown document. dprint and markdownlint come built in, so there's nothing to install, and markdownlint checks in a background Worker, so formatting and typing don't wait for it.
- Private: no telemetry, no account, no cloud. The extension downloads and contacts nothing over the network; dprint and markdownlint ship with it. It reads only your open documents and the
.markdownlint* and .editorconfig files that apply to them.
- Secure: your project's markdownlint configuration never runs code:
.cjs and .mjs configuration files, custom rules and markdown-it plugins are skipped. Fixes reach your document as edits you can undo, never written to disk behind your back.
Features
- Fast formatting, built in: Format Document aligns tables like real tables, pads each column as its
:--, :-: or --: says, and prints lists, emphasis and headings in one style, keeping your line breaks, and your line endings unless .editorconfig sets end_of_line. Format Selection reformats only the blocks you select. It formats a 1 MB document in about 50 ms; nothing to install.
- markdownlint, built in: markdownlint's checks as you type, each linked to its rule's documentation, with its own fixes as quick fixes, a quick fix that disables a rule for one line, and Fix all markdownlint findings, also on save with
"editor.codeActionsOnSave": { "source.fixAll.markdownlint": "explicit" }. Its rules are set to agree with the formatter, so formatting never creates a finding. Your .markdownlint* and .markdownlint-cli2.* files apply as markdownlint-cli2 reads them, so the editor reports what CI does; nothing to install.
- Server status in the status bar: an icon with a spinner while the server starts, and red when it failed to start; hover it for the version, the server's state and the Node it runs on.
| |