{"_id":"@davisvaughan/tree-sitter-r","_rev":"2-572b59d60ab1ba53525147091ef73d30","name":"@davisvaughan/tree-sitter-r","dist-tags":{"latest":"1.3.0"},"versions":{"1.2.0":{"name":"@davisvaughan/tree-sitter-r","version":"1.2.0","keywords":["incremental","parsing","tree-sitter","r"],"author":{"name":"Davis Vaughan","email":"davis@posit.co"},"license":"MIT","_id":"@davisvaughan/tree-sitter-r@1.2.0","maintainers":[{"name":"davisvaughan","email":"davis@posit.co"}],"homepage":"https://github.com/r-lib/tree-sitter-r#readme","bugs":{"url":"https://github.com/r-lib/tree-sitter-r/issues"},"dist":{"shasum":"190466fdce0aac24f8fcb7d441911c661eb43f0a","tarball":"https://registry.npmjs.org/@davisvaughan/tree-sitter-r/-/tree-sitter-r-1.2.0.tgz","fileCount":27,"integrity":"sha512-KnvUaJJS6h1oCcRaq8fFb/xYyvqodMcE5M48vYmIWW7uOJCFkNwaHdGXuLzTipOWfXGzrKuq4EFRifHphLu9GQ==","signatures":[{"sig":"MEQCIHxsLHxzBzh2nZ78sHBHAHaldbsBq7Ejynz/z5vzUs1oAiBOcs81hC+78aaSPkTokZ30bT5GCX6HcE3Gjs+qouUPkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8039592},"main":"bindings/node","types":"bindings/node","gitHead":"9d47c60c0da1018e3a657bb139bc05769b0e069b","scripts":{"test":"node --test bindings/node/*_test.js","start":"tree-sitter playground","install":"node-gyp-build","prestart":"tree-sitter build --wasm"},"_npmUser":{"name":"davisvaughan","email":"davis@posit.co"},"repository":{"url":"git+https://github.com/r-lib/tree-sitter-r.git","type":"git"},"_npmVersion":"10.9.2","description":"R grammar for tree-sitter","directories":{},"_nodeVersion":"22.16.0","dependencies":{"node-addon-api":"^8.2.1","node-gyp-build":"^4.8.2"},"_hasShrinkwrap":false,"devDependencies":{"prebuildify":"^6.0.1","tree-sitter":"^0.21.1","tree-sitter-cli":"^0.24.7"},"peerDependencies":{"tree-sitter":"^0.21.1"},"peerDependenciesMeta":{"tree-sitter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tree-sitter-r_1.2.0_1749221464676_0.9314538052239298","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@davisvaughan/tree-sitter-r","version":"1.3.0","description":"R grammar for tree-sitter","repository":{"type":"git","url":"git+https://github.com/r-lib/tree-sitter-r.git"},"license":"MIT","author":{"name":"Davis Vaughan","email":"davis@posit.co"},"main":"bindings/node","types":"bindings/node","keywords":["incremental","parsing","tree-sitter","r"],"dependencies":{"node-addon-api":"^8.2.1","node-gyp-build":"^4.8.2"},"devDependencies":{"prebuildify":"^6.0.1","tree-sitter":"^0.21.1","tree-sitter-cli":"^0.24.7"},"peerDependencies":{"tree-sitter":"^0.21.1"},"peerDependenciesMeta":{"tree-sitter":{"optional":true}},"scripts":{"install":"node-gyp-build","prestart":"tree-sitter build --wasm","start":"tree-sitter playground","test":"node --test bindings/node/*_test.js"},"bugs":{"url":"https://github.com/r-lib/tree-sitter-r/issues"},"homepage":"https://github.com/r-lib/tree-sitter-r#readme","_id":"@davisvaughan/tree-sitter-r@1.3.0","gitHead":"346d3707b8c9301f1051e8f6e32666e67529f7d2","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-IwQyWDNgWtTguaEaxKLOD4wuAfbbfpRdVIpMrEvErTQl6VaPGWwCDEJ3O3RpjwDG6pCDmiOQj88xnwb5j/M9fA==","shasum":"4afba2f0d19fe5eb19b5256a4f9c87cd4a0313d5","tarball":"https://registry.npmjs.org/@davisvaughan/tree-sitter-r/-/tree-sitter-r-1.3.0.tgz","fileCount":27,"unpackedSize":8098997,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDIKhlOWDqK+1N8cK8OeVPFhfxXjoSyobJL/YN2mqEPmQIhAPnpASSpJzWz7O9zfAO5ZcAFXA1wDIPvmMDupfxpY0o2"}]},"_npmUser":{"name":"davisvaughan","email":"davis@posit.co"},"directories":{},"maintainers":[{"name":"davisvaughan","email":"davis@posit.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tree-sitter-r_1.3.0_1781891865889_0.2662646369947581"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-06T14:51:04.554Z","modified":"2026-06-19T17:57:46.275Z","1.2.0":"2025-06-06T14:51:04.932Z","1.3.0":"2026-06-19T17:57:46.128Z"},"bugs":{"url":"https://github.com/r-lib/tree-sitter-r/issues"},"author":{"name":"Davis Vaughan","email":"davis@posit.co"},"license":"MIT","homepage":"https://github.com/r-lib/tree-sitter-r#readme","keywords":["incremental","parsing","tree-sitter","r"],"repository":{"type":"git","url":"git+https://github.com/r-lib/tree-sitter-r.git"},"description":"R grammar for tree-sitter","maintainers":[{"name":"davisvaughan","email":"davis@posit.co"}],"readme":"# tree-sitter-r\n\nAn R grammar for [tree-sitter](https://github.com/tree-sitter/tree-sitter).\n\n## R package\n\nThis grammar is available as an [R package](https://cran.r-project.org/web/packages/treesitter.r/index.html).\n\nYou'll also want the [R package providing bindings to tree-sitter](https://davisvaughan.github.io/r-tree-sitter/) itself.\n\n## Rust bindings\n\nThis grammar is available as a [Rust crate on crates.io](https://crates.io/crates/tree-sitter-r).\n\n## Node bindings\n\nThis grammar is available as an [npm package](https://www.npmjs.com/package/@davisvaughan/tree-sitter-r).\n\nNote that it is currently listed as a scoped package under the name `@davisvaughan/tree-sitter-r`.\nWe are working with the npm team to gain ownership of the `tree-sitter-r` package.\nOnce that happens, we will move the npm package there instead.\n\n## References\n\n- [The R Draft Spec](https://cran.r-project.org/doc/manuals/r-release/R-lang.pdf)\n- [gram.y](https://github.com/wch/r-source/blob/trunk/src/main/gram.y)\n\n## Known deviations\n\nThis section describes known deviations from the R grammar.\n\n### `]]` as a literal token\n\nThe following is valid R syntax, note how `]]` has been split over multiple lines.\n\n```r\nx[[\"a\"]\n]\n```\n\nThis applies to `]]`, but not to `[[`, for example, this is not valid R syntax:\n\n```r\nx[\n[\"a\"]]\n```\n\nThe technical reason for this is that [in the grammar](https://github.com/wch/r-source/blob/988774e05497bcf2cfac47bfbec59d551432e3fb/src/main/gram.y#L508) R treats `[[` as a single token, but `]]` is treated as two individual `]` tokens.\nTreating `]]` as two individual `]` tokens allows whitespace, newlines, and even comments to appear between the two `]` tokens:\n\n```r\nx[[\"a\"] # comment\n]\n```\n\nWhile we'd like to precisely support the R grammar, it is also extremely useful to treat all of `(`, `)`, `[`, `]`, `[[`, and `]]` as literal tokens when using the tree-sitter grammar.\nThis allows you to treat call, subset, and subset2 nodes in the same way, since they all have exactly the same node structure.\n\nBecause treating `]]` as a literal token is so useful, and because we've never seen any R code \"in the wild\" written this way, this grammar does not allow whitespace, newlines, or comments between the two `]` tokens.\n","readmeFilename":"README.md"}