{"id":5765109,"url":"https://github.com/dlvandenberg/tree-sitter-angular","last_synced_at":"2025-10-10T16:29:36.889Z","repository":{"id":209724870,"uuid":"724756068","full_name":"dlvandenberg/tree-sitter-angular","owner":"dlvandenberg","description":"Tree Sitter Grammar for Angular","archived":false,"fork":false,"pushed_at":"2025-10-08T08:53:00.000Z","size":2715,"stargazers_count":49,"open_issues_count":3,"forks_count":12,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-08T10:27:12.398Z","etag":null,"topics":["angular","grammar","lexer","parser","tree-sitter","tree-sitter-parser","treesitter"],"latest_commit_sha":null,"homepage":"","language":"C","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/dlvandenberg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["dlvandenberg"]}},"created_at":"2023-11-28T18:22:48.000Z","updated_at":"2025-10-08T08:53:04.000Z","dependencies_parsed_at":"2023-12-12T11:28:39.631Z","dependency_job_id":"21013211-cd09-4e32-9789-4263891d76b8","html_url":"https://github.com/dlvandenberg/tree-sitter-angular","commit_stats":null,"previous_names":["dlvandenberg/tree-sitter-angular-2"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/dlvandenberg/tree-sitter-angular","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlvandenberg%2Ftree-sitter-angular","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlvandenberg%2Ftree-sitter-angular/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlvandenberg%2Ftree-sitter-angular/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlvandenberg%2Ftree-sitter-angular/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dlvandenberg","download_url":"https://codeload.github.com/dlvandenberg/tree-sitter-angular/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dlvandenberg%2Ftree-sitter-angular/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002613,"owners_count":26083426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"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":["angular","grammar","lexer","parser","tree-sitter","tree-sitter-parser","treesitter"],"created_at":"2024-03-07T09:02:11.555Z","updated_at":"2025-10-10T16:29:36.864Z","avatar_url":"https://github.com/dlvandenberg.png","language":"C","readme":"\u003ch1 align=\"center\"\u003e ✨ Tree Sitter Grammar for Angular ✨ \u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003e\n    \u003cimg alt=\"GitHub Workflow Status (with event)\" src=\"https://img.shields.io/github/actions/workflow/status/dlvandenberg/tree-sitter-angular/ci.yml\"\u003e\n    \u003cimg alt=\"Angular\" src=\"https://img.shields.io/badge/Angular-v20.1-AF21EA?logo=angular\u0026logoColor=F51365\"\u003e\n    \u003cimg alt=\"Tree-sitter CLI version\" src=\"https://img.shields.io/github/package-json/dependency-version/dlvandenberg/tree-sitter-angular/dev/tree-sitter-cli/main\"\u003e\n\u003c/h4\u003e\n\n## Specification\n\nThis parser is a complete rewrite of steelsojka's [tree-sitter-angular](https://github.com/steelsojka/tree-sitter-angular/tree/main).\nThis parser extends [tree-sitter-html](https://github.com/tree-sitter/tree-sitter-html) because the new _Control Flow_ syntax is not valid HTML code.\n\n## Supported Features\n\n- [x] Structural Directives\n- [x] Property binding\n- [x] Event binding\n- [x] String interpolation\n- [x] If-statements (v17)\n- [x] For-statements (v17)\n- [x] Switch-statements (v17)\n- [x] Defer-statements (v17)\n- [x] Let-expression (v18.1)\n- [x] ICU message format\n- [x] Untagged Template Literals (v19.2)\n- [x] Exponentiation (`**`) and `in` operators (v20)\n- [x] Binary assignment (`+=`, `*=`, etc) operators (v20.1)\n\n## Requirements\n\n- [Neovim](https://neovim.io/) v 0.11.x required (as it includes the filetype detection of Angular Templates)\n\n## Filetype\n\nSince neovim release 0.11.x, the filetype detection for Angular templates is included. It will detect Angular HTML templates, based on it's contents, and set the filetype to `htmlangular`.\n\n### Older versions\n\nIf you are using an older version, you must set the filetype yourself.\n\nE.g. mark the file as `htmlangular` if it matches the pattern `*.component.html`:\n\nCreate a `plugin` in `~/.config/nvim/plugin/angular.lua` with the following:\n\n```lua\nvim.filetype.add({\n  pattern = {\n    [\".*%.component%.html\"] = \"htmlangular\", -- Sets the filetype to `htmlangular` if it matches the pattern\n  },\n})\n```\n\nNext, create a `ftplugin` for `htmlangular` that does the following:\n\n```vim\nruntime! ftplugin/html.vim!\n```\n\nOr, in lua:\n\n```lua\nvim.cmd('runtime! ftplugin/html.vim!')\n```\n\n## LSP's or other plugins\n\nYou may need to include this new filetype (`htmlangular`) for other plugins, like [LSP](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#angularls) for example:\n\n```lua\nrequire('lspconfig').angularls.setup {\n  filetypes = { 'typescript', 'html', 'typescriptreact', 'typescript.tsx', 'htmlangular' }\n}\n```\n\n## Issues\n\nIf you experience any issues, please feel free to open an issue with the code that's causing problems.\n","funding_links":["https://github.com/sponsors/dlvandenberg"],"categories":["C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlvandenberg%2Ftree-sitter-angular","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdlvandenberg%2Ftree-sitter-angular","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdlvandenberg%2Ftree-sitter-angular/lists"}