23 lines
805 B
Rust

#[allow(unused)]
use log::info;
use crate::{core::hdlparam::Define, server::LspServer};
impl LspServer {
/// 根据输入的 macro 名字,寻找 fast 中存在的第一个 macro
/// macro 可以以 ` 开头
pub fn find_macros(&self, macro_name: &str) -> Option<(Define, String)> {
let macro_name = macro_name.replace("`", "");
let fast_map = self.srcs.hdl_param.path_to_hdl_file.read().unwrap();
for path in fast_map.keys() {
if let Some(hdl_file) = fast_map.get(path) {
for define in &hdl_file.fast.fast_macro.defines {
if define.name == macro_name {
return Some((define.clone(), path.to_string()));
}
}
}
}
None
}
}