‹ BackHN Continuity

Thread

Show HN: Treepeat – Code similarity detection using Tree-sitter

73 points · 8 comments · 91awebsi

  1. [deleted] · · focus · HN ↗

    [deleted]

  2. bradleyy · · focus · HN ↗
    Thanks for posting this; I'm very interested in finding similar chunks of code in an AST-ish fashion, and using tree-sitter seems perfect.
    1. 91awebsi · · focus · HN ↗
      I keep meaning to write a post for how this has worked for my projects, I think its been helpful.

      For active projects I setup a weekly-ish 'code audit' agent: it runs treepeat to find opportunities to refactor and bumps up enforced coverage numbers. Over time for some projects I lower the '--similarity' threshold to more broadly find similar structured code (potentially more ambitious refactoring)

  3. ryuuseijin · · focus · HN ↗
    This is what I wanted to help with duplicate code detection, which is now a real problem with agentic programming since the agent tends to duplicate helper functions a lot in bigger codebases.

    I ended up writing my own tool [1] that uses vector search, which works but can be unusably slow in large codebases.

    I will give this a shot.

    [1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;ninjaxtools&#x2F;slopdex" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ninjaxtools&#x2F;slopdex

    1. 91awebsi · · focus · HN ↗
      ooh I&#x27;ll give yours a shot - thanks for calling my project out on your readme!

      I was fortunate to have a contributor push me to consider optimizations a few months back, and it definitely helped improve the speed&#x2F;memory metrics.

      I see the CLI knobs are somewhat similar (&#x27;min lines&#x27;, &#x27;thresholds&#x27;), however your &#x27;search&#x27; is fascinating. I could see myself wondering &quot;how much error handling is duplicated for HTTP responses?&quot; and your tool would give me a start at an answer. Nice!

  4. Game_Ender · · focus · HN ↗
    Thank you for a README that is readable. It might have a bit of AI help but it’s concise and makes it clear how to use the tool.
    1. anaqin · · focus · HN ↗
      I dunno… I’m finding myself yearning for some emojis, a dedicated marketing web site, and a bunch of incomprehensible paragraphs that lack any soul.
    2. 91awebsi · · focus · HN ↗
      Yes, a little AI on the main readme. I started the bones of the thing, but Claude has been behind the keyboard for much of the implementation.
  5. adityamishra241 · · focus · HN ↗
    Nice approach. AST-level similarity seems much more useful than simple text matching.
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.