WebAssembly Language Tools aims to provide and improve the editing experience of WebAssembly Text Format. It delivers deep and smart static analysis, precise type checking, and full-featured editor integration — plus a configurable formatter — making WebAssembly development fast, safe, and joyful.
Smart, zero-config tooling for confident WebAssembly development:
- 🌐 WebAssembly 3.0 Ready
Full core spec support (GC, exceptions, etc.) and ongoing Phase 4 & 3 proposals — code with tomorrow's standards today. - 🔍 Deep Semantic Checks
Powered by Control Flow Analysis (CFA) for precise unreachable code detection, along with checks for uninitialized locals, written-but-never-read locals, and undefined and unused items. - ⚖️ Precise Type Safety
Comprehensive type checking with friendly error messages and subtyping relationship validation. - 🔒 Mutability Guard
Catches accidental mutations of immutables and redundant mutable declarations. - 🎨 Highly Configurable Formatter
Works out of the box while offering more than 10 formatting options for flexible and personalized code style. - 🔧 Smart Code Actions
Provides around 20 practical code actions to assist with quick fixes, refactoring, and code improvements. - ⚡ Near-instant Feedback
Deeply tuned and heavily optimized — silky smooth even on huge modules. - 💡 Full Editor Experience
Code completion, hover, go-to-definition, find references, rename and more work out of the box in VS Code, Zed, Neovim, Emacs, and Helix.
New to WebAssembly tooling? Start coding with confidence — errors become guidance, not frustration.
Code Completion
Go to Definition
Find References
Hover
Rename
Document Symbols
Diagnostics
Inlay Hint
Code Action
Formatting
Semantic Highlighting
Call Hierarchy
Signature Help
Type Hierarchy
Open vscode.dev or github.dev, then search and install the gplane.wasm-language-tools extension.
After installed, open or create a ".wat" file to try it out.
- Visual Studio Code: Install the WebAssembly Language Tools extension.
- Zed: Install the WebAssembly Text Format extension.
- Neovim: Built-in support in nvim-lspconfig with name
wasm_language_tools. - Emacs: lsp-mode, Eglot, and lsp-bridge all have built-in support.
- Helix: Built-in support.
For other editors and advanced configurations, please refer to the editor guide.
We've provided pre-built binaries on GitHub Releases. You can download it according to your platform, then extract it from the compressed file. Or, read the documentation for alternative installation methods.
Please visit the documentation website for configuration and diagnostics explanation.
MIT License
Copyright (c) 2024-present Pig Fang