WIDL is an IDL for generating cross-language bindings to enable smart contract development on WeilChain. A single .widl file serves as the source of truth for:
Generating server and client-side bindings in Rust, Go, C++, and TypeScript
Producing documentation
Enabling editor tooling via the language server
Features
Syntax highlighting for .widl files
Real-time diagnostics — errors and warnings are reported as you type, powered by the WIDL language server
Multi-language validation — checks that identifiers don't collide with reserved keywords across all supported target languages
Requirements
The extension communicates with the WIDL language server (lsp) binary over stdio. You must build or download it and set its path in settings.
Build the LSP binary:
git clone https://github.com/weilliptic-inc/widl.git
cd widl/bin/lsp
cargo build --release
# Binary is at: target/release/lsp
Extension Settings
Setting
Default
Description
widl.lspPath
""
Absolute path to the WIDL language server executable
widl.maxNumberOfProblems
100
Maximum number of diagnostics reported per file
widl.trace.server
"off"
LSP communication tracing (off / messages / verbose)
Usage
Set widl.lspPath to the path of your lsp binary.
Open any .widl file — syntax highlighting and diagnostics activate automatically.
Use the widl CLI to generate bindings:
widl check Contract.widl
widl generate Contract.widl client rust
widl generate Contract.widl server go