mirror of
https://github.com/latex-lsp/texlab.git
synced 2025-12-23 09:19:21 +00:00
Use boxed macro inside jsonrpc_client
This commit is contained in:
parent
45b5f6b455
commit
2f6ad42735
51 changed files with 38 additions and 97 deletions
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
extern crate proc_macro;
|
||||
|
||||
use proc_macro::TokenStream;
|
||||
use proc_macro::{TokenStream, TokenTree};
|
||||
use quote::quote;
|
||||
use quote::ToTokens;
|
||||
use std::iter::FromIterator;
|
||||
|
|
@ -15,7 +15,11 @@ pub fn boxed(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
|||
match parse::<ItemFn>(item.clone()) {
|
||||
Ok(fn_) => boxed_fn(fn_),
|
||||
Err(_) => {
|
||||
let item: TokenStream = TokenStream::from_iter(item.into_iter().skip(1));
|
||||
let item = TokenStream::from_iter(item.into_iter().filter(|x| match x {
|
||||
TokenTree::Ident(x) if x.to_string() == "async" => false,
|
||||
_ => true,
|
||||
}));
|
||||
|
||||
let method: TraitItemMethod = parse(item).unwrap();
|
||||
boxed_trait_method(method)
|
||||
}
|
||||
|
|
@ -30,6 +34,7 @@ fn boxed_fn(fn_: ItemFn) -> TokenStream {
|
|||
let tokens = quote! {
|
||||
#(#attrs)*
|
||||
#vis #decl {
|
||||
use futures::future::FutureExt;
|
||||
let task = async move #block;
|
||||
task.boxed()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
use crate::types::*;
|
||||
use futures::channel::oneshot;
|
||||
use futures::future::BoxFuture;
|
||||
use futures::lock::Mutex;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
|
|
@ -12,8 +11,6 @@ use std::sync::Arc;
|
|||
|
||||
pub type Result<T> = std::result::Result<T, Error>;
|
||||
|
||||
pub type FutureResult<'a, T> = BoxFuture<'a, Result<T>>;
|
||||
|
||||
pub trait ResponseHandler {
|
||||
#[boxed]
|
||||
async fn handle(&self, response: Response);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
|
||||
extern crate proc_macro;
|
||||
|
||||
use proc_macro::TokenStream;
|
||||
use quote::quote;
|
||||
use std::str::FromStr;
|
||||
use syn::export::TokenStream2;
|
||||
use syn::*;
|
||||
|
||||
|
|
@ -52,18 +54,12 @@ impl MethodMeta {
|
|||
}
|
||||
|
||||
#[proc_macro_attribute]
|
||||
pub fn jsonrpc_method(
|
||||
_attr: proc_macro::TokenStream,
|
||||
item: proc_macro::TokenStream,
|
||||
) -> proc_macro::TokenStream {
|
||||
pub fn jsonrpc_method(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
||||
item
|
||||
}
|
||||
|
||||
#[proc_macro_attribute]
|
||||
pub fn jsonrpc_server(
|
||||
_attr: proc_macro::TokenStream,
|
||||
item: proc_macro::TokenStream,
|
||||
) -> proc_macro::TokenStream {
|
||||
pub fn jsonrpc_server(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
||||
let impl_: ItemImpl = parse_macro_input!(item);
|
||||
let generics = &impl_.generics;
|
||||
let self_ty = &impl_.self_ty;
|
||||
|
|
@ -75,7 +71,6 @@ pub fn jsonrpc_server(
|
|||
impl #generics jsonrpc::RequestHandler for #self_ty {
|
||||
#[boxed]
|
||||
async fn handle_request(&self, request: jsonrpc::Request) -> jsonrpc::Response {
|
||||
use futures::prelude::*;
|
||||
use jsonrpc::*;
|
||||
|
||||
match request.method.as_str() {
|
||||
|
|
@ -99,10 +94,8 @@ pub fn jsonrpc_server(
|
|||
}
|
||||
|
||||
#[proc_macro_attribute]
|
||||
pub fn jsonrpc_client(
|
||||
attr: proc_macro::TokenStream,
|
||||
item: proc_macro::TokenStream,
|
||||
) -> proc_macro::TokenStream {
|
||||
pub fn jsonrpc_client(attr: TokenStream, item: TokenStream) -> TokenStream {
|
||||
let item = TokenStream::from_str(&item.to_string().replace("async ", "")).unwrap();
|
||||
let trait_: ItemTrait = parse_macro_input!(item);
|
||||
let trait_ident = &trait_.ident;
|
||||
let stubs = generate_client_stubs(&trait_.items);
|
||||
|
|
@ -113,7 +106,7 @@ pub fn jsonrpc_client(
|
|||
#trait_
|
||||
|
||||
pub struct #struct_ident<O> {
|
||||
client: std::sync::Arc<jsonrpc::Client<O>>
|
||||
client: jsonrpc::Client<O>
|
||||
}
|
||||
|
||||
impl<O> #struct_ident<O>
|
||||
|
|
@ -122,7 +115,7 @@ pub fn jsonrpc_client(
|
|||
{
|
||||
pub fn new(output: std::sync::Arc<futures::lock::Mutex<O>>) -> Self {
|
||||
Self {
|
||||
client: std::sync::Arc::new(jsonrpc::Client::new(output)),
|
||||
client: jsonrpc::Client::new(output),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -138,8 +131,9 @@ pub fn jsonrpc_client(
|
|||
where
|
||||
O: jsonrpc::Output,
|
||||
{
|
||||
fn handle(&self, response: jsonrpc::Response) -> futures::future::BoxFuture<'_, ()> {
|
||||
self.client.handle(response)
|
||||
#[boxed]
|
||||
async fn handle(&self, response: jsonrpc::Response) -> () {
|
||||
self.client.handle(response).await
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -195,36 +189,24 @@ fn generate_client_stubs(items: &Vec<TraitItem>) -> Vec<TokenStream2> {
|
|||
let mut stubs = Vec::new();
|
||||
for item in items {
|
||||
let method = unwrap!(item, TraitItem::Method(x) => x);
|
||||
let attrs = &method.attrs;
|
||||
let sig = &method.sig;
|
||||
let param = unwrap!(&sig.decl.inputs[1], FnArg::Captured(x) => &x.pat);
|
||||
let meta = MethodMeta::parse(method.attrs.first().unwrap());
|
||||
let meta = MethodMeta::parse(attrs.first().unwrap());
|
||||
let name = &meta.name;
|
||||
|
||||
let stub = match meta.kind {
|
||||
MethodKind::Request => quote!(
|
||||
#[boxed]
|
||||
#sig {
|
||||
use futures::prelude::*;
|
||||
use jsonrpc::*;
|
||||
|
||||
let client = std::sync::Arc::clone(&self.client);
|
||||
let task = async move {
|
||||
let result = client.send_request(#name.to_owned(), #param).await?;
|
||||
serde_json::from_value(result).map_err(|_| Error::deserialize_error())
|
||||
};
|
||||
|
||||
task.boxed()
|
||||
let result = self.client.send_request(#name.to_owned(), #param).await?;
|
||||
serde_json::from_value(result).map_err(|_| jsonrpc::Error::deserialize_error())
|
||||
}
|
||||
),
|
||||
MethodKind::Notification => quote!(
|
||||
#[boxed]
|
||||
#sig {
|
||||
use futures::prelude::*;
|
||||
|
||||
let client = std::sync::Arc::clone(&self.client);
|
||||
let task = async move {
|
||||
self.client.send_notification(#name.to_owned(), #param).await;
|
||||
};
|
||||
|
||||
task.boxed()
|
||||
self.client.send_notification(#name.to_owned(), #param).await
|
||||
}
|
||||
),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
use crate::client::LspClient;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
use crate::diagnostics::LatexLintOptions;
|
||||
use crate::formatting::bibtex::BibtexFormattingOptions;
|
||||
use futures::future::BoxFuture;
|
||||
use futures::lock::Mutex;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use jsonrpc::client::{FutureResult, Result};
|
||||
use jsonrpc::client::Result;
|
||||
use jsonrpc_derive::{jsonrpc_client, jsonrpc_method};
|
||||
use lsp_types::*;
|
||||
use serde::Serialize;
|
||||
|
|
@ -14,22 +12,28 @@ use std::collections::HashMap;
|
|||
#[jsonrpc_client(LatexLspClient)]
|
||||
pub trait LspClient {
|
||||
#[jsonrpc_method("workspace/configuration", kind = "request")]
|
||||
fn configuration(&self, params: ConfigurationParams) -> FutureResult<'_, serde_json::Value>;
|
||||
#[boxed]
|
||||
async fn configuration(&self, params: ConfigurationParams) -> Result<serde_json::Value>;
|
||||
|
||||
#[jsonrpc_method("window/showMessage", kind = "notification")]
|
||||
fn show_message(&self, params: ShowMessageParams) -> BoxFuture<'_, ()>;
|
||||
#[boxed]
|
||||
async fn show_message(&self, params: ShowMessageParams);
|
||||
|
||||
#[jsonrpc_method("client/registerCapability", kind = "request")]
|
||||
fn register_capability(&self, params: RegistrationParams) -> FutureResult<'_, ()>;
|
||||
#[boxed]
|
||||
async fn register_capability(&self, params: RegistrationParams) -> Result<()>;
|
||||
|
||||
#[jsonrpc_method("textDocument/publishDiagnostics", kind = "notification")]
|
||||
fn publish_diagnostics(&self, params: PublishDiagnosticsParams) -> BoxFuture<'_, ()>;
|
||||
#[boxed]
|
||||
async fn publish_diagnostics(&self, params: PublishDiagnosticsParams);
|
||||
|
||||
#[jsonrpc_method("window/progress", kind = "notification")]
|
||||
fn progress(&self, params: ProgressParams) -> BoxFuture<'_, ()>;
|
||||
#[boxed]
|
||||
async fn progress(&self, params: ProgressParams) -> ();
|
||||
|
||||
#[jsonrpc_method("window/logMessage", kind = "notification")]
|
||||
fn log_message(&self, params: LogMessageParams) -> BoxFuture<'_, ()>;
|
||||
#[boxed]
|
||||
async fn log_message(&self, params: LogMessageParams) -> ();
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Clone, Default)]
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ use crate::feature::{FeatureProvider, FeatureRequest};
|
|||
use crate::syntax::bibtex::BibtexDeclaration;
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ use crate::feature::{FeatureProvider, FeatureRequest};
|
|||
use crate::syntax::bibtex::BibtexNode;
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ use crate::feature::{FeatureProvider, FeatureRequest};
|
|||
use crate::syntax::bibtex::BibtexNode;
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use crate::completion::factory;
|
|||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::data::symbols::DATABASE;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use crate::completion::factory;
|
|||
use crate::completion::factory::LatexComponentId;
|
||||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ use crate::completion::latex::combinators::LatexCombinators;
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::latex::CITATION_COMMANDS;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::completion::factory;
|
||||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::completion::factory;
|
||||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ use crate::completion::factory::LatexComponentId;
|
|||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::data::symbols::DATABASE;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::completion::factory;
|
||||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use crate::completion::factory;
|
|||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::latex::LatexCommand;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::path::{Path, PathBuf};
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ use crate::completion::factory::LatexComponentId;
|
|||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::completion::latex::kernel_primitives::KERNEL_COMMANDS;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ use crate::completion::factory::LatexComponentId;
|
|||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::completion::latex::kernel_primitives::KERNEL_ENVIRONMENTS;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ use crate::completion::latex::combinators::LatexCombinators;
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::latex::*;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::completion::factory;
|
||||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use crate::completion::factory;
|
|||
use crate::completion::factory::LatexComponentId;
|
||||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::completion::factory;
|
||||
use crate::completion::latex::combinators::LatexCombinators;
|
||||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ use crate::completion::latex::combinators::LatexCombinators;
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use itertools::Itertools;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ use self::latex::tikz_library::LatexTikzLibraryCompletionProvider;
|
|||
use self::latex::user_command::LatexUserCommandCompletionProvider;
|
||||
use self::quality::OrderByQualityCompletionProvider;
|
||||
use crate::feature::{ConcatProvider, FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use itertools::Itertools;
|
||||
use lsp_types::{CompletionItem, CompletionParams};
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ use crate::syntax::latex::*;
|
|||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use crate::workspace::Document;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{CompletionItem, CompletionParams, Position};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ use crate::syntax::latex::{LatexCitation, LatexToken};
|
|||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use crate::workspace::Document;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{Location, TextDocumentPositionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ use crate::syntax::latex::*;
|
|||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use crate::workspace::Document;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{Location, TextDocumentPositionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ mod latex_label;
|
|||
use self::latex_citation::LatexCitationDefinitionProvider;
|
||||
use self::latex_label::LatexLabelDefinitionProvider;
|
||||
use crate::feature::{ConcatProvider, FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{Location, TextDocumentPositionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ use crate::resolver::TexResolver;
|
|||
#[cfg(test)]
|
||||
use crate::workspace::WorkspaceBuilder;
|
||||
use crate::workspace::{Document, Workspace};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
#[cfg(test)]
|
||||
use lsp_types::*;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use crate::feature::{FeatureProvider, FeatureRequest};
|
|||
use crate::syntax::bibtex::BibtexDeclaration;
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{FoldingRange, FoldingRangeKind, FoldingRangeParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{FoldingRange, FoldingRangeKind, FoldingRangeParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{FoldingRange, FoldingRangeKind, FoldingRangeParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ use self::bibtex_declaration::BibtexDeclarationFoldingProvider;
|
|||
use self::latex_environment::LatexEnvironmentFoldingProvider;
|
||||
use self::latex_section::LatexSectionFoldingProvider;
|
||||
use crate::feature::{ConcatProvider, FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{FoldingRange, FoldingRangeParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use crate::feature::{FeatureProvider, FeatureRequest};
|
|||
use crate::syntax::latex::*;
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{DocumentHighlight, DocumentHighlightKind, TextDocumentPositionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ mod latex_label;
|
|||
|
||||
use self::latex_label::LatexLabelHighlightProvider;
|
||||
use crate::feature::{ConcatProvider, FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{DocumentHighlight, TextDocumentPositionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use crate::data::bibtex_entry_type;
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::*;
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use crate::data::bibtex_field;
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::bibtex::*;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::*;
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ use crate::formatting::bibtex::{BibtexFormattingOptions, BibtexFormattingParams}
|
|||
use crate::syntax::bibtex::BibtexEntry;
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{Hover, HoverContents, MarkupContent, MarkupKind, TextDocumentPositionParams};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ use crate::feature::{FeatureProvider, FeatureRequest};
|
|||
use crate::syntax::latex::LatexIncludeKind;
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{Hover, HoverContents, TextDocumentPositionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ use self::bibtex_field::BibtexFieldHoverProvider;
|
|||
use self::latex_citation::LatexCitationHoverProvider;
|
||||
use self::latex_component::LatexComponentHoverProvider;
|
||||
use crate::feature::{ChoiceProvider, FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{Hover, TextDocumentPositionParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use crate::feature::{FeatureProvider, FeatureRequest};
|
|||
use crate::syntax::latex::*;
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{DocumentLink, DocumentLinkParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ mod latex_include;
|
|||
|
||||
use crate::feature::{ConcatProvider, FeatureProvider, FeatureRequest};
|
||||
use crate::link::latex_include::LatexIncludeLinkProvider;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{DocumentLink, DocumentLinkParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{Location, ReferenceParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::latex::LatexLabelKind;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{Location, ReferenceParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ mod latex_label;
|
|||
use self::bibtex_entry::BibtexEntryReferenceProvider;
|
||||
use self::latex_label::LatexLabelReferenceProvider;
|
||||
use crate::feature::{ConcatProvider, FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{Location, ReferenceParams};
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ use crate::syntax::bibtex::BibtexSyntaxTree;
|
|||
use crate::syntax::latex::LatexSyntaxTree;
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::*;
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{RenameParams, TextEdit, WorkspaceEdit};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{RenameParams, TextEdit, WorkspaceEdit};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use crate::feature::{FeatureProvider, FeatureRequest};
|
||||
use crate::syntax::text::SyntaxNode;
|
||||
use crate::syntax::SyntaxTree;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{RenameParams, TextEdit, WorkspaceEdit};
|
||||
use std::borrow::Cow;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ use self::latex_command::LatexCommandRenameProvider;
|
|||
use self::latex_environment::LatexEnvironmentRenameProvider;
|
||||
use self::latex_label::LatexLabelRenameProvider;
|
||||
use crate::feature::{ChoiceProvider, FeatureProvider, FeatureRequest};
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use lsp_types::{RenameParams, WorkspaceEdit};
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ use crate::syntax::text::SyntaxNode;
|
|||
use crate::syntax::SyntaxTree;
|
||||
use crate::workspace::WorkspaceManager;
|
||||
use futures::lock::Mutex;
|
||||
use futures::prelude::*;
|
||||
use futures_boxed::boxed;
|
||||
use jsonrpc::server::Result;
|
||||
use jsonrpc_derive::{jsonrpc_method, jsonrpc_server};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue