7 ms·
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
by kcbanner 5y 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=CaseyBanner.turbosearch https://marketplace.visualstudio.com/items?itemName=CaseyBan...
- pmarreck 5y agoisn't ripgrep (rg) better than ag, performance-wise?
- tessierashpool 5y agoit 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.
- pmarreck 5y agooh this is brilliant, I've often had to really dig into github to find out this information!
- tessierashpool 5y agothanks!
- kcbanner 5y agoI 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!
- pmarreck 5y agoLikely. 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/ https://blog.burntsushi.net/ripgrep/
- burntsushi 5y agoI 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. :-)
- pmarreck 5y agoLOL. 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?
- burntsushi 5y agoTechnically yes, and this is the best I can offer: https://github.com/BurntSushi/ripgrep/issues/1009 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.
- muixoozie 5y agoThanks 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?