Language server and other tools for WebAssembly.
Find a file
Pig Fang 8aa5823c6b
Some checks failed
test / test (push) Has been cancelled
refactor(server): avoid lock stdin for each read
2025-06-24 12:11:45 +08:00
.github chore: apply Clippy suggestions 2025-02-15 10:42:13 +08:00
crates refactor(server): avoid lock stdin for each read 2025-06-24 12:11:45 +08:00
docs docs: add setup for coc.nvim 2025-05-23 14:51:19 +08:00
media chore: add logo 2024-12-19 23:20:02 +08:00
.editorconfig docs: setup documentation 2025-05-10 17:25:10 +08:00
.gitattributes docs: setup documentation 2025-05-10 17:25:10 +08:00
.gitignore docs: setup documentation 2025-05-10 17:25:10 +08:00
Cargo.lock refactor: clean up deprecated usage 2025-06-24 10:53:52 +08:00
Cargo.toml chore: update dependencies 2025-06-23 11:53:23 +08:00
cliff.toml chore: setup git-cliff 2025-04-29 23:08:32 +08:00
dprint.json docs: setup documentation 2025-05-10 17:25:10 +08:00
LICENSE init 2024-09-07 11:14:32 +08:00
README.md docs: update readme 2025-05-13 23:11:11 +08:00

WebAssembly Language Tools

WebAssembly Language Tools aims to provide and improve the editing experience of WebAssembly Text Format. It also provides an out-of-the-box formatter (a.k.a. pretty printer) for WebAssembly Text Format.

WasmGC is also supported.

📌 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

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, if you've installed Rust, you can run Cargo to install it globally:

cargo install wat_server

Editor Support

  • Visual Studio Code: Install the WebAssembly Language Tools extension.
  • Neovim: Built-in support in nvim-lspconfig:
    require("lspconfig").wasm_language_tools.setup({})
    
  • Zed: Install the WebAssembly Text Format extension.
  • Helix: Add the following lines to <config_dir>/helix/languages.toml:
    [language-server.wasm-language-tools]
    command = "wat_server"
    
    [[language]]
    name = "wat"
    language-servers = ["wasm-language-tools"]
    

📚 Documentation

Please visit the documentation website for configuration and diagnostics explanation.

📜 License

MIT License

Copyright (c) 2024-present Pig Fang