{"id":13338380,"url":"https://github.com/PaterJason/nvim-treesitter-sexp","last_synced_at":"2025-03-11T09:31:02.463Z","repository":{"id":169333571,"uuid":"630096335","full_name":"PaterJason/nvim-treesitter-sexp","owner":"PaterJason","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-07T10:00:05.000Z","size":70,"stargazers_count":35,"open_issues_count":6,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-23T20:11:57.785Z","etag":null,"topics":["neovim","neovim-plugin","nvim","nvim-treesitter","tree-sitter"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/PaterJason.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}},"created_at":"2023-04-19T16:55:42.000Z","updated_at":"2025-02-02T23:37:23.000Z","dependencies_parsed_at":"2024-03-17T21:52:45.940Z","dependency_job_id":"a11b8a8f-4b7d-4cd0-bba6-3baca5d8383e","html_url":"https://github.com/PaterJason/nvim-treesitter-sexp","commit_stats":null,"previous_names":["paterjason/nvim-treesitter-sexp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaterJason%2Fnvim-treesitter-sexp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaterJason%2Fnvim-treesitter-sexp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaterJason%2Fnvim-treesitter-sexp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaterJason%2Fnvim-treesitter-sexp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PaterJason","download_url":"https://codeload.github.com/PaterJason/nvim-treesitter-sexp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243007041,"owners_count":20220762,"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","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":["neovim","neovim-plugin","nvim","nvim-treesitter","tree-sitter"],"created_at":"2024-07-29T19:16:18.344Z","updated_at":"2025-03-11T09:31:01.880Z","avatar_url":"https://github.com/PaterJason.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nvim-treesitter-sexp\n\nA plugin for [Neovim](https://github.com/neovim/neovim) for editing code by\nmanipulating the Treesitter AST. Basically a reimplementation of\n[vim-sexp](https://github.com/guns/vim-sexp) using treesitter queries. This is\nparticularly useful for editing Lisps and manipulating data structures\n\n## Requirements\n- Neovim 0.9.1 or later\n- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) with\nthe relevant language parsers installed\n\n## Configuration\n\nCalling setup is not required to use nvim-treesitter-sexp, it is only needed\nfor configuration\n\nExample with default config values:\n\n```lua\nrequire(\"treesitter-sexp\").setup {\n  -- Enable/disable\n  enabled = true,\n  -- Move cursor when applying commands\n  set_cursor = true,\n  -- Set to false to disable all keymaps\n  keymaps = {\n    -- Set to false to disable keymap type\n    commands = {\n      -- Set to false to disable individual keymaps\n      swap_prev_elem = \"\u003ce\",\n      swap_next_elem = \"\u003ee\",\n      swap_prev_form = \"\u003cf\",\n      swap_next_form = \"\u003ef\",\n      promote_elem = \"\u003cLocalLeader\u003eO\",\n      promote_form = \"\u003cLocalLeader\u003eo\",\n      splice = \"\u003cLocalLeader\u003e@\",\n      slurp_left = \"\u003c(\",\n      slurp_right = \"\u003e)\",\n      barf_left = \"\u003e(\",\n      barf_right = \"\u003c)\",\n      insert_head = \"\u003cI\",\n      insert_tail = \"\u003eI\",\n    },\n    motions = {\n      form_start = \"(\",\n      form_end = \")\",\n      prev_elem = \"[e\",\n      next_elem = \"]e\",\n      prev_elem_end = \"[E\",\n      next_elem_end = \"]E\",\n      prev_top_level = \"[[\",\n      next_top_level = \"]]\",\n    },\n    textobjects = {\n      inner_elem = \"ie\",\n      outer_elem = \"ae\",\n      inner_form = \"if\",\n      outer_form = \"af\",\n      inner_top_level = \"iF\",\n      outer_top_level = \"aF\",\n    },\n  },\n}\n```\n\n## Commands\n\nThe commands can be called using `:TSSexp` with any of the following arguments:\n\n`swap_prev_elem`, `swap_next_elem`, `swap_prev_form`, `swap_next_form`,\n`promote_elem`, `promote_form`, `splice`, `slurp_left`, `slurp_right`,\n`barf_left`, `barf_right`\n\n## Mappings\n\nThe default mappings are taken from vim-sexp and\nvim-sexp-mappings-for-regular-people. I've avoided any use of the meta key\n\n## Supported languages\n\nFor `nvim-treesitter-sexp` to support a language requires a query file. I'm\nopen to adding more queries and welcome contributions to support more\nlanguages.\n\n- `clojure`\n- `fennel`\n- `janet`\n- `query` tree-sitter query language\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPaterJason%2Fnvim-treesitter-sexp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPaterJason%2Fnvim-treesitter-sexp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPaterJason%2Fnvim-treesitter-sexp/lists"}