@@ -11,10 +11,9 @@ use ide::{
11
11
TokenStaticData ,
12
12
} ;
13
13
use ide_db:: LineIndexDatabase ;
14
- use load_cargo:: { load_workspace , LoadCargoConfig , ProcMacroServerChoice } ;
15
- use project_model:: { CargoConfig , ProjectManifest , ProjectWorkspace , RustLibSource } ;
14
+ use load_cargo:: { load_workspace_at , LoadCargoConfig , ProcMacroServerChoice } ;
15
+ use project_model:: { CargoConfig , RustLibSource } ;
16
16
use scip:: types as scip_types;
17
- use std:: env;
18
17
19
18
use crate :: {
20
19
cli:: flags,
@@ -34,14 +33,13 @@ impl flags::Scip {
34
33
with_proc_macro_server : ProcMacroServerChoice :: Sysroot ,
35
34
prefill_caches : true ,
36
35
} ;
37
- let path = vfs:: AbsPathBuf :: assert ( env:: current_dir ( ) ?. join ( & self . path ) ) ;
38
- let rootpath = path. normalize ( ) ;
39
- let manifest = ProjectManifest :: discover_single ( & path) ?;
40
-
41
- let workspace = ProjectWorkspace :: load ( manifest, & cargo_config, no_progress) ?;
42
-
43
- let ( host, vfs, _) =
44
- load_workspace ( workspace, & cargo_config. extra_env , & load_cargo_config) ?;
36
+ let root = vfs:: AbsPathBuf :: assert ( std:: env:: current_dir ( ) ?. join ( & self . path ) ) . normalize ( ) ;
37
+ let ( host, vfs, _) = load_workspace_at (
38
+ root. as_path ( ) . as_ref ( ) ,
39
+ & cargo_config,
40
+ & load_cargo_config,
41
+ & no_progress,
42
+ ) ?;
45
43
let db = host. raw_database ( ) ;
46
44
let analysis = host. analysis ( ) ;
47
45
@@ -58,8 +56,7 @@ impl flags::Scip {
58
56
. into ( ) ,
59
57
project_root : format ! (
60
58
"file://{}" ,
61
- path. normalize( )
62
- . as_os_str( )
59
+ root. as_os_str( )
63
60
. to_str( )
64
61
. ok_or( anyhow:: format_err!( "Unable to normalize project_root path" ) ) ?
65
62
) ,
@@ -80,7 +77,7 @@ impl flags::Scip {
80
77
new_symbol
81
78
} ;
82
79
83
- let relative_path = match get_relative_filepath ( & vfs, & rootpath , file_id) {
80
+ let relative_path = match get_relative_filepath ( & vfs, & root , file_id) {
84
81
Some ( relative_path) => relative_path,
85
82
None => continue ,
86
83
} ;
0 commit comments