{"id":40467632,"url":"https://github.com/cap-js-community/tree-sitter-cds","last_synced_at":"2026-01-20T18:13:20.467Z","repository":{"id":208652912,"uuid":"706004000","full_name":"cap-js-community/tree-sitter-cds","owner":"cap-js-community","description":"CAP CDS grammar for tree-sitter.","archived":false,"fork":false,"pushed_at":"2026-01-12T08:02:42.000Z","size":4095,"stargazers_count":18,"open_issues_count":6,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-12T17:30:12.464Z","etag":null,"topics":["cap","cds","parser","syntax-highlighting","tree-sitter"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cap-js-community.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","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":"2023-10-17T05:54:32.000Z","updated_at":"2026-01-12T08:02:12.000Z","dependencies_parsed_at":"2024-01-11T14:31:00.597Z","dependency_job_id":"983f3028-8e80-4fd7-bf14-b66a18e3a7b0","html_url":"https://github.com/cap-js-community/tree-sitter-cds","commit_stats":null,"previous_names":["cap-js-community/tree-sitter-cds"],"tags_count":1,"template":false,"template_full_name":"cap-js-community/repository-template","purl":"pkg:github/cap-js-community/tree-sitter-cds","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cap-js-community%2Ftree-sitter-cds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cap-js-community%2Ftree-sitter-cds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cap-js-community%2Ftree-sitter-cds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cap-js-community%2Ftree-sitter-cds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cap-js-community","download_url":"https://codeload.github.com/cap-js-community/tree-sitter-cds/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cap-js-community%2Ftree-sitter-cds/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28608350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cap","cds","parser","syntax-highlighting","tree-sitter"],"created_at":"2026-01-20T18:13:19.574Z","updated_at":"2026-01-20T18:13:20.459Z","avatar_url":"https://github.com/cap-js-community.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![REUSE status](https://api.reuse.software/badge/github.com/cap-js-community/tree-sitter-cds)](https://api.reuse.software/info/github.com/cap-js-community/tree-sitter-cds)\n\n# tree-sitter-cds\n\n## About this project\n\nCAP CDS grammar for tree-sitter.\n\n\u003e Tree-sitter is a parser generator tool and an incremental parsing library.\n\u003e It can build a concrete syntax tree for a source file and efficiently update the\n\u003e syntax tree as the source file is edited. Tree-sitter aims to be:\n\n - https://tree-sitter.github.io/tree-sitter/\n\nYou can use tree-sitter-cds to highlight CAP CDS files in Neovim and\nto query the concrete syntax tree of CDS files.\n\nThis project followed the instructions of the [tree-sitter guide].\n\n\u003cimg alt=\"Screenshot of Neovim. A CDS file is opened and has proper syntax highlighting.\" title=\"Neovim Syntax Highlighting Example\" src=\"./docs/assets/neovim-syntax-highlighting.png\" align=\"right\" width=\"201\" height=\"224\" /\u003e\n\n\n## Documentation\n\nPlease refer to the `docs/` folder.  It contains:\n\n- [Development](./docs/development.md)\n- [Contributing](./CONTRIBUTING.md)\n- [Neovim Support](./docs/neovim-support.md)\n- [CDS Compiler Differences](./docs/cds-compiler-differences.md)\n\n\n## Download and Installation\n\nIf you want to use tree-sitter-cds in Neovim for syntax highlighting,\nplease see [Neovim Support](./docs/neovim-support.md) for an\ninstallation guide.\n\nDocumentation on Node.js and Rust language bindings is work-in-progress.\n\n\n## Requirements\n\nIf you want to use tree-sitter-cds in Neovim for syntax highlighting,\nplease see [Neovim Support](./docs/neovim-support.md) for requirements.\n\nFor local development setup, see [Development Docs](./docs/development.md).\n\n\n## How to obtain support\n\nThis project is open to feature requests/suggestions, bug reports etc.\nvia [GitHub issues](https://github.com/cap-js-community/tree-sitter-cds/issues).\n\nContribution and feedback are encouraged and always welcome.\nFor more information about how to contribute, the project structure,\nas well as additional contribution information, see our [Contribution Guidelines](CONTRIBUTING.md)\nas well as our [development documentation](./docs/development.md).\n\n## Features \u0026 Roadmap\n\nThis project contains a tree-sitter grammar for [CAP CDS](https://cap.cloud.sap/).\n\nThe main goal of this project it to provide syntax highlighting, e.g. for [Neovim](./docs/neovim-support.md).\n\nIt is _not_ a 100% CAP CDS compatible parser. There are places that this grammar\ncan't parse properly, yet.   There is also no error reporting by tree-sitter and\nthe syntax tree can change any time, as this project is not complete, yet.\n\nIn the future, we may try to add support for [stack-graphs by GitHub][stack-graphs].\n\n## Code of Conduct\n\nWe as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its [Code of Conduct](CODE_OF_CONDUCT.md) at all times.\n\n## Licensing\n\nCopyright 2024 SAP SE or an SAP affiliate company and tree-sitter-cds contributors. Please see our [LICENSE](LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/cap-js-community/\u003cyour-project\u003e).\n\n[tree-sitter guide]: https://tree-sitter.github.io/tree-sitter/creating-parsers\n[stack-graphs]: https://github.blog/2021-12-09-introducing-stack-graphs/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcap-js-community%2Ftree-sitter-cds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcap-js-community%2Ftree-sitter-cds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcap-js-community%2Ftree-sitter-cds/lists"}