1
- use std:: { path:: PathBuf , sync:: Arc } ;
1
+ use std:: { path:: PathBuf , sync:: Arc , str :: FromStr } ;
2
2
3
3
use emmylua_code_analysis:: {
4
4
load_configs, load_workspace_files, update_code_style, EmmyLuaAnalysis , Emmyrc , LuaFileInfo ,
@@ -13,7 +13,7 @@ pub fn load_workspace(
13
13
let mut analysis = EmmyLuaAnalysis :: new ( ) ;
14
14
analysis. init_std_lib ( false ) ;
15
15
16
- let workspace_folders = vec ! [ workspace_folder] ;
16
+ let mut workspace_folders = vec ! [ workspace_folder] ;
17
17
for path in & workspace_folders {
18
18
analysis. add_workspace_root ( path. clone ( ) ) ;
19
19
}
@@ -28,8 +28,15 @@ pub fn load_workspace(
28
28
]
29
29
} ;
30
30
31
- let emmyrc = Arc :: new ( load_configs ( config_files, None ) ) ;
32
- analysis. update_config ( emmyrc) ;
31
+ let mut emmyrc = load_configs ( config_files, None ) ;
32
+ emmyrc. pre_process_emmyrc ( & main_path) ;
33
+
34
+ for lib in & emmyrc. workspace . library {
35
+ analysis. add_workspace_root ( PathBuf :: from_str ( lib) . unwrap ( ) ) ;
36
+ workspace_folders. push ( PathBuf :: from_str ( lib) . unwrap ( ) ) ;
37
+ }
38
+
39
+ analysis. update_config ( Arc :: new ( emmyrc) ) ;
33
40
34
41
let file_infos = collect_files ( & workspace_folders, & analysis. emmyrc , ignore) ;
35
42
let files = file_infos
0 commit comments