Refactoring: Remove names of methods moved to Project:

* search_files_for_pattern -> search_source_files_for_patterh
  * request_parsed_files -> gather_source_files
This commit is contained in:
Dominik Jain authored and Dominik Jain committed 2025-07-09 22:42:20 +02:00
1 parent c4d89f21e7
commit 75436727d0
5 files changed
+17 -15

No files matched your search

+1 -1
View File
@@ -184,7 +184,7 @@ def index_project(project: str, log_level: str = "INFO") -> None:
ls = create_ls_for_project(project, log_level=log_level_int)
save_after_n_files = 10
with ls.start_server():
parsed_files = project_instance.request_parsed_files()
parsed_files = project_instance.gather_source_files()
files_processed = 0
pbar = tqdm(parsed_files, disable=False)
for relative_file_path in pbar:
+5 -5
View File
@@ -122,10 +122,10 @@ class Project:
return match_path(relative_path, self.get_ignore_spec(), root_path=self.project_root)
def request_parsed_files(self, relative_path: str = "") -> list[str]:
"""Retrieves relative paths of all files analyzed by the Language Server.
def gather_source_files(self, relative_path: str = "") -> list[str]:
"""Retrieves relative paths of all source files, optionally limited to the given path
:param relative_path: will only retrieve files that are subpaths of this.
:param relative_path: if provided, restrict search to this path
"""
rel_file_paths = []
start_path = os.path.join(self.project_root, relative_path)
@@ -147,7 +147,7 @@ class Project:
)
return rel_file_paths
def search_files_for_pattern(
def search_source_files_for_pattern(
self,
pattern: str,
relative_path: str = "",
@@ -167,7 +167,7 @@ class Project:
:param paths_exclude_glob: Glob pattern to filter which files to exclude from the search. Takes precedence over paths_include_glob.
:return: List of matched consecutive lines with context
"""
relative_file_paths = self.request_parsed_files(relative_path=relative_path)
relative_file_paths = self.gather_source_files(relative_path=relative_path)
return search_files(
relative_file_paths,
pattern,
+1 -1
View File
@@ -358,7 +358,7 @@ class SearchForPatternTool(Tool):
raise FileNotFoundError(f"Relative path {relative_path} does not exist.")
if restrict_search_to_code_files:
matches = self.project.search_files_for_pattern(
matches = self.project.search_source_files_for_pattern(
pattern=substring_pattern,
relative_path=relative_path,
context_lines_before=context_lines_before,
+2 -2
View File
@@ -204,7 +204,7 @@ class TestLanguageServerBasics:
class TestProjectBasics:
@pytest.mark.parametrize("project", [Language.CLOJURE], indirect=True)
def test_search_files_for_pattern(self, project: Project) -> None:
result = project.search_files_for_pattern("defn.*greet")
result = project.search_source_files_for_pattern("defn.*greet")
assert result is not None, "Pattern search should return results"
assert len(result) > 0, "Should find at least one match for 'defn.*greet'"
@@ -212,7 +212,7 @@ class TestProjectBasics:
core_matches = [match for match in result if match.source_file_path and "core.clj" in match.source_file_path]
assert len(core_matches) > 0, "Should find greet function in core.clj"
result = project.search_files_for_pattern(":require")
result = project.search_source_files_for_pattern(":require")
assert result is not None, "Should find require statements"
utils_matches = [match for match in result if match.source_file_path and "utils.clj" in match.source_file_path]
+8 -6
View File
@@ -193,35 +193,37 @@ class TestProjectBasics:
"""Test search_files_for_pattern with various patterns and glob filters."""
# Test 1: Search for class definitions across all files
class_pattern = r"class\s+\w+\s*(?:\([^{]*\)|:)"
matches = project.search_files_for_pattern(class_pattern)
matches = project.search_source_files_for_pattern(class_pattern)
assert len(matches) > 0
# Should find multiple classes like User, Item, BaseModel, etc.
assert len(matches) >= 5
# Test 2: Search for specific class with include glob
user_class_pattern = r"class\s+User\s*(?:\([^{]*\)|:)"
matches = project.search_files_for_pattern(user_class_pattern, paths_include_glob="**/models.py")
matches = project.search_source_files_for_pattern(user_class_pattern, paths_include_glob="**/models.py")
assert len(matches) == 1 # Should only find User class in models.py
assert matches[0].source_file_path is not None
assert "models.py" in matches[0].source_file_path
# Test 3: Search for method definitions with exclude glob
method_pattern = r"def\s+\w+\s*\([^)]*\):"
matches = project.search_files_for_pattern(method_pattern, paths_exclude_glob="**/models.py")
matches = project.search_source_files_for_pattern(method_pattern, paths_exclude_glob="**/models.py")
assert len(matches) > 0
# Should find methods in services.py but not in models.py
assert all(match.source_file_path is not None and "models.py" not in match.source_file_path for match in matches)
# Test 4: Search for specific method with both include and exclude globs
create_user_pattern = r"def\s+create_user\s*\([^)]*\)(?:\s*->[^:]+)?:"
matches = project.search_files_for_pattern(create_user_pattern, paths_include_glob="**/*.py", paths_exclude_glob="**/models.py")
matches = project.search_source_files_for_pattern(
create_user_pattern, paths_include_glob="**/*.py", paths_exclude_glob="**/models.py"
)
assert len(matches) == 1 # Should only find create_user in services.py
assert matches[0].source_file_path is not None
assert "services.py" in matches[0].source_file_path
# Test 5: Search for a pattern that should appear in multiple files
init_pattern = r"def\s+__init__\s*\([^)]*\):"
matches = project.search_files_for_pattern(init_pattern)
matches = project.search_source_files_for_pattern(init_pattern)
assert len(matches) > 1 # Should find __init__ in multiple classes
# Should find __init__ in both models.py and services.py
assert any(match.source_file_path is not None and "models.py" in match.source_file_path for match in matches)
@@ -229,5 +231,5 @@ class TestProjectBasics:
# Test 6: Search with a pattern that should have no matches
no_match_pattern = r"def\s+this_method_does_not_exist\s*\([^)]*\):"
matches = project.search_files_for_pattern(no_match_pattern)
matches = project.search_source_files_for_pattern(no_match_pattern)
assert len(matches) == 0