save
This commit is contained in:
parent
f343a76992
commit
10d8e91b6c
@ -239,7 +239,7 @@ endmodule
|
||||
text: text.to_owned(),
|
||||
},
|
||||
};
|
||||
server.did_open(open_params, None);
|
||||
server.did_open(open_params);
|
||||
let fid = server.srcs.get_id(&uri);
|
||||
server.srcs.wait_parse_ready(fid, true);
|
||||
|
||||
@ -357,7 +357,7 @@ endmodule
|
||||
text: text.to_owned(),
|
||||
},
|
||||
};
|
||||
server.did_open(open_params, None);
|
||||
server.did_open(open_params);
|
||||
let fid = server.srcs.get_id(&uri);
|
||||
server.srcs.wait_parse_ready(fid, true);
|
||||
|
||||
@ -477,7 +477,7 @@ endmodule
|
||||
text: text.to_owned(),
|
||||
},
|
||||
};
|
||||
server.did_open(open_params, None);
|
||||
server.did_open(open_params);
|
||||
let fid = server.srcs.get_id(&uri);
|
||||
server.srcs.wait_parse_ready(fid, true);
|
||||
let file = server.srcs.get_file(fid).unwrap();
|
||||
@ -566,7 +566,7 @@ endmodule
|
||||
text: text.to_owned(),
|
||||
},
|
||||
};
|
||||
server.did_open(open_params, None);
|
||||
server.did_open(open_params);
|
||||
let fid = server.srcs.get_id(&uri);
|
||||
server.srcs.wait_parse_ready(fid, true);
|
||||
let file = server.srcs.get_file(fid).unwrap();
|
||||
@ -738,8 +738,8 @@ endinterface"#;
|
||||
text: text2.to_owned(),
|
||||
},
|
||||
};
|
||||
server.did_open(open_params, None);
|
||||
server.did_open(open_params2, None);
|
||||
server.did_open(open_params);
|
||||
server.did_open(open_params2);
|
||||
let fid = server.srcs.get_id(&uri);
|
||||
let fid2 = server.srcs.get_id(&uri2);
|
||||
server.srcs.wait_parse_ready(fid, true);
|
||||
|
@ -9,6 +9,7 @@ use sv_parser::{parse_sv, unwrap_node, Locate, RefNode, SyntaxTree};
|
||||
|
||||
use super::fast_hdlparam::{FastHdlparam, Macro};
|
||||
|
||||
#[allow(unused)]
|
||||
pub fn sv_parser(path: &str) -> Option<FastHdlparam> {
|
||||
// The path of SystemVerilog source file
|
||||
let path = PathBuf::from(path);
|
||||
|
@ -1,7 +1,7 @@
|
||||
use crate::custom_request::StringNotification;
|
||||
use crate::sources::*;
|
||||
use crate::completion::keyword::*;
|
||||
use flexi_logger::LoggerHandle;
|
||||
#[allow(unused)]
|
||||
use log::{debug, info, warn};
|
||||
use once_cell::sync::OnceCell;
|
||||
use path_clean::PathClean;
|
||||
@ -255,7 +255,7 @@ impl LanguageServer for Backend {
|
||||
drop(inc_dirs);
|
||||
drop(src_dirs);
|
||||
// parse all source files found from walking source dirs and include dirs
|
||||
self.server.srcs.init(Some(&self));
|
||||
self.server.srcs.init();
|
||||
Ok(InitializeResult {
|
||||
server_info: None,
|
||||
capabilities: ServerCapabilities {
|
||||
@ -308,7 +308,7 @@ impl LanguageServer for Backend {
|
||||
}
|
||||
|
||||
async fn did_open(&self, params: DidOpenTextDocumentParams) {
|
||||
let diagnostics = self.server.did_open(params, Some(&self));
|
||||
let diagnostics = self.server.did_open(params);
|
||||
self.client
|
||||
.publish_diagnostics(
|
||||
diagnostics.uri,
|
||||
|
@ -3,9 +3,9 @@ use crate::custom_request::update_fast_to_client;
|
||||
use crate::definition::def_types::*;
|
||||
use crate::definition::get_scopes;
|
||||
use crate::diagnostics::{get_diagnostics, is_hidden};
|
||||
use crate::server::Backend;
|
||||
use crate::server::LSPServer;
|
||||
use futures::executor::block_on;
|
||||
#[allow(unused)]
|
||||
use log::info;
|
||||
use log::{debug, error};
|
||||
use pathdiff::diff_paths;
|
||||
@ -14,6 +14,7 @@ use std::cmp::min;
|
||||
use std::collections::HashMap;
|
||||
use std::env::current_dir;
|
||||
use std::fs;
|
||||
#[allow(unused)]
|
||||
use std::ops::Deref;
|
||||
use std::ops::Range as StdRange;
|
||||
use std::path::PathBuf;
|
||||
@ -34,7 +35,7 @@ macro_rules! unwrap_result {
|
||||
}
|
||||
|
||||
impl LSPServer {
|
||||
pub fn did_open(&self, params: DidOpenTextDocumentParams, backend: Option<&Backend>) -> PublishDiagnosticsParams {
|
||||
pub fn did_open(&self, params: DidOpenTextDocumentParams) -> PublishDiagnosticsParams {
|
||||
let document: TextDocumentItem = params.text_document;
|
||||
let uri = document.uri.clone();
|
||||
|
||||
@ -50,7 +51,7 @@ impl LSPServer {
|
||||
}],
|
||||
});
|
||||
} else {
|
||||
self.srcs.add(document, backend);
|
||||
self.srcs.add(document);
|
||||
}
|
||||
// diagnostics
|
||||
let urls = self.srcs.names.read().unwrap().keys().cloned().collect();
|
||||
@ -114,6 +115,7 @@ pub struct Source {
|
||||
pub struct SourceMeta {
|
||||
pub id: usize,
|
||||
pub valid_parse: Arc<(Mutex<bool>, Condvar)>,
|
||||
#[allow(unused)]
|
||||
pub parse_handle: JoinHandle<()>,
|
||||
}
|
||||
|
||||
@ -175,7 +177,7 @@ impl Sources {
|
||||
source_dirs: Arc::new(RwLock::new(Vec::new())),
|
||||
}
|
||||
}
|
||||
pub fn init(&self, backend: Option<&Backend>) {
|
||||
pub fn init(&self) {
|
||||
let mut paths: Vec<PathBuf> = Vec::new();
|
||||
for path in &*self.include_dirs.read().unwrap() {
|
||||
paths.push(path.clone());
|
||||
@ -195,12 +197,12 @@ impl Sources {
|
||||
-1,
|
||||
text,
|
||||
);
|
||||
self.add(doc, backend);
|
||||
self.add(doc);
|
||||
}
|
||||
}
|
||||
|
||||
/// 增加一个 hdl 文件,并为该文件添加单独的解析线程
|
||||
pub fn add(&self, doc: TextDocumentItem, backend: Option<&Backend>) {
|
||||
pub fn add(&self, doc: TextDocumentItem) {
|
||||
// use a condvar to synchronize the parse thread
|
||||
// the valid bool decides whether or not the file
|
||||
// needs to be re-parsed
|
||||
@ -582,7 +584,7 @@ endmodule"#;
|
||||
text: text.to_owned(),
|
||||
},
|
||||
};
|
||||
server.did_open(open_params, None);
|
||||
server.did_open(open_params);
|
||||
let fid = server.srcs.get_id(&uri);
|
||||
let file = server.srcs.get_file(fid).unwrap();
|
||||
let file = file.read().unwrap();
|
||||
@ -635,7 +637,7 @@ endmodule"#;
|
||||
text: text.to_owned(),
|
||||
},
|
||||
};
|
||||
server.did_open(open_params, None);
|
||||
server.did_open(open_params);
|
||||
let fid = server.srcs.get_id(&uri);
|
||||
|
||||
server.srcs.wait_parse_ready(fid, true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user