Skip to content

Commit d7d1722

Browse files
fix: processing args in lsp
1 parent 27745fb commit d7d1722

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

codeflash/lsp/beta.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from pygls import uris
1111

1212
from codeflash.api.cfapi import get_codeflash_api_key, get_user_id
13+
from codeflash.cli_cmds.cli import process_pyproject_config
1314
from codeflash.code_utils.git_utils import create_diff_patch_from_worktree
1415
from codeflash.code_utils.shell_utils import save_api_key_to_rc
1516
from codeflash.discovery.functions_to_optimize import filter_functions, get_functions_within_git_diff
@@ -140,7 +141,6 @@ def discover_function_tests(server: CodeflashLanguageServer, params: FunctionOpt
140141

141142
@server.feature("validateProject")
142143
def validate_project(server: CodeflashLanguageServer, _params: FunctionOptimizationParams) -> dict[str, str]:
143-
from codeflash.cli_cmds.cli import process_pyproject_config
144144
from codeflash.cli_cmds.cmd_init import is_valid_pyproject_toml
145145

146146
server.show_message_log("Validating project...", "Info")
@@ -152,8 +152,11 @@ def validate_project(server: CodeflashLanguageServer, _params: FunctionOptimizat
152152
"message": "pyproject.toml is not valid", # keep the error message the same, the extension is matching "pyproject.toml" in the error message to show the codeflash init instructions
153153
}
154154

155-
new_args = process_pyproject_config(server.args)
156-
server.args = new_args
155+
new_args = server.args
156+
if not server.args_processed_before:
157+
new_args = process_pyproject_config(server.args)
158+
server.args = new_args
159+
server.args_processed_before = True
157160

158161
repo = git.Repo(new_args.module_root, search_parent_directories=True)
159162
if repo.bare:
@@ -178,7 +181,9 @@ def _initialize_optimizer_if_api_key_is_valid(server: CodeflashLanguageServer) -
178181

179182
from codeflash.optimization.optimizer import Optimizer
180183

181-
server.optimizer = Optimizer(server.args)
184+
new_args = server.args if server.args_processed_before else process_pyproject_config(server.args)
185+
server.args_processed_before = True
186+
server.optimizer = Optimizer(new_args)
182187
return {"status": "success", "user_id": user_id}
183188

184189

codeflash/lsp/server.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class CodeflashLanguageServer(LanguageServer):
4646
def __init__(self, *args: Any, **kwargs: Any) -> None: # noqa: ANN401
4747
super().__init__(*args, **kwargs)
4848
self.optimizer: Optimizer | None = None
49+
self.args_processed_before: bool = False
4950
self.args = None
5051

5152
def prepare_optimizer_arguments(self, config_file: Path) -> None:

0 commit comments

Comments
 (0)