This commit is contained in:
锦恢 2024-10-09 12:55:48 +08:00
parent e8e7466287
commit a058a7c641
2 changed files with 27 additions and 11 deletions

View File

@ -56,6 +56,7 @@ impl LibraryConfig {
if file_path.exists() { if file_path.exists() {
result.push(file_path); result.push(file_path);
} else { } else {
// info!("File {pattern} does not exist");
messages.push(Message::warning(format! {"File {pattern} does not exist"})); messages.push(Message::warning(format! {"File {pattern} does not exist"}));
} }
} else { } else {
@ -76,12 +77,14 @@ impl LibraryConfig {
} }
if empty_pattern { if empty_pattern {
// info!("Pattern '{stripped_pattern}' did not match any file");
messages.push(Message::warning(format!( messages.push(Message::warning(format!(
"Pattern '{stripped_pattern}' did not match any file" "Pattern '{stripped_pattern}' did not match any file"
))); )));
} }
} }
Err(err) => { Err(err) => {
// info!("Invalid pattern '{pattern}' {err}");
messages.push(Message::error(format!("Invalid pattern '{pattern}' {err}"))); messages.push(Message::error(format!("Invalid pattern '{pattern}' {err}")));
} }
} }

View File

@ -51,6 +51,7 @@ impl Project {
pub fn from_config(config: Config, messages: &mut dyn MessageHandler) -> Project { pub fn from_config(config: Config, messages: &mut dyn MessageHandler) -> Project {
let mut project = Project::new(config.standard()); let mut project = Project::new(config.standard());
let files = project.load_files_from_config(&config, messages); let files = project.load_files_from_config(&config, messages);
// info!("new project files: {files:#?}");
project.parse_and_add_files(files, messages); project.parse_and_add_files(files, messages);
project.config = config; project.config = config;
project project
@ -87,6 +88,7 @@ impl Project {
} }
self.config = config; self.config = config;
// info!("new project files: {new_files:#?}");
self.parse_and_add_files(new_files, messages); self.parse_and_add_files(new_files, messages);
} }
@ -94,26 +96,30 @@ impl Project {
let config_str = format!( let config_str = format!(
r#" r#"
[libraries] [libraries]
lib.files = ['{:?}'] lib.files = [{:?}]
"#, path.to_str().unwrap() "#, path.file_name().unwrap()
); );
let new_config = Config::from_str(&config_str, path.parent().unwrap()).unwrap(); let new_config = Config::from_str(&config_str, path.parent().unwrap()).unwrap();
let project = Project::from_config(new_config, messages); let mut project = Project::from_config(new_config, messages);
info!("new config {:#?}", project.config); // info!("new config {:#?}", project.config);
project.analyse();
project project
} }
pub fn digital_lsp_update_config( &mut self, path: &PathBuf, messages: &mut dyn MessageHandler) { pub fn digital_lsp_update_config(&mut self, path: &PathBuf, messages: &mut dyn MessageHandler) {
let config_str = format!( let config_str = format!(
r#" r#"
[libraries] [libraries]
lib.files = ['{:?}'] lib.files = [{:?}]
"#, path.to_str().unwrap() "#, path.file_name().unwrap()
); );
if let Ok(mut new_config) = Config::from_str(&config_str, path.parent().unwrap()) { if let Ok(new_config) = Config::from_str(&config_str, path.parent().unwrap()) {
new_config.append(&self.config, messages); // info!("update config - new config {:#?}", new_config);
// new_config.append(&self.config, messages);
// info!("update config - appended config {:#?}", new_config);
self.update_config(new_config, messages); self.update_config(new_config, messages);
info!("update config {:#?}", self.config); // info!("update config - updated {:#?}", self.config);
// self.analyse();
} }
} }
@ -162,14 +168,17 @@ lib.files = ['{:?}']
self.empty_libraries.clear(); self.empty_libraries.clear();
for library in config.iter_libraries() { for library in config.iter_libraries() {
//info!("load file: library {library:#?}");
let library_name = let library_name =
Latin1String::from_utf8(library.name()).expect("Library name not latin-1 encoded"); Latin1String::from_utf8(library.name()).expect("Library name not latin-1 encoded");
let library_name = self.parser.symbol(&library_name); let library_name = self.parser.symbol(&library_name);
// info!("load file: library name {library_name:#?}");
let mut empty_library = true; let mut empty_library = true;
for file_name in library.file_names(messages) { for file_name in library.file_names(messages) {
empty_library = false; empty_library = false;
// info!("load file: file name {file_name:#?}");
match files.entry(FilePath::new(&file_name)) { match files.entry(FilePath::new(&file_name)) {
Entry::Occupied(mut entry) => { Entry::Occupied(mut entry) => {
entry.get_mut().insert(library_name.clone()); entry.get_mut().insert(library_name.clone());
@ -210,8 +219,12 @@ lib.files = ['{:?}']
for (file_name, library_names, parser_diagnostics, result) in parsed.into_iter() { for (file_name, library_names, parser_diagnostics, result) in parsed.into_iter() {
let (source, design_file) = match result { let (source, design_file) = match result {
Ok(result) => result, Ok(result) => {
// info!("add file {file_name:#?}");
result
}
Err(err) => { Err(err) => {
// info!("can't add file {file_name:#?} error {:?}", err.to_string());
messages.push(Message::file_error(err.to_string(), &file_name)); messages.push(Message::file_error(err.to_string(), &file_name));
continue; continue;
} }