SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 tree-sitter Open-Source Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Runestone
đź“ť Performant plain text editor for iOS with syntax highlighting, line numbers, invisible characters and much more.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
twilight.nvim
🌅 Twilight is a Lua plugin for Neovim 0.5 that dims inactive portions of the code you're editing using TreeSitter.
-
nvim-ts-context-commentstring
Neovim treesitter plugin for setting the commentstring based on the cursor location in a file.
-
doctree
First-class library documentation for every language (based on tree-sitter), with symbol search & more. Lightweight single binary, run locally or self-host. Surfaces usage examples via Sourcegraph.
-
iswap.nvim
Interactively select and swap function arguments, list elements, and much more. Powered by tree-sitter.
-
srgn
A code surgeon for precise text and code transplantation. A marriage of `tr`/`sed`, `rg` and `tree-sitter`.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: Linus Torvalds adds arbitrary tabs to kernel code | news.ycombinator.com | 2024-04-17i want a diff tool that shows me exactly which tokens have changed, and which haven't, regardless of how they are laid out.
These already exist: https://github.com/Wilfred/difftastic
when we get that, then we should get even less merge conflicts.
Counterintuitively, that is not the case. AST-merge is a much, much, much, much, much harder problem than AST-diff.
https://github.com/Wilfred/difftastic?tab=readme-ov-file#can...
The fact that diffs can be used to drive a 3-way merge is in fact an accidental property that arises due to the sheer crudeness of the diff format. As soon as you start using more-sophisticated diff formats, solutions to "the diff problem" no longer lead directly to solutions to "the merge problem".
Project mention: Lezer: A Parsing System for CodeMirror, Inspired by Tree-Sitter | news.ycombinator.com | 2024-03-24I learned from a google search that these days upstream tree-sitter provides WebAssembly bindings.
Source: https://github.com/tree-sitter/tree-sitter/tree/master/lib/b...
NPM: https://www.npmjs.com/package/web-tree-sitter
Download from the latest Github release: js file (https://github.com/tree-sitter/tree-sitter/releases/download...) and wasm file (https://github.com/tree-sitter/tree-sitter/releases/download...)
Project mention: JetBrains' unremovable AI assistant meets irresistible outcry | news.ycombinator.com | 2024-02-03I suggest looking for blog posts about this, you're gunnuh wanna pick out a plugin manager and stuff. It's kind of like a package manager for neovim. You can install everything manually but usually you manually install a plugin manager and it gives you commands to manage the rest of your plugins.
These two plugins are the bare minimum in my view.
https://github.com/nvim-treesitter/nvim-treesitter
Treesitter gives you much better syntax highlighting based on a parser for a given language.
https://github.com/neovim/nvim-lspconfig
This plugin helps you connect to a given language LSP quickly with sensible defaults. You more or less pick your language from here and copy paste a snippet, and then install the relevant LSP:
https://github.com/neovim/nvim-lspconfig/blob/master/doc/ser...
For Python you'll want pylsp. For JavaScript it will depend on what frontend framework you're using, I probably can't help you there.
pylsp itself takes some plugins and you'll probably want them. https://github.com/python-lsp/python-lsp-server
Best of luck! Happy hacking.
Simple way would be to add a “curl” options, looks like you’d just need to write up a method that matches this Request interface [0] to some curl command substrings you mash together.
Problem is of course: the headers and options are all going to be included. You could make it so it organizes them better though, maybe indenting and grouping like-options together so it’s easier to remove stuff.
[0] https://github.com/curlconverter/curlconverter/blob/e4b6fb74...
Project mention: The Emacsen family, the design of an Emacs and the importance of Lisp (2023) | news.ycombinator.com | 2024-02-16And Runestone, the open source editor framework for iOS [1]. It is also a text edotor on the app store that uses the framework.
[1] https://github.com/simonbs/Runestone
Project mention: ClangQL: A tool to run SQL-like query on C/C++ Code | news.ycombinator.com | 2024-04-07Cool to see another query language for source code! Yours is definitely closer to SQL than GritQL is.[0] I particularly like the count semantics.
[0] https://github.com/getgrit/gritql
Project mention: Use treesitter to jump to next argument without going into nested function calls? | /r/neovim | 2023-09-22I was hoping to use nvim-treesitter-textobjects to jump to the next argument via something like this:
Project mention: AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting | news.ycombinator.com | 2023-12-10Or https://github.com/afnanenayet/diffsitter. I've tried both and I like them. No preference or notable opinions on them yet!
Project mention: CodeTF: Transformer Based Library for Code Generating Language Models | /r/AutoGPT | 2023-06-16
I work with Vue every day, but I don't use AstroNvim. The Volar language server with Take Over Mode works great for me. I don't know what exactly is broken for you when commenting, but my plugin nvim-ts-context-commentstring works for setting the correct commentstring in the Vue single file component sections with Treesitter.
Project mention: AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting | news.ycombinator.com | 2023-12-10There is also a neovim plugin doing structural search/replace, also based on treesitter: https://github.com/cshuaimin/ssr.nvim
Eh, I've been looking and haven't found anything for other editors that actually tries to use TreeSitter for anything beyond highlighting. The Emacs structural editing packages are still very WIP but at least they exist.
(And also some have been based on the out of tree implementation that's been around for a while now)
Example: https://github.com/mickeynp/combobulate
Look at the original integration project https://github.com/emacs-tree-sitter/elisp-tree-sitter, before it was done inside Emacs 29+.
Hang on.. doesn’t nvim-regexplainer already exist? And what are the key differences?
Neovim supports treesitter based selections and "jumps", which I think are awesome
https://www.reddit.com/r/neovim/comments/r10llx/the_most_ama...
Or
https://github.com/RRethy/nvim-treesitter-textsubjects
Helix also supports them by default
tree-sitter related posts
- Linus Torvalds adds arbitrary tabs to kernel code
- Difftastic, a structural diff tool that understands syntax
- Tree-Sitter
- JetBrains' unremovable AI assistant meets irresistible outcry
- Convert Curl Commands to Code
- Difftastic: A structural diff tool that understands syntax
- AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting
-
A note from our sponsor - SaaSHub
www.saashub.com | 24 Apr 2024
Index
What are some of the best open-source tree-sitter projects? This list will help you:
Project | Stars | |
---|---|---|
1 | difftastic | 19,450 |
2 | tree-sitter | 16,450 |
3 | nvim-treesitter | 9,426 |
4 | curlconverter | 7,128 |
5 | ast-grep | 5,863 |
6 | Runestone | 2,567 |
7 | gritql | 2,296 |
8 | nvim-treesitter-textobjects | 1,890 |
9 | diffsitter | 1,517 |
10 | CodeTF | 1,421 |
11 | zee | 1,405 |
12 | twilight.nvim | 1,128 |
13 | nvim-ts-context-commentstring | 1,037 |
14 | doctree | 859 |
15 | ssr.nvim | 854 |
16 | combobulate | 808 |
17 | elisp-tree-sitter | 803 |
18 | nvim-regexplainer | 586 |
19 | iswap.nvim | 484 |
20 | nvim-treesitter-textsubjects | 456 |
21 | hlargs.nvim | 428 |
22 | nvim-treehopper | 397 |
23 | srgn | 385 |
Sponsored