mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-31 17:55:01 +00:00
handle languages where tree-sitter only has definition tags
This commit is contained in:
parent
056f4affa6
commit
551dddd746
1 changed files with 12 additions and 3 deletions
|
@ -246,9 +246,12 @@ class RepoMap:
|
||||||
references[tag.name].append(rel_fname)
|
references[tag.name].append(rel_fname)
|
||||||
|
|
||||||
##
|
##
|
||||||
# dump(definitions)
|
# dump(defines)
|
||||||
# dump(references)
|
# dump(references)
|
||||||
|
|
||||||
|
if not references:
|
||||||
|
references = dict((k, list(v)) for k, v in defines.items())
|
||||||
|
|
||||||
idents = set(defines.keys()).intersection(set(references.keys()))
|
idents = set(defines.keys()).intersection(set(references.keys()))
|
||||||
|
|
||||||
G = nx.MultiDiGraph()
|
G = nx.MultiDiGraph()
|
||||||
|
@ -257,10 +260,13 @@ class RepoMap:
|
||||||
definers = defines[ident]
|
definers = defines[ident]
|
||||||
for referencer, num_refs in Counter(references[ident]).items():
|
for referencer, num_refs in Counter(references[ident]).items():
|
||||||
for definer in definers:
|
for definer in definers:
|
||||||
if referencer == definer:
|
# if referencer == definer:
|
||||||
continue
|
# continue
|
||||||
G.add_edge(referencer, definer, weight=num_refs, ident=ident)
|
G.add_edge(referencer, definer, weight=num_refs, ident=ident)
|
||||||
|
|
||||||
|
if not references:
|
||||||
|
pass
|
||||||
|
|
||||||
if personalization:
|
if personalization:
|
||||||
pers_args = dict(personalization=personalization, dangling=personalization)
|
pers_args = dict(personalization=personalization, dangling=personalization)
|
||||||
else:
|
else:
|
||||||
|
@ -284,6 +290,9 @@ class RepoMap:
|
||||||
|
|
||||||
ranked_tags = []
|
ranked_tags = []
|
||||||
ranked_definitions = sorted(ranked_definitions.items(), reverse=True, key=lambda x: x[1])
|
ranked_definitions = sorted(ranked_definitions.items(), reverse=True, key=lambda x: x[1])
|
||||||
|
|
||||||
|
# dump(ranked_definitions)
|
||||||
|
|
||||||
for (fname, ident), rank in ranked_definitions:
|
for (fname, ident), rank in ranked_definitions:
|
||||||
# print(f"{rank:.03f} {fname} {ident}")
|
# print(f"{rank:.03f} {fname} {ident}")
|
||||||
if fname in chat_rel_fnames:
|
if fname in chat_rel_fnames:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue