Design Space for Code Search Query

(ast-grep.github.io)

56 points | by ncts1 天前

3 comments

  • neves1 天前
    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?
  • karmakaze1 天前
    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.
  • conartist61 天前
    oooh they're gonna just die over there when they see my contribution to the design space that would earn green on every category
    • conartist61 天前
      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

      • conartist61 天前
        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.

      • MrMcCall1 天前
        Rock on, my brother! I really like your github page blurb; good luck to you, my friend.