Gleam-inspired typed configuration language (POC)
0

Configure Feed

Select the types of activity you want to include in your feed.

README.md

Glint for Zed#

Zed extension for Glint — language config, tree-sitter highlighting (via tree-sitter-gleam), and the glint language server.

Compile#

Glint binary (LSP)#

cd /home/nandi/code/glint
nix build    # → result/bin/glint

Zed guest (Rust — what Install Dev Extension builds)#

Zed always runs cargo build --target wasm32-wasip2 when [lib] kind = "Rust". Local check:

cd /home/nandi/code/glint/editors/zed
rustup target add wasm32-wasip2   # once
cargo build --release --target wasm32-wasip2
cp target/wasm32-wasip2/release/zed_glint.wasm extension.wasm
file extension.wasm   # WebAssembly (wasm) binary version 0x1000d (component)

Pure Gleam guest (experimental)#

Compiler work is on our Gleam wasm fork on Tangled:

https://tangled.org/nandi.uk/gleam (wasm branch)

git clone https://tangled.org/nandi.uk/gleam
cd gleam && git checkout wasm
cargo build -p gleam

cd /home/nandi/code/glint/editors/zed
/path/to/gleam/target/debug/gleam export zed-extension
# → extension.wasm

See docs/compiler/wasm-zed-extensions.md in that repo. Until Zed can load a prebuilt guest without cargo, Install Dev Extension still uses the Rust crate (src/glint.rs). src/zed_glint.gleam is the pure-Gleam sketch.

Install in Zed#

  1. Build glint (nix build above).

  2. Extensions → Install Dev Extension… → this directory:

    /home/nandi/code/glint/editors/zed
    
  3. Open a *.glint file. The guest runs glint lsp.

LSP binary resolution#

  1. lsp.glint.binary in Zed settings
  2. glint on $PATH (worktree.which)
  3. Fallback: /home/nandi/code/glint/result/bin/glint
{
  "lsp": {
    "glint": {
      "binary": {
        "path": "/home/nandi/code/glint/result/bin/glint",
        "arguments": ["lsp"]
      }
    }
  }
}

Layout#

Path Role
extension.toml Zed manifest
src/glint.rs Installable guest (zed_extension_api)
src/zed_glint.gleam Pure-Gleam authoring sketch
languages/glint/ Tree-sitter queries + language config
extension.wasm Built component (Zed / cargo)

Grammar id is gleam so the linker finds tree_sitter_gleam. Language name / path suffix stay Glint / *.glint.