From 1b93b42a907ec1ccd5bce24037f4e08db3c2ad9f Mon Sep 17 00:00:00 2001 From: light-ly Date: Fri, 4 Oct 2024 21:21:51 +0800 Subject: [PATCH 1/2] update submodule --- .gitmodules | 4 ++-- sv-parser | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index caea65c..e6a1deb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "sv-parser"] path = sv-parser - url = https://github.com/light-ly/sv-parser.git + url = https://github.com/Digital-EDA/sv-parser [submodule "rust_hdl"] path = rust_hdl - url = https://github.com/light-ly/rust_hdl.git + url = https://github.com/Digital-EDA/rust_hdl diff --git a/sv-parser b/sv-parser index 3002b39..1e390e0 160000 --- a/sv-parser +++ b/sv-parser @@ -1 +1 @@ -Subproject commit 3002b3970b64903ec98a3274d7254fefa82f0435 +Subproject commit 1e390e0f4429b5004e63327b64d5095775ef27b5 From 466fad929694a5980dec9198d7e99138f7b05753 Mon Sep 17 00:00:00 2001 From: light-ly Date: Fri, 4 Oct 2024 21:30:56 +0800 Subject: [PATCH 2/2] add multi files support to vhdl --- rust_hdl | 2 +- src/completion/vhdl.rs | 8 ++------ src/definition/vhdl.rs | 8 ++------ src/document_highlight/vhdl.rs | 8 ++------ src/document_symbol/vhdl.rs | 8 ++------ src/hover/vhdl.rs | 8 ++------ src/sources.rs | 8 ++++++-- 7 files changed, 17 insertions(+), 33 deletions(-) diff --git a/rust_hdl b/rust_hdl index 47686dd..69fba9a 160000 --- a/rust_hdl +++ b/rust_hdl @@ -1 +1 @@ -Subproject commit 47686dd663b8fd063f4064fea012088a89f7aeb3 +Subproject commit 69fba9af8cb981ce1aaeacd20ca74771f12d9aa1 diff --git a/src/completion/vhdl.rs b/src/completion/vhdl.rs index 2456e4e..d0b06c4 100644 --- a/src/completion/vhdl.rs +++ b/src/completion/vhdl.rs @@ -23,12 +23,8 @@ pub fn completion(server: &LSPServer, params: &CompletionParams) -> Option project, None => return None }; diff --git a/src/definition/vhdl.rs b/src/definition/vhdl.rs index 196c0a5..38846b8 100644 --- a/src/definition/vhdl.rs +++ b/src/definition/vhdl.rs @@ -19,12 +19,8 @@ pub fn goto_vhdl_definition(server: &LSPServer, params: &GotoDefinitionParams) - } }; let escape_path = to_escape_path(&path); - let escape_path_string = escape_path.to_str().unwrap_or(""); - if escape_path_string.len() == 0 { - info!("error happen in [vhdl_parser_pipeline], escape_path_string is empty"); - return None; - } - let project = match projects.get(escape_path_string) { + + let project = match projects.get("VHDL_Project") { Some(project) => project, None => return None }; diff --git a/src/document_highlight/vhdl.rs b/src/document_highlight/vhdl.rs index e62de6b..dba8828 100644 --- a/src/document_highlight/vhdl.rs +++ b/src/document_highlight/vhdl.rs @@ -22,12 +22,8 @@ pub fn vhdl_document_highlight( } }; let escape_path = to_escape_path(&path); - let escape_path_string = escape_path.to_str().unwrap_or(""); - if escape_path_string.len() == 0 { - info!("error happen in [vhdl_parser_pipeline], escape_path_string is empty"); - return None; - } - let project = match projects.get(escape_path_string) { + + let project = match projects.get("VHDL_Project") { Some(project) => project, None => return None }; diff --git a/src/document_symbol/vhdl.rs b/src/document_symbol/vhdl.rs index 1701cb7..716c7e9 100644 --- a/src/document_symbol/vhdl.rs +++ b/src/document_symbol/vhdl.rs @@ -21,12 +21,8 @@ pub fn vhdl_document_symbol(server: &LSPServer, params: &DocumentSymbolParams) - } }; let escape_path = to_escape_path(&path); - let escape_path_string = escape_path.to_str().unwrap_or(""); - if escape_path_string.len() == 0 { - info!("error happen in [vhdl_parser_pipeline], escape_path_string is empty"); - return None; - } - let project = match projects.get(escape_path_string) { + + let project = match projects.get("VHDL_Project") { Some(project) => project, None => return None }; diff --git a/src/hover/vhdl.rs b/src/hover/vhdl.rs index 247fa46..5448a4d 100644 --- a/src/hover/vhdl.rs +++ b/src/hover/vhdl.rs @@ -21,12 +21,8 @@ pub fn hover(server: &LSPServer, params: &HoverParams) -> Option { } }; let escape_path = to_escape_path(&path); - let escape_path_string = escape_path.to_str().unwrap_or(""); - if escape_path_string.len() == 0 { - info!("error happen in [vhdl_parser_pipeline], escape_path_string is empty"); - return None; - } - let project = match projects.get(escape_path_string) { + + let project = match projects.get("VHDL_Project") { Some(project) => project, None => return None }; diff --git a/src/sources.rs b/src/sources.rs index 6fa3865..46ca67e 100644 --- a/src/sources.rs +++ b/src/sources.rs @@ -624,8 +624,12 @@ pub fn vhdl_parser_pipeline( hdl_param_handle.update_fast(escape_path_string.to_string(), fast); } let mut msg_printer = MessagePrinter::default(); - let project = vhdl_lang::Project::new_without_config(&escape_path, &mut msg_printer, None); - design_files.insert(escape_path_string.to_string(), project); + if let Some(project) = design_files.get_mut("VHDLProject") { + project.add_file(&escape_path, &mut msg_printer); + } else { + let project = vhdl_lang::Project::new_without_config(&escape_path, &mut msg_printer, None); + design_files.insert("VHDL_Project".to_string(), project); + } } }