WikiLink LSP
Markdown wikilink intelligent navigation and completion extension for VSCode. Supports [[document]] syntax for fast knowledge base navigation.
Features
- Smart Completion - Type
[[ to show document list with title, slug, tags, and aliases search
- Jump to Definition - Ctrl+Click or F12 to jump to target document
- Hover Information - Mouse hover shows document title, slug, and tags
- Auto Indexing - Automatically re-index on file changes
- Zero Dependencies - Pure VSCode native API, no external modules required
Installation
Install from VSIX
- Open VSCode
- Press
Ctrl+Shift+P (Mac: Cmd+Shift+P)
- Type:
Extensions: Install from VSIX...
- Select the
.vsix file
- Click Install
Command Line Installation
code --install-extension wikilink-lsp-*.vsix
Configuration
Add to your settings.json:
{
"wikilink-lsp.workspaceRoot": "/path/to/your/knowledge-base",
"wikilink-lsp.autoIndex": true,
"wikilink-lsp.enableHover": true,
"wikilink-lsp.enableCompletion": true,
"wikilink-lsp.maxCompletionItems": 50
}
Configuration Options
| Option |
Description |
Default |
workspaceRoot |
Knowledge base root directory path |
Auto-detect workspace |
autoIndex |
Auto-index documents on startup |
true |
enableHover |
Enable hover information |
true |
enableCompletion |
Enable auto-completion |
true |
maxCompletionItems |
Maximum completion items to show |
50 |
Usage
Basic Syntax
[[slug]] # Simple link
[[slug|display]] # Custom display text
Keyboard Shortcuts
| Action |
Shortcut |
| Trigger completion |
Type [[ |
| Jump to definition |
F12 / Ctrl+Click |
| Hover information |
Mouse hover |
| Re-index documents |
Ctrl+Shift+P → WikiLink: Re-index Documents |
Example
# Research Notes
See [[getting-started]] for detailed analysis.
Related topics:
- [[benchmark-evaluation]] - Performance benchmarks
- [[api-reference]] - API documentation
- [[advanced-usage|Advanced Guide]] - Custom display text
Frontmatter Support
Add frontmatter to Markdown files for enhanced functionality:
---
title: My Document
tags: [reasoning, llm, research]
aliases: [my-doc, MyDoc]
created: 2026-03-20
---
# My Document
Content here...
This enables linking via:
[[My Document]] - By title
[[my-doc]] - By alias
[[reasoning]] - By tag search
Commands
WikiLink: Re-index Documents
Manually trigger document indexing. Use when adding new files or if indexing issues occur.
WikiLink: Show Indexed Documents
Browse all indexed documents and quickly open target documents.
Output Panel
Press Ctrl+Shift+U to open the Output Panel, then select "WikiLink LSP" to view logs:
WikiLink LSP is activating...
Workspace root: /path/to/knowledge-base
WikiLink LSP is now active
Starting document indexing...
Found XX Markdown files
Indexing complete: XX documents
Troubleshooting
Document Not Found
- Check if
workspaceRoot is configured correctly
- Run "WikiLink: Re-index Documents" command
- Verify filename is correct (without .md extension)
Completion Not Triggering
- Ensure you are in a Markdown file
- Check
enableCompletion configuration
- Confirm you typed
[[ trigger characters
Extension Not Activating
- Open any
.md file
- Check Output Panel for "WikiLink LSP" channel
- Verify extension status is "Enabled" in Extensions panel
Technical Architecture
- Zero External Dependencies - Uses VSCode native API only
- Async Indexing - Background execution, non-blocking activation
- Smart Caching - Map data structure for O(1) lookups
- Debounced Updates - Re-index 1 second after file changes
Development
Build
cd vsc-extension
npm install
npm run compile
Package
npm run package
Debug
- Open
vsc-extension directory
- Press F5 to launch debug
- Test extension in new window
Update Log
v1.2.0 (2026-03-21)
- Removed all external dependencies, using VSCode native API
- Optimized log output, removed emoji
- Improved frontmatter parsing logic
- Enhanced documentation and code comments
v1.1.x
- Fixed module packaging issues
- Optimized activation flow
- Added file change listeners
v1.0.0
License
MIT License
Contributing
Issues and Pull Requests are welcome!