@@ -11,10 +11,9 @@ use ide::{
1111 TokenStaticData ,
1212} ;
1313use 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 } ;
1616use scip:: types as scip_types;
17- use std:: env;
1817
1918use crate :: {
2019 cli:: flags,
@@ -34,14 +33,13 @@ impl flags::Scip {
3433 with_proc_macro_server : ProcMacroServerChoice :: Sysroot ,
3534 prefill_caches : true ,
3635 } ;
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+ ) ?;
4543 let db = host. raw_database ( ) ;
4644 let analysis = host. analysis ( ) ;
4745
@@ -58,8 +56,7 @@ impl flags::Scip {
5856 . into ( ) ,
5957 project_root : format ! (
6058 "file://{}" ,
61- path. normalize( )
62- . as_os_str( )
59+ root. as_os_str( )
6360 . to_str( )
6461 . ok_or( anyhow:: format_err!( "Unable to normalize project_root path" ) ) ?
6562 ) ,
@@ -80,7 +77,7 @@ impl flags::Scip {
8077 new_symbol
8178 } ;
8279
83- let relative_path = match get_relative_filepath ( & vfs, & rootpath , file_id) {
80+ let relative_path = match get_relative_filepath ( & vfs, & root , file_id) {
8481 Some ( relative_path) => relative_path,
8582 None => continue ,
8683 } ;
0 commit comments