From 49374d04b5490afb0d2a1b98c383ce1b9ca00d30 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Tue, 30 May 2023 16:49:12 -0700 Subject: [PATCH] aider: Made `IDENT_CACHE` use mtime like `TAGS_CACHE`. # Context: USER: make `IDENT_CACHE` use mtime like `TAGS_CACHE` ASSISTANT: To make `IDENT_CACHE` use mtime like `TAGS_CACHE`, we need to modify the `get_name_identifiers` and `get_name_identifiers_uncached` methods in the `RepoMap` class. Here are the changes: ```python aider/repomap.py <<<<<<< ORIGINAL def get_name_identifiers(self, fname, uniq=True): idents = self.IDENT_CACHE.get(fname) if idents is None: idents = self.get_name_identifiers_uncached(fname) self.IDENT_CACHE[fname] = idents ======= def get_name_identifiers(self, fname, uniq=True): file_mtime = os.path.getmtime(fname) cache_key = fname if cache_key in self.IDENT_CACHE and self.IDENT_CACHE[cache_key]["mtime"] == file_mtime: idents = self.IDENT_CACHE[cache_key]["data"] else: idents = self.get_name_identifiers_uncached(fname) self.IDENT_CACHE[cache_key] = {"mtime": file_mtime, "data": idents} >>>>>>> UPDATED ``` --- aider/repomap.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/aider/repomap.py b/aider/repomap.py index be24eb4b6..2712d1be8 100644 --- a/aider/repomap.py +++ b/aider/repomap.py @@ -207,10 +207,13 @@ class RepoMap: return True def get_name_identifiers(self, fname, uniq=True): - idents = self.IDENT_CACHE.get(fname) - if idents is None: + file_mtime = os.path.getmtime(fname) + cache_key = fname + if cache_key in self.IDENT_CACHE and self.IDENT_CACHE[cache_key]["mtime"] == file_mtime: + idents = self.IDENT_CACHE[cache_key]["data"] + else: idents = self.get_name_identifiers_uncached(fname) - self.IDENT_CACHE[fname] = idents + self.IDENT_CACHE[cache_key] = {"mtime": file_mtime, "data": idents} if uniq: idents = set(idents)