Skip to content

Type to search extensions

Ferret language support

v0.0.11

Ferret language support for Zed

Updated 6 months agoArchived
28k downloads 0 stars Repository ↗

Ferret Language Support

Zed language support for the current Ferret language revision.

This extension currently provides:

  • Tree-sitter based parsing
  • syntax highlighting
  • bracket matching
  • indentation rules
  • .fer file recognition
  • LSP wiring (ferret lsp)

LSP command resolution

The extension resolves the language server command in this order:

  1. lsp.ferretls.binary.path (if configured)
  2. ferret from 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"]
			}
		}
	}
}

LSP settings key

Zed LSP settings are read from ferretls via:

  • initialization_options
  • settings

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.

Steps to Update an Extension Submodule

1. Check Current Status

git submodule status

This shows which submodules have updates available.

2. Update the Submodule

git submodule update --remote extensions/ferret

This pulls the latest changes from the submodule's remote repository.

3. Update Version in extensions.toml

If the extension version changed, update the version number in extensions.toml:

[extension-name]
submodule = "extensions/extension-name"
version = "x.x.x"  # Update this

4. Stage and Commit Changes

git add extensions.toml extensions/[extension-name]
git commit -m "Update [extension-name] extension to version x.x.x"

5. Push Changes

git push

Example: Updating Ferret Extension

# 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

Notes

  • Always check git submodule status first 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
ZedExt An unofficial community project. Not affiliated with Zed Industries.

Data from Zed’s extension registry and GitHub · updated