mlua-zed is a Zed language extension for MapleStory Worlds mLua files.
This extension wraps the official MSW VS Code extension package
msw.mlua.
On first use, it queries Visual Studio Marketplace, downloads the latest VSIX
package into Zed's extension cache, and starts the bundled mLua language server
through a small Node.js LSP wrapper. The language server behavior comes from the
official MSW extension; this repository provides the Zed integration layer.
This extension has not been published to the Zed Extension Gallery yet. Install it as a Zed dev extension from a local checkout.
.mluafile association and language registration- mLua-aware Tree-sitter syntax highlighting
- Official MSW mLua language server bridge
- Completion, diagnostics, hover, references, rename, inlay hints, formatting, and semantic tokens through the bundled language server
- Semantic token rules for mLua token types
- Latest VSIX lookup with cached fallback
- Zed
- Rust installed via
rustup, which Zed requires for local dev extensions - Node.js available through Zed or on
PATH - Internet access on first use to download the official MSW VSIX package from Visual Studio Marketplace
Clone this repository, then install it as a dev extension in Zed:
- Open Zed.
- Open the Extensions page or run
zed: install dev extensionfrom the command palette. - Select the local
mlua-zedrepository directory. - Open a project that contains
.mluafiles.
After updating the local repository, reinstall the dev extension or reload Zed so the latest extension code is used.
Enable semantic tokens for the best mLua coloring. Add this to your Zed user or project settings:
{
"languages": {
"mLua": {
"semantic_tokens": "combined"
}
}
}The extension does not reimplement the mLua language server. Instead, it:
- Looks up the latest
msw.mluaVS Code extension version from Visual Studio Marketplace. - Downloads and extracts the VSIX package into Zed's extension work directory.
- Starts the official language server with a Node.js wrapper that adapts it for Zed's LSP runtime.
- Reuses the cached package when Marketplace is unavailable.
- If the language server does not start, confirm that Node.js is available.
- If the first download fails, confirm that
marketplace.visualstudio.comandmsw.gallery.vsassets.ioare reachable. - If highlighting looks incomplete, enable semantic tokens with the setting shown above.