Zed language support for the current Ferret language revision.
This extension currently provides:
- Tree-sitter based parsing
- syntax highlighting
- bracket matching
- indentation rules
.ferfile recognition- LSP wiring (
ferret lsp)
The extension resolves the language server command in this order:
lsp.ferretls.binary.path(if configured)ferretfrom your PATH (worktree.which("ferret"))
The extension passes lsp as default args. You can override args with lsp.ferretls.binary.arguments.
Example Zed settings:
{
"lsp": {
"ferretls": {
"binary": {
"path": "/home/fuad/Dev/Ferret-Language/Ferret/bin/ferret",
"arguments": ["lsp"]
}
}
}
}Zed LSP settings are read from ferretls via:
initialization_optionssettings
Command launch configuration is read separately from lsp.ferretls.binary.
The current Ferret-compiler-v2/compiler/cmd CLI exposes an lsp subcommand, so no external server binary is required by default.
git submodule statusThis shows which submodules have updates available.
git submodule update --remote extensions/ferretThis pulls the latest changes from the submodule's remote repository.
If the extension version changed, update the version number in extensions.toml:
[extension-name]
submodule = "extensions/extension-name"
version = "x.x.x" # Update thisgit add extensions.toml extensions/[extension-name]
git commit -m "Update [extension-name] extension to version x.x.x"git push# Check status
git submodule status
# Update submodule
git submodule update --remote extensions/ferret
# Update version in extensions.toml (if needed)
# Edit extensions.toml to bump version
# Stage and commit
git add extensions.toml extensions/ferret
git commit -m "Update ferret to vX.X.X"
# Push
git push- Always check
git submodule statusfirst to see what needs updating - The submodule path is
extensions/[extension-name] - Version numbers should match what's in the extension's own repository
- Test locally before pushing if possible