Tooling
Keel provides a comprehensive set of development tools.
Core Tools
| Tool | Description |
|---|---|
| CLI | Unified command-line interface (keel run, keel repl, keel fmt, keel lsp) |
| REPL | Interactive environment |
| Language Server | IDE features and editor setup |
| Jupyter Kernel | Interactive notebooks |
Editor Support
| Editor | Syntax Highlighting | LSP Features | Plugin/Extension |
|---|---|---|---|
| VS Code | TextMate + tree-sitter | Full LSP | keel-vscode |
| Positron | TextMate + tree-sitter | Full LSP + data explorer, variable pane | keel-vscode |
| Helix | tree-sitter | Full LSP | Built-in config |
| Zed | tree-sitter | Format on save, auto-indent, symbol nav | keel-zed-extension |
| Neovim | tree-sitter | Full LSP | Manual config |
| Jupyter | Optional extension | Completion, hover | keel-jupyter-kernel |
| Emacs | Planned | Planned | Coming soon |
See the Language Server & Editor Setup guide for configuration instructions.
Language Server
The Keel Language Server (keel-lsp) provides IDE features:
- Diagnostics — Real-time lex and parse error reporting
- Completion — Variables, functions, enums, modules, keywords, with dot-completion for module members
- Advanced completions — File paths, pattern matching, imports, record fields, type annotations, dict keys
- Go-to-definition — Jump to symbol declarations
- Find references — Locate all occurrences of a symbol
- Rename — Rename a symbol and all its references
- Hover — Type signatures, documentation with examples, doc comments
- Signature help — Parameter information when calling functions
- Semantic tokens — Parser-driven syntax highlighting
- Code lens — Reference counts above declarations
- Document symbols — Outline of functions, enums, modules
- Workspace symbols — Search across all files
- Folding ranges — Collapsible code regions
Tree-Sitter Grammar
The keel-tree-sitter grammar provides syntax highlighting for:
- Keywords, functions, types, constructors
- Operators including pipes (
|>) and composition (>>) - Pattern matching syntax
- Comments (line
--and block{- -})
Quality Tools
| Tool | Description |
|---|---|
| Formatter | Code formatting |
| Testing | Test framework (planned) |
| IO Security | File system and network access control |
| Package Manager | Dependency management (planned) |