ssr.nvim
oak
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ssr.nvim
-
AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting
There is also a neovim plugin doing structural search/replace, also based on treesitter: https://github.com/cshuaimin/ssr.nvim
-
telescope-sg: a new way to do structural search in neovim
This is not a totally new idea. JetBrains has a well-known article to introduce Structural Search and Replace and its usage in IDEs. Unsurprisingly, NeoVim community also has a plugin called ssr.nvim. But telescope-sg integrates the power of ast-grep's structural search with our beloved fuzzy finder telescope.nvim. That's the merit I think worth a Reddit post: everything will work like Luna-watching NeoVimmers are used to!
-
Blog Post: Data Oriented Parallel Value Interner
Level 1, syntactic search and replace. The user specifies input pattern as Zig syntax with some placeholders and the desired output likewise. The compiler in parallel matches all source files and does the transformation where there is syntactic match. These days, I think this should be pretty universally available via tree sitter (https://github.com/cshuaimin/ssr.nvim) ? Still totally worth it to have first-class support.
-
swap words according to pattern
Checkout ssr.nvim https://github.com/cshuaimin/ssr.nvim
-
New Plugin Preview! Treesitter Node Action
PS: The video in the post (with Ruby's do vs {}) -- that I watched before I read what the plugin actually does -- reminded me of the structural search-and-replace plugin someone presented a while ago on this subreddit.
- Cshuaimin/ssr.nvim: Treesitter based structural search and replace plugin for N
- Structural search and replace
oak
-
AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting
I'll post my own crappy one called oak which uses templates to render the result of tree-sitter queries.
https://github.com/go-go-golems/oak
I initially hope the queries would be more powerful, but they are really not. You can write queries and a resulting template in a yaml file. The program will scan a list of repositories for all these YAML files, and expose them as command line verbs.
Here is one to find go definitions:
https://github.com/go-go-golems/oak/blob/main/cmd/oak/querie...
This can then be run as:
oak go definitions /home/manuel/code/wesen/corporate-headquarters/geppetto/pkg/cmds/cmd.go
-
Build your own custom AI CLI tools
An earth-shattering consequence of this heavenly design is that you can add repositories for various GO GO GADGETS such as sqleton, escuse-me, geppetto or oak to your projects' codebases, point to them in your config file, and BAM, you now have a rich set of CLI tools that is automatically shared across your team and kept in source control right along the rest of your code.
What are some alternatives?
ast-grep - ⚡A CLI tool for code structural search, lint and rewriting. Written in Rust
geppetto - golang GPT3 tooling
treesj - Neovim plugin for splitting/joining blocks of code
glazed - a library to make it easy to output structured data in your command line tools. add the icing on top of your data
architext.nvim - :rocket: Structural editing powered by treesitter
parka - Convert your CLI apps to APIs
nvim-trevJ.lua - Nvim-plugin for doing the opposite of join-line (J) of arguments, powered by treesitter
sqleton - ☠️ sqleton ☠️ is a CLI tool to execute SQL commands
syntax-searcher - Language-independent command-line utility for syntax-aware pattern matching.
pyllms - Minimal Python library to connect to LLMs (OpenAI, Anthropic, AI21, Cohere, Aleph Alpha, HuggingfaceHub, Google PaLM2, with a built-in model performance benchmark.
transpose-words - Swap two words as M-t (transpose-words) in Emacs or bash.
escuse-me - GO GO GOLEM ELASTIC SEARCH GO GO GADGET - ESCUSE ME???