← All extensions

Jerry

v0.8.0 · by Jeff Brown · added 3 November 2026

Jerry language support for Zed — syntax highlighting, bracket matching, indentation, document outline, and LSP completions/diagnostics.

LanguagesLanguage servers

How to install

With Forge Super installed, the button above opens the app on this extension, where you press Install. Nothing is installed until you do.

You can also open the Extensions panel in the app and search for Jerry. The extension's id is jerry.

Don't have Forge Super yet? Download it here.

README

From the extension's repository, written by its authors and not by Mentenaz. See the source.

Jerry for Zed

Zed extension for the Jerry language.

Features

FeatureStatus
Syntax highlighting✅
Bracket matching & auto-close✅
Smart indentation✅
Document outline / Go to Symbol✅
Run button on fn main()✅
Code snippets✅
Diagnostics & type errorsRequires jerry lsp on $PATH
Go to definitionRequires jerry lsp on $PATH
Hover documentationRequires jerry lsp on $PATH
CompletionsRequires jerry lsp on $PATH

Installation

From the Zed extension registry: open Zed → ⌘⇧X → search Jerry → Install.

From source:

git clone https://github.com/jeffscottbrown/jerry-zed

Open Zed → ⌘⇧X → Install Dev Extension → select the cloned directory.

Language Server (jerry-lsp)

Full semantic features — diagnostics, completions, hover, go-to-definition — require the Jerry language server. Once jerry lsp is available on your $PATH, Zed will start it automatically when you open a .jer file. No further configuration is needed.

Snippets

Type a prefix and press Tab to expand.

PrefixExpands to
fnFunction declaration
fnxAnonymous function / closure
classClass declaration with constructor
classeClass declaration with inheritance
letTyped variable declaration
letiVariable declaration with inferred type
ifIf statement
ifeIf-else statement
whileWhile loop
forNumeric for loop
incInclude a stdlib module (include @module)
incrInclude a remote module
printprint(value)
retReturn statement
newNew class instance

Language Basics

Jerry files use the .jer extension.

// Single-line comment

/* Block comment */

include @string   // stdlib module

class Animal {
    name: string;

    fn new(name: string) {
        this.name = name;
    }

    fn speak(): void {
        println("...");
    }
}

class Dog extends Animal {
    fn new(name: string) {
        this.name = name;
    }

    fn speak(): void {
        println("Woof! I am " + this.name);
    }
}

fn main(): void {
    let d = new Dog("Rex");
    d.speak();
}

Types

KeywordDescription
intInteger
floatFloating-point number
boolBoolean (true / false)
stringString
voidNo return value

Built-in Functions

print · println · write · len · push · exit · panic · args · read_stdin · print_err · read_file · write_file · each_line · char_at · string_slice · char_to_string · int_to_string · float_to_string

Core stdlib (include @core)

int_abs · int_max · int_min · float_abs · float_max · float_min · bool_to_string

Contributing

Bug reports and pull requests welcome at https://github.com/jeffscottbrown/jerry-zed.