Skip to content

feat: LSP server and editor plugins#132

Open
danieljohnmorris wants to merge 1 commit intomainfrom
feature/lsp-editor-plugins
Open

feat: LSP server and editor plugins#132
danieljohnmorris wants to merge 1 commit intomainfrom
feature/lsp-editor-plugins

Conversation

@danieljohnmorris
Copy link
Collaborator

Summary

  • LSP server (src/lsp/mod.rs, 775 lines) — tower-lsp backend behind --features lsp flag, activated via ilo lsp subcommand
    • Diagnostics on change (lex → parse → verify pipeline)
    • Hover with type info for builtins and user-defined symbols
    • Go to definition for functions and types
    • Completions for functions, builtins, types, keywords
    • Document symbols for all declarations
  • VS Code extension (editors/vscode/) — TextMate grammar + LSP client
  • Neovim plugin (editors/nvim/) — Vim syntax highlighting + LSP config + ftdetect

Usage

cargo build --features lsp
ilo lsp  # starts LSP on stdio

Test plan

  • cargo build --features lsp succeeds
  • cargo test — all 3,359 tests pass
  • LSP initialize handshake verified via stdio
  • Install VS Code extension and verify syntax highlighting
  • Configure Neovim and verify LSP diagnostics

LSP server (src/lsp/mod.rs):
- tower-lsp backend behind --features lsp flag
- Diagnostics via lex/parse/verify pipeline
- Hover with type info for builtins and user-defined symbols
- Go to definition for functions and types
- Completions for functions, builtins, types, keywords
- Document symbols for all declarations
- Activated via `ilo lsp` subcommand

VS Code extension (editors/vscode/):
- TextMate grammar covering all ilo syntax
- LSP client launching `ilo lsp` as stdio server
- Language configuration (brackets, comments, auto-closing)

Neovim plugin (editors/nvim/):
- Filetype detection for .ilo files
- Vim syntax highlighting
- LSP client configuration via lua/ilo/lsp.lua
- Ftplugin settings (commentstring, indent)
@codecov
Copy link

codecov bot commented Mar 15, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant