Design Space for Code Search Query
(ast-grep.github.io)56 points by ncts 3 days ago | 9 comments
56 points by ncts 3 days ago | 9 comments
karmakaze 2 days ago | prev | next |
I'd be happy with just being able to do regex searches over multiple (2 or 3) lines without jumping through hoops. The mentioned Structural Search for JetBrains' IDE sounds promising--I'll have to try that out.
yijie4188 2 days ago | root | parent |
I have tried it and it seems to have a good effect. I don't know why JetBrains didn't promote this search method. Instead, it is hidden a bit deeply.
herrington_d 2 days ago | root | parent |
The feature dates way back to perhaps 2006, per Jetbrains' PDF archive[1]. Jb also updated their structural search UI/UX in 2018[2]. It is possible that users do not buy in the idea of SSR. Alternatively, it may be caused by the fact that Jb SSR's mixed language support. [3][4][5]
[1] https://www.jetbrains.com/idea/docs/ssr.pdf [2] https://www.youtube.com/watch?v=YeGPO-UHTbs [3] https://www.jetbrains.com/help/idea/structural-search-and-re... [4] https://www.jetbrains.com/help/go/structural-search-and-repl... [5] https://www.jetbrains.com/help/pycharm/structural-search-and...
conartist6 2 days ago | prev |
oooh they're gonna just die over there when they see my contribution to the design space that would earn green on every category
conartist6 2 days ago | root | parent |
I'd summarize it as "create a standard embedding language for queries".
The thing is, people seem to be under this weird assumption that you write embedding languages directly, and thus that embedding languages are hard to use.
The thing about embedding languages is that you aren't meant to see the embedded form!!! HTML is an embedding language, and I'm editing it right now (to write this post) without ever seeing a single HTML tag. I can see HTML of course if I want to by opening devtools, but the real power of an embedding language is that it can serve as a backend to a GUI because there's no state that you could create in the GUI that can't be represented in the embedding language
conartist6 2 days ago | root | parent | next |
Essentially this fuses the best of several of these approaches:
- You get the simplicity of "direct code search". You just write the syntax you want to find.
- You get the full power of "code with holes", e.g. to be able to distinguish between matching a body with no children and a body with arbitrary children
- You get the full precision of an embedded language. There are no technical limitations on this technique and what programming languages it is readily compatible with.
MrMcCall 2 days ago | root | parent | prev |
Rock on, my brother! I really like your github page blurb; good luck to you, my friend.
conartist6 2 days ago | root | parent |
thank you!!
neves 2 days ago | next |
Searching a single codebase is reasonable simple if you know your regexes. My problem is to search all my company code. What do you use to search hundreds of git repositories?