@@ -46,13 +46,7 @@ def get_optimizable_functions(
4646 file_path = Path (uris .to_fs_path (params .textDocument .uri ))
4747 server .show_message_log (f"Getting optimizable functions for: { file_path } " , "Info" )
4848
49- server .optimizer .worktree_mode ()
50-
51- args = server .optimizer .args
52-
53- original_relative_file_path = file_path .relative_to (args .base_project_root )
54-
55- server .optimizer .args .file = server .optimizer .current_worktree / original_relative_file_path
49+ server .optimizer .args .file = file_path
5650 server .optimizer .args .function = None # Always get ALL functions, not just one
5751 server .optimizer .args .previous_checkpoint_functions = False
5852
@@ -75,11 +69,15 @@ def initialize_function_optimization(
7569) -> dict [str , str ]:
7670 file_path = Path (uris .to_fs_path (params .textDocument .uri ))
7771 server .show_message_log (f"Initializing optimization for function: { params .functionName } in { file_path } " , "Info" )
72+ if server .optimizer is None :
73+ _initialize_optimizer_if_valid (server )
7874 server .optimizer .worktree_mode ()
75+ original_args , _ = server .optimizer .original_args_and_test_cfg
7976
8077 server .optimizer .args .function = params .functionName
81- original_relative_file_path = file_path .relative_to (server . optimizer . args . base_project_root )
78+ original_relative_file_path = file_path .relative_to (original_args . project_root )
8279 server .optimizer .args .file = server .optimizer .current_worktree / original_relative_file_path
80+ server .optimizer .args .previous_checkpoint_functions = False
8381
8482 server .show_message_log (
8583 f"Args set - function: { server .optimizer .args .function } , file: { server .optimizer .args .file } " , "Info"
@@ -338,10 +336,14 @@ def perform_function_optimization( # noqa: PLR0911
338336 "patch_path" : patch_path ,
339337 }
340338 finally :
341- server .optimizer .cleanup_temporary_paths ()
342- # restore args and test cfg
343- if server .optimizer .original_args_and_test_cfg :
344- server .optimizer .args , server .optimizer .test_cfg = server .optimizer .original_args_and_test_cfg
345- server .optimizer .args .function = None
346- server .optimizer .current_worktree = None
347- server .optimizer .current_function_optimizer = None
339+ cleanup_the_optimizer (server )
340+
341+
342+ def cleanup_the_optimizer (server : CodeflashLanguageServer ) -> None :
343+ server .optimizer .cleanup_temporary_paths ()
344+ # restore args and test cfg
345+ if server .optimizer .original_args_and_test_cfg :
346+ server .optimizer .args , server .optimizer .test_cfg = server .optimizer .original_args_and_test_cfg
347+ server .optimizer .args .function = None
348+ server .optimizer .current_worktree = None
349+ server .optimizer .current_function_optimizer = None
0 commit comments