11import argparse
2+ from ast import parse
23import asyncio
34import os
45import sys
@@ -75,27 +76,30 @@ async def execute_command(ls: LanguageServer, args: list[str]):
7576 )
7677 return
7778 if parsed_args .project_root is None :
78- assert DEFAULT_PROJECT_ROOT is not None , (
79- "Failed to automatically resolve project root!"
80- )
81-
82- parsed_args .project_root = DEFAULT_PROJECT_ROOT
79+ if DEFAULT_PROJECT_ROOT is not None :
80+ parsed_args .project_root = DEFAULT_PROJECT_ROOT
8381 elif DEFAULT_PROJECT_ROOT is None :
8482 DEFAULT_PROJECT_ROOT = str (parsed_args .project_root )
8583
86- parsed_args .project_root = os .path .abspath (str (parsed_args .project_root ))
87- await make_caches (parsed_args .project_root )
88- final_configs = await cached_project_configs [parsed_args .project_root ].merge_from (
89- parsed_args
90- )
91- final_configs .pipe = True
84+ if parsed_args .project_root is not None :
85+ parsed_args .project_root = os .path .abspath (str (parsed_args .project_root ))
86+ await make_caches (parsed_args .project_root )
87+ final_configs = await cached_project_configs [
88+ parsed_args .project_root
89+ ].merge_from (parsed_args )
90+ final_configs .pipe = True
91+ client = await get_client (final_configs )
92+ collection = await get_collection (
93+ client = client ,
94+ configs = final_configs ,
95+ make_if_missing = final_configs .action in {CliAction .vectorise },
96+ )
97+ else :
98+ final_configs = parsed_args
99+ client = await get_client (parsed_args )
100+ collection = None
92101 progress_token = str (uuid .uuid4 ())
93- client = await get_client (final_configs )
94- collection = await get_collection (
95- client = client ,
96- configs = final_configs ,
97- make_if_missing = final_configs .action in {CliAction .vectorise },
98- )
102+
99103 await ls .progress .create_async (progress_token )
100104 match final_configs .action :
101105 case CliAction .query :
@@ -108,9 +112,12 @@ async def execute_command(ls: LanguageServer, args: list[str]):
108112 )
109113 final_results = []
110114 try :
111- final_results .extend (
112- await build_query_results (collection , final_configs )
113- )
115+ if collection is None :
116+ print ("Please specify a project to search in." , file = sys .stderr )
117+ else :
118+ final_results .extend (
119+ await build_query_results (collection , final_configs )
120+ )
114121 finally :
115122 ls .progress .end (
116123 progress_token ,
0 commit comments