Warning: Alpha Software
This is an experimental learning project, not ready for production use. While it demonstrates LSP concepts and works for small personal projects, it has significant limitations.
EiffelStudio remains the recommended IDE for serious Eiffel development.
Overview
simple_lsp is an experimental Eiffel Language Server Protocol implementation for Visual Studio Code. It is a hobby project exploring LSP concepts, suitable for learning and small personal projects only.
Built with the Simple Eiffel ecosystem as a learning exercise in LSP server development.
Known Limitations
Being upfront about the current state:
| Issue | Description |
|---|---|
| False Positives | Parser reports errors on valid code, including EiffelStudio kernel classes |
| Crashes on Large Projects | May crash when opening large codebases like Gobo |
| Slow Indexing | Initial workspace scan can take 10-15 minutes on large codebases |
| Basic Completion | Shows all symbols, not context-aware |
| Limited References | Finds definitions, not all usages |
| No ECF Support | Does not read project configuration files |
| Windows Only | Linux/macOS builds not available |
Who Is This For?
- Learners exploring how LSP servers work
- Experimenters wanting to try VS Code with Eiffel on small projects
- Contributors interested in helping improve Eiffel tooling
Not for: Production development, large projects, or professional Eiffel work.
Experimental Features
These features work to varying degrees on small projects:
Navigation (Basic)
Go to Definition
Ctrl+Click or F12 to jump to class or feature definitions.
Find References
Shift+F12 to find symbol definitions (not all usages).
Document Symbols
Ctrl+Shift+O to see features in the current file.
Documentation (Basic)
Hover Documentation
Hover over identifiers to see feature signatures and comments.
Code Intelligence (Limited)
Code Completion
Ctrl+Space for basic autocomplete (shows all symbols, not context-aware).
Quick Start
- Download from Releases
- Run the installer
- Open VS Code with a folder containing
.efiles - Try it on a small project only
Contributing
Contributions welcome! We especially appreciate:
- Bug reports with reproduction steps
- Parser improvements (reducing false errors)
- Performance optimizations
- Linux/macOS testing and builds