From 5e8fc3e4c8482ea1cb0d39dace217f2551604e36 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 22 Mar 2025 14:58:55 -0700 Subject: [PATCH] refactor: Simplify and optimize weight calculation in RepoMap --- aider/repomap.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/aider/repomap.py b/aider/repomap.py index de5a162b6..5793108b0 100644 --- a/aider/repomap.py +++ b/aider/repomap.py @@ -105,6 +105,7 @@ class RepoMap: mentioned_idents=None, force_refresh=False, ): + if self.max_map_tokens <= 0: return if not other_files: @@ -445,12 +446,13 @@ class RepoMap: progress() definers = defines[ident] + + mul = 1.0 + # if ident is snake_case or camelCase, mul * 10 ai! if ident in mentioned_idents: - mul = 10 - elif ident.startswith("_"): - mul = 0.1 - else: - mul = 1 + mul *= 10 + if ident.startswith("_"): + mul *= 0.1 for referencer, num_refs in Counter(references[ident]).items(): for definer in definers: @@ -458,10 +460,14 @@ class RepoMap: # if referencer == definer: # continue + use_mul = mul + if referencer in chat_rel_fnames: + use_mul *= 50 + # scale down so high freq (low value) mentions don't dominate num_refs = math.sqrt(num_refs) - G.add_edge(referencer, definer, weight=mul * num_refs, ident=ident) + G.add_edge(referencer, definer, weight=use_mul * num_refs, ident=ident) if not references: pass