# Editor support

> The language server, the VS Code extension, and the vocabulary scanner.

## Language server

Masque ships a language server that speaks LSP over stdio. Any LSP-capable editor can use it.

```sh
cargo install --git https://github.com/fian-team/masque masque-lsp
```

It currently provides:

- Diagnostics from the scanner, the parser, and typed-binding validation
- Hover
- Go to definition
- Document symbols
- Semantic tokens

Completion, find references and rename are not implemented yet.

## VS Code

The extension in the repository's `editors/vscode` folder adds syntax highlighting and connects to the language server. Set `masque.lspPath` if `masque-lsp` is not on your `PATH`.

TODO: publish the extension to the VS Code Marketplace and Open VSX.

## Vocabulary scanner

`masque-vocab` scans documents for style keys and values that Masque would silently ignore:

```sh
masque-vocab ui/*.masque
```

Run it in CI, or assert on `widget::vocabulary::scan_source` from a test.
