From 90b76179022388fa8c9041c0890f73b5a8ff913d Mon Sep 17 00:00:00 2001 From: MohamedAklamaash Date: Tue, 5 May 2026 16:31:25 +0530 Subject: [PATCH 1/3] feat: skip specific folders to not parse --- scripts/coding_discovery_tools/constants.py | 5 ++++- scripts/coding_discovery_tools/macos_extraction_helpers.py | 5 +++-- .../windows/cursor_cli/settings_extractor.py | 6 ++++-- .../coding_discovery_tools/windows_extraction_helpers.py | 6 ++++-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/scripts/coding_discovery_tools/constants.py b/scripts/coding_discovery_tools/constants.py index 359785d3..18c4a201 100644 --- a/scripts/coding_discovery_tools/constants.py +++ b/scripts/coding_discovery_tools/constants.py @@ -35,7 +35,10 @@ # Cursor rules extraction settings MAX_CONFIG_FILE_SIZE = 50 * 1024 # 50KB in bytes MAX_SEARCH_DEPTH = 10 # Maximum directory depth to search recursively -SKIP_DIRS = {'.git', 'node_modules', 'venv', '__pycache__', '.venv', 'vendor', '.idea', '.vscode', 'Library', '.Trash', '.cache'} +SKIP_DIRS = frozenset[str]({ + '.git', 'node_modules', 'venv', '__pycache__', '.venv', 'vendor', '.idea', '.vscode', 'Library', '.Trash', '.cache' + 'Photos', 'Music', 'Movies', 'Pictures', 'Public', 'Templates', 'Videos', +}) # System directories to skip when searching from root (macOS/Unix) SKIP_SYSTEM_DIRS = { diff --git a/scripts/coding_discovery_tools/macos_extraction_helpers.py b/scripts/coding_discovery_tools/macos_extraction_helpers.py index 6765721c..29a97c98 100644 --- a/scripts/coding_discovery_tools/macos_extraction_helpers.py +++ b/scripts/coding_discovery_tools/macos_extraction_helpers.py @@ -9,12 +9,13 @@ import os from datetime import datetime from pathlib import Path +import re from typing import List, Dict, Optional, Tuple from .constants import MAX_CONFIG_FILE_SIZE, MAX_SEARCH_DEPTH, SKIP_DIRS, SKIP_SYSTEM_DIRS logger = logging.getLogger(__name__) - +SKIP_PATTERN = re.compile("|".join(map(str, map(re.escape, SKIP_DIRS))), re.IGNORECASE) def is_running_as_root() -> bool: """ @@ -87,7 +88,7 @@ def should_skip_path(path: Path) -> bool: Returns: True if path should be skipped, False otherwise """ - return any(part in SKIP_DIRS for part in path.parts) + return any(SKIP_PATTERN.search(part) for part in path.parts) def should_skip_system_path(path: Path) -> bool: diff --git a/scripts/coding_discovery_tools/windows/cursor_cli/settings_extractor.py b/scripts/coding_discovery_tools/windows/cursor_cli/settings_extractor.py index 0c719004..98613ef4 100644 --- a/scripts/coding_discovery_tools/windows/cursor_cli/settings_extractor.py +++ b/scripts/coding_discovery_tools/windows/cursor_cli/settings_extractor.py @@ -26,7 +26,9 @@ from pathlib import Path from typing import Optional, List, Dict -from ...constants import MAX_SEARCH_DEPTH, SKIP_DIRS, WINDOWS_SKIP_USER_DIRS +from scripts.coding_discovery_tools.macos_extraction_helpers import SKIP_PATTERN as SKIPDIR_PATTERN + +from ...constants import MAX_SEARCH_DEPTH, WINDOWS_SKIP_USER_DIRS from ...windows_extraction_helpers import ( is_running_as_admin, read_file_content, @@ -182,7 +184,7 @@ def _walk_for_cursor_cli_settings( if not entry.is_dir(): continue - if entry.name in SKIP_DIRS or entry.name in system_dirs: + if SKIPDIR_PATTERN.search(entry.name) is not None or entry.name in system_dirs: continue if entry.name == self.CURSOR_DIR_NAME: diff --git a/scripts/coding_discovery_tools/windows_extraction_helpers.py b/scripts/coding_discovery_tools/windows_extraction_helpers.py index 37ccc452..28a25896 100644 --- a/scripts/coding_discovery_tools/windows_extraction_helpers.py +++ b/scripts/coding_discovery_tools/windows_extraction_helpers.py @@ -10,7 +10,9 @@ from pathlib import Path from typing import List, Dict, Optional, Tuple, Callable -from .constants import MAX_CONFIG_FILE_SIZE, SKIP_DIRS +from scripts.coding_discovery_tools.macos_extraction_helpers import SKIP_PATTERN + +from .constants import MAX_CONFIG_FILE_SIZE logger = logging.getLogger(__name__) @@ -70,7 +72,7 @@ def should_skip_path(path: Path, system_dirs: Optional[set] = None) -> bool: True if path should be skipped, False otherwise """ # Skip common project directories (check all path parts for nested matches) - if any(part in SKIP_DIRS for part in path.parts): + if SKIP_PATTERN.search(str(path)) is not None: return True # Skip system directories if provided (Windows-specific) From 032217b1d893ce631099d1c04958803dff4c9d02 Mon Sep 17 00:00:00 2001 From: MohamedAklamaash Date: Tue, 5 May 2026 16:49:38 +0530 Subject: [PATCH 2/3] fix: added comma --- scripts/coding_discovery_tools/constants.py | 4 ++-- scripts/coding_discovery_tools/windows_extraction_helpers.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/coding_discovery_tools/constants.py b/scripts/coding_discovery_tools/constants.py index 18c4a201..cdfd5052 100644 --- a/scripts/coding_discovery_tools/constants.py +++ b/scripts/coding_discovery_tools/constants.py @@ -36,8 +36,8 @@ MAX_CONFIG_FILE_SIZE = 50 * 1024 # 50KB in bytes MAX_SEARCH_DEPTH = 10 # Maximum directory depth to search recursively SKIP_DIRS = frozenset[str]({ - '.git', 'node_modules', 'venv', '__pycache__', '.venv', 'vendor', '.idea', '.vscode', 'Library', '.Trash', '.cache' - 'Photos', 'Music', 'Movies', 'Pictures', 'Public', 'Templates', 'Videos', + '.git', 'node_modules', 'venv', '__pycache__', '.venv', 'vendor', '.idea', '.vscode', 'Library', '.Trash', '.cache', + 'Photos', 'Music', 'Movies', 'Pictures', 'Public', 'Templates', 'Videos' }) # System directories to skip when searching from root (macOS/Unix) diff --git a/scripts/coding_discovery_tools/windows_extraction_helpers.py b/scripts/coding_discovery_tools/windows_extraction_helpers.py index 28a25896..c83ca075 100644 --- a/scripts/coding_discovery_tools/windows_extraction_helpers.py +++ b/scripts/coding_discovery_tools/windows_extraction_helpers.py @@ -72,7 +72,7 @@ def should_skip_path(path: Path, system_dirs: Optional[set] = None) -> bool: True if path should be skipped, False otherwise """ # Skip common project directories (check all path parts for nested matches) - if SKIP_PATTERN.search(str(path)) is not None: + if SKIP_PATTERN.search(path) is not None: return True # Skip system directories if provided (Windows-specific) From 4216d5d83369a9a8f26b36cb0f3c7fa1fbb7d665 Mon Sep 17 00:00:00 2001 From: MohamedAklamaash Date: Tue, 5 May 2026 17:29:03 +0530 Subject: [PATCH 3/3] fix: fixed type error --- scripts/coding_discovery_tools/windows_extraction_helpers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/coding_discovery_tools/windows_extraction_helpers.py b/scripts/coding_discovery_tools/windows_extraction_helpers.py index c83ca075..d4db69ea 100644 --- a/scripts/coding_discovery_tools/windows_extraction_helpers.py +++ b/scripts/coding_discovery_tools/windows_extraction_helpers.py @@ -72,7 +72,7 @@ def should_skip_path(path: Path, system_dirs: Optional[set] = None) -> bool: True if path should be skipped, False otherwise """ # Skip common project directories (check all path parts for nested matches) - if SKIP_PATTERN.search(path) is not None: + if any(path for path in path.parts if SKIP_PATTERN.search(path) is not None): return True # Skip system directories if provided (Windows-specific)