🚀 oak-lsp
Language Server Protocol Implementation for Oak — A complete LSP server framework for building language-aware editors and IDEs.
🎯 Why oak-lsp?
The Language Server Protocol (LSP) has become the standard for language tooling integration. oak-lsp provides a complete, production-ready LSP server implementation that works with any Oak language parser.
✨ Key Features
- 📡 Full LSP Support — Core LSP requests and notifications
- 🔧 Language Service Trait — Unified interface for language-specific features
- 📂 Workspace Management — Multi-file projects with change tracking
- 🔄 Incremental Updates — Efficient handling of text document changes
- 🛡️ Error Recovery — Robust error handling for malformed requests
🏗️ Architecture
| Module | Purpose |
|---|---|
handlers |
LSP request/notification handlers |
server |
LSP server with JSON-RPC |
service |
LanguageService trait |
types |
LSP-specific type definitions |
workspace |
File and project management |
Supported LSP Features
textDocument/completion— Code completiontextDocument/hover— Hover informationtextDocument/definition— Go to definitiontextDocument/references— Find all referencestextDocument/documentSymbol— Document outlinetextDocument/foldingRange— Code foldingtextDocument/semanticTokens— Semantic highlightingtextDocument/diagnostic— Diagnostics
🔗 Ecosystem Integration
Integrates with oak-vfs for file access, oak-hover/oak-navigation/oak-symbols for features, and any LSP-compatible editor.
📖 Documentation
For usage examples and API details, see the API documentation.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.