4 ms·
Absolutely. GitHub Code Search is by far the most valuable online development tool I have used the past year. It is so much more useful than Copilot or any of t
by csnover 3y ago
Absolutely. GitHub Code Search is by far the most valuable online development tool I have used the past year. It is so much more useful than Copilot or any of the AI LLMs in my experience.
With Code Search, I have:
* Rewritten a CMake build system, which would have been practically impossible without access to real-world examples because of how poorly designed and documented it is;
* Validated machine-generated translations by looking up language strings from projects that used human translators;
* Tracked down bugs in unfamiliar codebases, using symbol-based navigation, without the downtime of fetching a bunch of files and waiting for a language server to process them locally;
* Reviewed how projects were using the APIs of a library I work on to determine whether high-maintenance features were actually used, and whether tricky features were being used correctly or needed redesigning to reduce programmer error
Kudos to the team at GitHub. Genuinely stellar work.
- neuronexmachina 3y agoThat's really interesting, do you have any examples handy of search queries you used?
- Kuinox 3y agoI'm not the one you asked to, but here my usages: Searching how an API is used. Searching how people configured something. Searching accidental uses of an attribute: https://github.com/dotnet/csharplang/discussions/5657#discussioncomment-4415454 https://github.com/dotnet/csharplang/discussions/5657#discus...
- MaxLeiter 3y agoIt's amazing for searching examples of rarely used / non-public APIs
- csnover 3y agoFor CMake stuff I would search like `<function name> path:/CMakeLists\.txt$|cmake/`. For translations I would search a phrase using `<phrase> lang:"Gettext Catalog" path:/<language iso code>/`. For reviewing library consumers I would just search for `<my library name> (<function name> OR <other function name> OR <third function name>) NOT path:<my library name>/**`. There may be better queries for some of these, but I really didn’t have to do any magic or weird tricks. Everything more or less just works.