chore: remove redundant code

This commit is contained in:
Myriad-Dreamin 2024-03-08 01:00:34 +08:00
parent c19197178c
commit 5f4c55516a
3 changed files with 50 additions and 46 deletions

View file

@ -1,6 +1,7 @@
pub mod analysis;
pub(crate) mod diagnostics;
pub use diagnostics::*;
pub(crate) mod signature_help;
pub use signature_help::*;
@ -30,6 +31,48 @@ pub use lsp_typst_boundary::*;
mod prelude;
mod polymorphic {
use super::prelude::*;
use super::*;
#[derive(Debug, Clone)]
pub struct OnSaveExportRequest {
pub path: PathBuf,
}
#[derive(Debug, Clone)]
pub enum CompilerQueryRequest {
OnSaveExport(OnSaveExportRequest),
Hover(HoverRequest),
GotoDefinition(GotoDefinitionRequest),
Completion(CompletionRequest),
SignatureHelp(SignatureHelpRequest),
DocumentSymbol(DocumentSymbolRequest),
Symbol(SymbolRequest),
SemanticTokensFull(SemanticTokensFullRequest),
SemanticTokensDelta(SemanticTokensDeltaRequest),
FoldingRange(FoldingRangeRequest),
SelectionRange(SelectionRangeRequest),
}
#[derive(Debug, Clone)]
pub enum CompilerQueryResponse {
OnSaveExport(()),
Hover(Option<Hover>),
GotoDefinition(Option<GotoDefinitionResponse>),
Completion(Option<CompletionResponse>),
SignatureHelp(Option<SignatureHelp>),
DocumentSymbol(Option<DocumentSymbolResponse>),
Symbol(Option<Vec<SymbolInformation>>),
SemanticTokensFull(Option<SemanticTokensResult>),
SemanticTokensDelta(Option<SemanticTokensFullDeltaResult>),
FoldingRange(Option<Vec<FoldingRange>>),
SelectionRange(Option<Vec<SelectionRange>>),
}
}
pub use polymorphic::*;
#[cfg(test)]
mod tests {
use core::fmt;

View file

@ -8,14 +8,11 @@ use anyhow::anyhow;
use futures::future::join_all;
use log::{error, trace, warn};
use tinymist_query::{
DiagnosticsMap, LspDiagnostic, LspRange, PositionEncoding, SemanticTokenCache,
CompilerQueryRequest, CompilerQueryResponse, DiagnosticsMap, LspDiagnostic, LspRange,
OnSaveExportRequest, PositionEncoding, SemanticTokenCache,
};
use tokio::sync::{broadcast, mpsc, watch, Mutex, RwLock};
use tower_lsp::lsp_types::{
CompletionResponse, DocumentSymbolResponse, FoldingRange, GotoDefinitionResponse, Hover,
SelectionRange, SemanticTokensFullDeltaResult, SemanticTokensResult, SignatureHelp,
SymbolInformation, TextDocumentContentChangeEvent, Url,
};
use tower_lsp::lsp_types::{TextDocumentContentChangeEvent, Url};
use typst::diag::{FileResult, SourceDiagnostic, SourceResult};
use typst::layout::Position;
use typst::model::Document;
@ -285,41 +282,6 @@ impl CompileCluster {
}
}
#[derive(Debug, Clone)]
pub struct OnSaveExportRequest {
pub path: PathBuf,
}
#[derive(Debug, Clone)]
pub enum CompilerQueryRequest {
OnSaveExport(OnSaveExportRequest),
Hover(tinymist_query::HoverRequest),
GotoDefinition(tinymist_query::GotoDefinitionRequest),
Completion(tinymist_query::CompletionRequest),
SignatureHelp(tinymist_query::SignatureHelpRequest),
DocumentSymbol(tinymist_query::DocumentSymbolRequest),
Symbol(tinymist_query::SymbolRequest),
SemanticTokensFull(tinymist_query::SemanticTokensFullRequest),
SemanticTokensDelta(tinymist_query::SemanticTokensDeltaRequest),
FoldingRange(tinymist_query::FoldingRangeRequest),
SelectionRange(tinymist_query::SelectionRangeRequest),
}
#[derive(Debug, Clone)]
pub enum CompilerQueryResponse {
OnSaveExport(()),
Hover(Option<Hover>),
GotoDefinition(Option<GotoDefinitionResponse>),
Completion(Option<CompletionResponse>),
SignatureHelp(Option<SignatureHelp>),
DocumentSymbol(Option<DocumentSymbolResponse>),
Symbol(Option<Vec<SymbolInformation>>),
SemanticTokensFull(Option<SemanticTokensResult>),
SemanticTokensDelta(Option<SemanticTokensFullDeltaResult>),
FoldingRange(Option<Vec<FoldingRange>>),
SelectionRange(Option<Vec<SelectionRange>>),
}
macro_rules! query_state {
($self:ident, $method:ident, $req:expr) => {{
let doc = $self.handler.result.lock().unwrap().clone().ok();

View file

@ -17,8 +17,8 @@ use serde_json::Value as JsonValue;
use tinymist_query::{
get_semantic_tokens_options, get_semantic_tokens_registration,
get_semantic_tokens_unregistration, CompletionRequest, DocumentSymbolRequest,
FoldingRangeRequest, GotoDefinitionRequest, HoverRequest, PositionEncoding,
SelectionRangeRequest, SemanticTokensDeltaRequest, SemanticTokensFullRequest,
FoldingRangeRequest, GotoDefinitionRequest, HoverRequest, OnSaveExportRequest,
PositionEncoding, SelectionRangeRequest, SemanticTokensDeltaRequest, SemanticTokensFullRequest,
SignatureHelpRequest, SymbolRequest,
};
@ -34,7 +34,6 @@ use typst::model::Document;
use typst_ts_core::config::CompileOpts;
use crate::actor::typst::CompileCluster;
use crate::actor::typst::{CompilerQueryResponse, OnSaveExportRequest};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
@ -234,14 +233,14 @@ macro_rules! run_query {
let req = $req;
$self
.universe()
.query(actor::typst::CompilerQueryRequest::$query(req.clone()))
.query(tinymist_query::CompilerQueryRequest::$query(req.clone()))
.await
.map_err(|err| {
error!("error getting $query: {err} with request {req:?}");
jsonrpc::Error::internal_error()
})
.map(|resp| {
let CompilerQueryResponse::$query(resp) = resp else {
let tinymist_query::CompilerQueryResponse::$query(resp) = resp else {
unreachable!()
};
resp