{"id":50515237,"url":"https://github.com/imba/zed-imba","last_synced_at":"2026-06-02T23:30:33.036Z","repository":{"id":356895230,"uuid":"1234479278","full_name":"imba/zed-imba","owner":"imba","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-10T09:32:26.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-10T11:23:46.459Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imba.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-10T08:31:31.000Z","updated_at":"2026-05-10T09:32:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/imba/zed-imba","commit_stats":null,"previous_names":["imba/zed-imba"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/imba/zed-imba","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imba%2Fzed-imba","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imba%2Fzed-imba/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imba%2Fzed-imba/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imba%2Fzed-imba/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imba","download_url":"https://codeload.github.com/imba/zed-imba/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imba%2Fzed-imba/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33841995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-02T23:30:29.147Z","updated_at":"2026-06-02T23:30:33.031Z","avatar_url":"https://github.com/imba.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Imba for Zed\n\nZed language extension for Imba.\n\nThis extension wires Zed to the standalone Tree-sitter Imba grammar and ships the first set of Tree-sitter queries for syntax highlighting, CSS injections, bracket matching, indentation, and outline entries.\n\nIt also includes a very small language server that indexes `tag ...` and `class ...` declarations so Zed's project symbol search can find Imba tags/classes. The same server can provide indentation-based document symbols for nested tags/classes/methods while the Tree-sitter grammar is still incomplete, basic goto-definition for tag names, custom CSS units, and naive same-name method/action lookups, plus semantic tokens from the vendored `imba-monarch` parser.\n\n## Installation\n\nOnce published in the Zed extension registry, install it from `zed: extensions` by searching for `Imba`.\n\nUntil then, install it as a dev extension:\n\n1. Clone this repository.\n2. Install Rust through `rustup` if you have not already.\n3. In Zed, open the command palette.\n4. Run `zed: install dev extension`.\n5. Select the cloned `zed-imba` directory.\n6. Open an `.imba` file.\n\nThe extension downloads the Tree-sitter grammar from `https://github.com/imba/treesitter-imba` at the revision pinned in `extension.toml`, so users do not need a local grammar checkout.\n\nIf Zed does not pick up changes, reinstall or reload the dev extension and check `zed: open log`.\n\n## Development\n\nTo smoke-test the language server outside Zed:\n\n```sh\nnode scripts/test-tags-lsp.js\n```\n\nZed dev extensions that include language servers are Rust extensions, so local extension development needs Rust installed through `rustup`.\n\nTo update the pinned grammar revision after committing and pushing grammar changes:\n\n```sh\nnode scripts/update-local-grammar-rev.js ../treesitter-imba\n```\n\nThat command reads the local grammar checkout, but writes the public grammar repository URL into `extension.toml`. For private local grammar experiments only, pass `--local` to write a `file://` grammar URL.\n\nTo use the language server for the outline and breadcrumbs instead of `outline.scm`, add this to your Zed settings:\n\n```json\n{\n  \"languages\": {\n    \"Imba\": {\n      \"document_symbols\": \"on\"\n    }\n  }\n}\n```\n\nTo test semantic tokens, enable them in Zed settings:\n\n```json\n{\n  \"languages\": {\n    \"Imba\": {\n      \"semantic_tokens\": \"combined\"\n    }\n  }\n}\n```\n\n## Publishing\n\nBefore publishing:\n\n- Make sure `extension.toml` uses a public grammar repository URL, not `file://`.\n- Make sure the pinned grammar `rev` has been pushed to the grammar repository.\n- Make sure this repository has been pushed publicly.\n- Keep an accepted license file at the extension root.\n- Bump `version` in `extension.toml` for releases.\n\nTo publish to the Zed registry, open a PR to `zed-industries/extensions` that adds this repo as a submodule under `extensions/imba`, adds an `[imba]` entry to `extensions.toml`, and runs `pnpm sort-extensions`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimba%2Fzed-imba","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimba%2Fzed-imba","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimba%2Fzed-imba/lists"}