# tree-sitter-strdl
Tree-sitter parser for Strudel, a Tidal Cycles based live coding tool.
___
## Usage
To install the parser in Neovim:
- Create a file `strudel-integration.lua` in your `~/.config/nvim/lua/` directory:
```lua
---@class ParserConfig
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
parser_config.strudel = {
install_info = {
-- url = "https://github.com/pedrozappa/tree-sitter-strdl", -- local path or git repo
url = "~/tree-sitter-strdl/", -- local path to this repo
files = { "src/parser.c" }, -- note that some parsers also require src/scanner.c or src/scanner.cc
-- optional entries:
branch = "main", -- default branch in case of git repo if different from master
generate_requires_npm = false, -- if stand-alone parser without npm dependencies
requires_generate_from_grammar = false, -- if folder contains pre-generated src/parser.c
},
filetype = "strdl", -- if filetype does not match the parser name
}
vim.api.nvim_create_autocmd("BufRead", {
pattern = { "*.strdl", "*.strudel" },
callback = function()
vim.bo.filetype = "strdl"
end,
})
```
- On your `~/.config/nvim/init.lua`:
```lua
require("strudel-integration")
```
Run the following to install the parsers schemas:
```bash
npm run local_install
```
## Docs
- [Tree-sitter](https://tree-sitter.github.io/tree-sitter/)
- [Strudel.cc](https://strudel.cc/)
- [Tidal Cycles ](https://tidalcycles.org/)
## Learning Resources
- [Crafting Interpreters by Robert Nystrom](https://www.craftinginterpreters.com/)
Raw data
{
"_id": null,
"home_page": null,
"name": "tree-sitter-strudel",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "incremental, parsing, tree-sitter, strudel",
"author": null,
"author_email": "Zedro <45104292+PedroZappa@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/59/51/f29b8eeaa55fad5ca7f26c27165f405063af790fc202a84b0b0d7cb178ce/tree_sitter_strudel-1.1.8.tar.gz",
"platform": null,
"description": "# tree-sitter-strdl\n\nTree-sitter parser for Strudel, a Tidal Cycles based live coding tool.\n\n___\n\n## Usage\n\nTo install the parser in Neovim:\n\n- Create a file `strudel-integration.lua` in your `~/.config/nvim/lua/` directory:\n\n```lua\n---@class ParserConfig\nlocal parser_config = require(\"nvim-treesitter.parsers\").get_parser_configs()\nparser_config.strudel = {\n install_info = {\n -- url = \"https://github.com/pedrozappa/tree-sitter-strdl\", -- local path or git repo\n url = \"~/tree-sitter-strdl/\", -- local path to this repo\n files = { \"src/parser.c\" }, -- note that some parsers also require src/scanner.c or src/scanner.cc\n -- optional entries:\n branch = \"main\", -- default branch in case of git repo if different from master\n generate_requires_npm = false, -- if stand-alone parser without npm dependencies\n requires_generate_from_grammar = false, -- if folder contains pre-generated src/parser.c\n },\n filetype = \"strdl\", -- if filetype does not match the parser name\n}\n\nvim.api.nvim_create_autocmd(\"BufRead\", {\n pattern = { \"*.strdl\", \"*.strudel\" },\n callback = function()\n vim.bo.filetype = \"strdl\"\n end,\n})\n```\n\n- On your `~/.config/nvim/init.lua`:\n\n```lua\nrequire(\"strudel-integration\")\n```\n\nRun the following to install the parsers schemas:\n\n```bash\nnpm run local_install\n```\n\n\n\n## Docs\n\n- [Tree-sitter](https://tree-sitter.github.io/tree-sitter/)\n- [Strudel.cc](https://strudel.cc/)\n- [Tidal Cycles ](https://tidalcycles.org/)\n\n## Learning Resources\n\n- [Crafting Interpreters by Robert Nystrom](https://www.craftinginterpreters.com/)\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Parser for Strudel, a Tidal Cycles base live coding tool",
"version": "1.1.8",
"project_urls": {
"Homepage": "https://github.com/pedrozappa/tree-sitter-strdl"
},
"split_keywords": [
"incremental",
" parsing",
" tree-sitter",
" strudel"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b6b53dca242ad5b0dfe3fa07a3ffb0d00167fb211f348d377d0b34baa0866326",
"md5": "c0a8911194e2603a7d81994b368c7460",
"sha256": "1c82fd2b4a737cd4692ae1acfe8961231d6da4d681b04ff04d0e6c28ef098619"
},
"downloads": -1,
"filename": "tree_sitter_strudel-1.1.8-cp310-abi3-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "c0a8911194e2603a7d81994b368c7460",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 25498,
"upload_time": "2025-08-01T12:42:55",
"upload_time_iso_8601": "2025-08-01T12:42:55.155830Z",
"url": "https://files.pythonhosted.org/packages/b6/b5/3dca242ad5b0dfe3fa07a3ffb0d00167fb211f348d377d0b34baa0866326/tree_sitter_strudel-1.1.8-cp310-abi3-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "76668611ca692ff47878be15a36190faf0020a1a023c1dd762eb2b4dae65b866",
"md5": "1d01d220dcbecce14c3578e4310ef6ae",
"sha256": "ee702051b6c7267692d4fceccaf03986638947a469990be9c2aa98a49fed04e3"
},
"downloads": -1,
"filename": "tree_sitter_strudel-1.1.8-cp310-abi3-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "1d01d220dcbecce14c3578e4310ef6ae",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 26089,
"upload_time": "2025-08-01T12:42:55",
"upload_time_iso_8601": "2025-08-01T12:42:55.951593Z",
"url": "https://files.pythonhosted.org/packages/76/66/8611ca692ff47878be15a36190faf0020a1a023c1dd762eb2b4dae65b866/tree_sitter_strudel-1.1.8-cp310-abi3-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3c9022a4de2d1eb201875acb415af98f2c400ba3222a0c331771598742560ab2",
"md5": "80d9e820d21d06c32bca586fbf6ef547",
"sha256": "03278b89923b58d8bfc0a982bd5673f1ad316ce486798388b81a26f55aeff1b8"
},
"downloads": -1,
"filename": "tree_sitter_strudel-1.1.8-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "80d9e820d21d06c32bca586fbf6ef547",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 36023,
"upload_time": "2025-08-01T12:42:57",
"upload_time_iso_8601": "2025-08-01T12:42:57.073835Z",
"url": "https://files.pythonhosted.org/packages/3c/90/22a4de2d1eb201875acb415af98f2c400ba3222a0c331771598742560ab2/tree_sitter_strudel-1.1.8-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c18fd122c69369a026b4d67716db6897046f4636743d2e4f8c65a48d4cb33bb4",
"md5": "763a8eb85c9336f52ec4c37041fec3e1",
"sha256": "1c3b8af51cf4ce31fa157942e8e4845b40de434bb4ed1d4239afee849a618bd3"
},
"downloads": -1,
"filename": "tree_sitter_strudel-1.1.8-cp310-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "763a8eb85c9336f52ec4c37041fec3e1",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 35880,
"upload_time": "2025-08-01T12:42:58",
"upload_time_iso_8601": "2025-08-01T12:42:58.081807Z",
"url": "https://files.pythonhosted.org/packages/c1/8f/d122c69369a026b4d67716db6897046f4636743d2e4f8c65a48d4cb33bb4/tree_sitter_strudel-1.1.8-cp310-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0393cbdae426d9916f20d93836793fdb28db721588ee95d4c20d8f8e2311b307",
"md5": "6ec53d22bcb53d0ff50e25f844805ac5",
"sha256": "9be150a92c6208de0851b7cb2ba81bc4e208085a323aae907de23a4594dce08e"
},
"downloads": -1,
"filename": "tree_sitter_strudel-1.1.8-cp310-abi3-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "6ec53d22bcb53d0ff50e25f844805ac5",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 34753,
"upload_time": "2025-08-01T12:42:58",
"upload_time_iso_8601": "2025-08-01T12:42:58.761172Z",
"url": "https://files.pythonhosted.org/packages/03/93/cbdae426d9916f20d93836793fdb28db721588ee95d4c20d8f8e2311b307/tree_sitter_strudel-1.1.8-cp310-abi3-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b08b00d37f67924dcc5b1cc41b36c9f60f58821fe9a3a69573059b7f8f6e5ea1",
"md5": "fe5a7ff5d97804038e2cfc611da9b55d",
"sha256": "cb0d4ac7dbab796c9cefc043fad2ce6f1a0fbb8de6fe23b8cb1fdbfb3cd79fed"
},
"downloads": -1,
"filename": "tree_sitter_strudel-1.1.8-cp310-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "fe5a7ff5d97804038e2cfc611da9b55d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 28054,
"upload_time": "2025-08-01T12:42:59",
"upload_time_iso_8601": "2025-08-01T12:42:59.492232Z",
"url": "https://files.pythonhosted.org/packages/b0/8b/00d37f67924dcc5b1cc41b36c9f60f58821fe9a3a69573059b7f8f6e5ea1/tree_sitter_strudel-1.1.8-cp310-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b45deaa0630f63900fc1e826399eb4977170ea425a4f1c8b76467226cdd85a0e",
"md5": "e98fea30c6e20e3eaf1be0961accebc2",
"sha256": "5c6a8fa38e89cc00f7095f4874d35004572bb4e2d1c2e521bcd0a12ddb4d6746"
},
"downloads": -1,
"filename": "tree_sitter_strudel-1.1.8-cp310-abi3-win_arm64.whl",
"has_sig": false,
"md5_digest": "e98fea30c6e20e3eaf1be0961accebc2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 27083,
"upload_time": "2025-08-01T12:43:00",
"upload_time_iso_8601": "2025-08-01T12:43:00.642701Z",
"url": "https://files.pythonhosted.org/packages/b4/5d/eaa0630f63900fc1e826399eb4977170ea425a4f1c8b76467226cdd85a0e/tree_sitter_strudel-1.1.8-cp310-abi3-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5951f29b8eeaa55fad5ca7f26c27165f405063af790fc202a84b0b0d7cb178ce",
"md5": "45271a5104cf362bbbcb650518b289e7",
"sha256": "a568affc7155ccccc545e351469dc707c5fe85352df15977499bb00ca7feab7e"
},
"downloads": -1,
"filename": "tree_sitter_strudel-1.1.8.tar.gz",
"has_sig": false,
"md5_digest": "45271a5104cf362bbbcb650518b289e7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 33969,
"upload_time": "2025-08-01T12:43:01",
"upload_time_iso_8601": "2025-08-01T12:43:01.770196Z",
"url": "https://files.pythonhosted.org/packages/59/51/f29b8eeaa55fad5ca7f26c27165f405063af790fc202a84b0b0d7cb178ce/tree_sitter_strudel-1.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-01 12:43:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pedrozappa",
"github_project": "tree-sitter-strdl",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "tree-sitter-strudel"
}