Skip to content

Full-featured language server and other tools for WebAssembly, making WebAssembly development fast, safe, and joyful.

License

Notifications You must be signed in to change notification settings

g-plane/wasm-language-tools

Repository files navigation

WebAssembly Language Tools

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.

Why WebAssembly Language Tools?

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.

Editor Features

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

Usage

Try it Online

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.

Editor Support

For other editors and advanced configurations, please refer to the editor guide.

Binaries

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.

Documentation

Please visit the documentation website for configuration and diagnostics explanation.

License

MIT License

Copyright (c) 2024-present Pig Fang

About

Full-featured language server and other tools for WebAssembly, making WebAssembly development fast, safe, and joyful.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Languages