diff --git a/aider/queries/tree-sitter-c-tags.scm b/aider/queries/tree-sitter-c-tags.scm deleted file mode 100644 index b827f0d57..000000000 --- a/aider/queries/tree-sitter-c-tags.scm +++ /dev/null @@ -1,23 +0,0 @@ -(translation_unit - (function_definition - declarator: (function_declarator - declarator: (identifier) @name.definition.function - ) - body: (compound_statement) @body.function - ) @definition.function - - (struct_specifier - name: (type_identifier) @name.definition.struct - body: (field_declaration_list) @body.struct - ) @definition.struct - - (union_specifier - name: (type_identifier) @name.definition.union - body: (field_declaration_list) @body.union - ) @definition.union - - (enum_specifier - name: (type_identifier) @name.definition.enum - body: (enumerator_list) @body.enum - ) @definition.enum -) diff --git a/aider/repomap.py b/aider/repomap.py index 4f0ca23f9..aba7104b8 100644 --- a/aider/repomap.py +++ b/aider/repomap.py @@ -181,6 +181,8 @@ class RepoMap: scm_fname = pkg_resources.resource_filename( __name__, os.path.join("queries", f"tree-sitter-{lang}-tags.scm") ) + dump(fname) + dump(scm_fname) query_scm = Path(scm_fname) if not query_scm.exists(): return @@ -194,8 +196,10 @@ class RepoMap: captures = query.captures(tree.root_node) captures = list(captures) + dump(captures) for node, tag in captures: + dump(node, tag) if tag.startswith("name.definition."): kind = "def" elif tag.startswith("name.reference."): @@ -343,16 +347,15 @@ class RepoMap: return best_tree -def find_py_files(directory): +def find_src_files(directory): if not os.path.isdir(directory): return [directory] - py_files = [] + src_files = [] for root, dirs, files in os.walk(directory): for file in files: - if file.endswith(".py"): - py_files.append(os.path.join(root, file)) - return py_files + src_files.append(os.path.join(root, file)) + return src_files def get_random_color(): @@ -367,15 +370,13 @@ if __name__ == "__main__": chat_fnames = [] other_fnames = [] - for dname in sys.argv[1:]: - if ".venv" in dname: - other_fnames += find_py_files(dname) + for fname in sys.argv[1:]: + if Path(fname).is_dir(): + chat_fnames += find_src_files(fname) else: - chat_fnames += find_py_files(dname) + chat_fnames.append(fname) - root = os.path.commonpath(chat_fnames) - - rm = RepoMap(root=root) + rm = RepoMap(root=".") repo_map = rm.get_ranked_tags_map(chat_fnames, other_fnames) dump(len(repo_map))