Hacker News new | ask | show | jobs
by kcbanner 1582 days ago
I built a Visual Studio extension that wraps ag (the silver searcher), because I was constantly flipping to the terminal to use it to search the UE4 codebase I work on. The built in MSVC text search is egregiously slow, and even tools like Visual Assist (which search via indexing symbols) take forever to run on the entire engine.

It can do a full regex search on the entire UE4 codebase in about ~6s on my SSD. Searching just the game's codebase takes ~200ms, enough to feel instant. The speed is all credit to the developers of ag, I just put a convenient interface on it.

I use it essentially as a navigation tool and it's a core part of my workflow, but haven't gotten any paying customers. I initially had hoped to sell a few copies, but since it has completely solved my own problem and probably saved me hundreds of hours of waiting for slow searches, I'm happy.

https://marketplace.visualstudio.com/items?itemName=CaseyBan...

1 comments

isn't ripgrep (rg) better than ag, performance-wise?
it is, but a) they don't care if it succeeds or not, b) there's a new faster grep-alike every couple of years, and c) there are diminishing returns from these performance enhancements. so if you're enjoying ag, more power to you.

btw my own "idc if it succeeds or not" is forkfreshness.com, a system to surface active downstream forks of otherwise dormant projects. if you've got a project you want to use, but it seems like abandonware, you can find out if other forks are keeping it alive.

oh this is brilliant, I've often had to really dig into github to find out this information!
thanks!
I haven't benchmarked it, but it could probably just be a drop-in replacement as I believe the arguments are compatible. Would be interesting to try!
Likely. The dude who developed ripgrep spent like 2 man-years on it full-time, apparently. Interesting (long, detailed) blog post about it: https://blog.burntsushi.net/ripgrep/
I don't think it took that much time. If you count the time involved in the regex engine though, you might get a bit closer. :-)
LOL. I thought I read that somewhere in your blog post about it (which was amazingly detailed and interesting), but human minds are poo. Thanks so much for this sweet tool! Is there a ripgrep lib that other software can build on this, btw?
Technically yes, and this is the best I can offer: https://github.com/BurntSushi/ripgrep/issues/1009

In practice, there's no real high level documentation. And there is still a considerable amount of "glue" code in ripgrep's main executable. So the library layer exists at a lower level of abstraction, which may or may not be okay for your use case.

Thanks for all your hardwork! I've been dabbling in Rust and doing toy projects, but have years of experience in other languages. Are there any rust projects you recommend contributing to that have a good community?
Rust itself for sure. And rust-analyzer. I'm sure there are more. :-)