ForgeLS is a Language Server Protocol server for smart contract languages. It runs over stdio and currently supports Solidity, with architecture ready for Noir and other languages.
- Diagnostics with UTF-16 positions, debounced publish, clear on close.
- Hover, completion, and goto-definition for Solidity.
- Multi-root workspaces, strict LSP lifecycle, TOML config with log levels.
Requires Rust stable with cargo.
cargo install --path crates/forgelsOr run from source:
cargo run -p forgelsThe server speaks JSON-RPC over stdio. Point any generic LSP client at the forgels binary with language id solidity for .sol files.
Optional forgels.toml next to the binary working directory:
publish_delay_ms = 200
log_level = "warn"Flags: --log-level <error|warn|info|debug|trace>. Flags win over the file. Missing or broken files fall back to defaults with a stderr warning.
- Docs index: map of all official docs.
- Architecture: crate layout and dependency rules.
- Syntax toolkit: shared AST, lexer, and parser base.
- Solidity support: token and grammar status.
- Noir support: token and grammar status.
- LSP 3.18 reference: protocol subset in use.
cargo check --workspace
cargo test --workspace
cargo fmt --all
cargo clippy --workspace -- -D warningsRead AGENTS.md before changing code. It defines the workspace split, Plane-first workflow, and skill setup.
ForgeLS Contributors. See AGENTS.md for workflow, skills, and review gates.
MIT OR Apache-2.0. See Cargo.toml.
