Design Space for Code Search Query

(ast-grep.github.io)

53 points | by ncts19 hours ago

3 comments

  • neves8 hours ago
    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?
  • karmakaze11 hours ago
    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.
  • conartist611 hours ago
    oooh they're gonna just die over there when they see my contribution to the design space that would earn green on every category
    • conartist611 hours ago
      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

      • conartist611 hours ago
        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.

      • MrMcCall11 hours ago
        Rock on, my brother! I really like your github page blurb; good luck to you, my friend.