A lightning-fast Markdown linter for Visual Studio Code, powered by the QuickMark LSP server written in Rust.
- Ultra-fast linting: Powered by Rust and tree-sitter for exceptional performance
- CommonMark compliance: Follows CommonMark specification
- Real-time diagnostics: Get instant feedback as you edit
- Configurable rules: Customize linting rules via
quickmark.toml - LSP integration: Full Language Server Protocol support for robust editor integration
- Install the extension from the VSCode marketplace
- Start using it immediately - the extension includes pre-built QuickMark server binaries for all major platforms
The extension automatically detects your platform and uses the appropriate bundled binary.
If you prefer to use your own QuickMark server binary:
-
Build from source:
git clone https://github.com/quickmark/quickmark.git cd quickmark cargo build --release --bin quickmark-server -
Configure the extension to use your binary:
{ "quickmark.serverPath": "/path/to/your/quickmark_server" }
The extension can be configured via VSCode settings:
quickmark.serverPath: Path to custom QuickMark LSP server executable (default:""- uses bundled binary)quickmark.configPath: Path to quickmark.toml configuration file (optional)quickmark.trace.server: LSP communication tracing level ("off","messages","verbose")quickmark.lintOnSave: Whether to lint files on save (default:true)quickmark.lintOnType: Whether to lint as you type (default:false)
Create a quickmark.toml file in your workspace root to configure linting rules:
[linters.severity]
# Configure rule severities: "error", "warning", or "off"
line-length = "warning"
heading-increment = "error"
no-duplicate-heading = "warning"
[linters.line-length]
# MD013: Line length configuration
limit = 120
heading_limit = 120
code_block_limit = 120- QuickMark: Restart Server: Restart the LSP server
- QuickMark: Show Output: Show the extension's output channel
- Open a Markdown file (
.md,.markdown, etc.) - The extension will automatically start linting
- Diagnostics will appear as squiggly underlines
- Hover over issues to see detailed messages
- Rule codes (e.g.,
line-length,heading-increment) are shown for reference
.md.markdown.mdown.mkdn.mkd.mdwn.mdtxt.mdtext
QuickMark is designed for speed:
- Rust backend: Native performance with minimal resource usage
- Tree-sitter parsing: Efficient AST-based analysis
- Single-pass architecture: Optimized for large documents
- Configurable linting: Enable only the rules you need
The extension includes pre-built binaries for all major platforms. If you encounter issues:
-
Check the output channel for detailed error messages:
View > Output > QuickMark -
Verify your platform is supported:
- Windows (x64)
- macOS (Intel, Apple Silicon)
- Linux (x64, ARM64)
-
If using a custom server path, ensure it's accessible:
/your/path/to/quickmark_server --help
-
Try clearing the server path setting to use the bundled binary:
{ "quickmark.serverPath": "" }
- Ensure
quickmark.tomlis in your workspace root - Check the configuration syntax matches the expected TOML format
- Use the restart command after configuration changes
- Disable
quickmark.lintOnTypeif typing feels slow - Use
quickmark.lintOnSavefor better performance - Configure rule severities to disable unused rules
We welcome contributions! See CONTRIBUTING.md for detailed development setup, testing instructions, and contribution guidelines.
This extension is part of the QuickMark project. See the main repository for license information.
