[karthik] fix: resolve debugger filepath-not-found on Linux

On Linux (case-sensitive FS), Directory.py lowercased child paths
before os.path.isfile(), so mixed-case files like Apps.py were never
indexed. Debugleton.py then lowercased the lookup too, guaranteeing
no match. Fix: store real paths always; on darwin only, lowercase
both sides at compare time. Closes #58.
This commit is contained in:
Karthik
2026-06-02 12:53:59 -04:00
parent d798b61121
commit 4692cbc21e
2 changed files with 7 additions and 3 deletions
+6 -2
View File
@@ -1,5 +1,6 @@
# Haik: sorry bout the filename
import sys
import threading
from debugger_backend.project_scanner import update_debug_toggles
from debugger_backend.Directory import Directory
@@ -75,12 +76,15 @@ class Debugleton:
return self.sync_lock.locked()
def find_file_info(self, filepath: str):
filepath = filepath.lower()
# print(f"Finding file info for {filepath}")
if self.needs_resync():
self.sync_to_saved()
try:
filepath_id = self.abspaths.index(filepath)
if sys.platform == "darwin":
abspaths = [p.lower() for p in self.abspaths]
filepath_id = abspaths.index(filepath.lower())
else:
filepath_id = self.abspaths.index(filepath)
match = self.instances[filepath_id]
return match.color, match.is_toggled, match.emoji
except ValueError:
+1 -1
View File
@@ -41,7 +41,7 @@ class Directory:
ordered_abspaths.append({"abspath": full_path, "instance": dir})
# print(f"\t[construct_ordered_abspaths]: Full path: {full_path}")
for child in dir.children:
child_abspath = os.path.join(root_dir, child.path).lower()
child_abspath = os.path.join(root_dir, child.path)
if os.path.isdir(child_abspath):
construct_ordered_abspaths(child, ordered_abspaths)
elif os.path.isfile(child_abspath):