@@ -465,6 +465,7 @@ impl Client {
466 text_document: lsp::TextDocumentIdentifier,
466 text_document: lsp::TextDocumentIdentifier,
467 position: lsp::Position,
467 position: lsp::Position,
468+ work_done_token: Option<lsp::ProgressToken>,
468 ) -> impl Future<Output = Result<Value>> {
469 ) -> impl Future<Output = Result<Value>> {
469 // ) -> Result<Vec<lsp::CompletionItem>> {
470 // ) -> Result<Vec<lsp::CompletionItem>> {
470 let params = lsp::CompletionParams {
471 let params = lsp::CompletionParams {
@@ -473,9 +474,7 @@ impl Client {
473 position,
474 position,
475 // TODO: support these tokens by async receiving and updating the choice list
476 // TODO: support these tokens by async receiving and updating the choice list
476− work_done_progress_params: lsp::WorkDoneProgressParams {
477+ work_done_progress_params: lsp::WorkDoneProgressParams { work_done_token },
477− work_done_token: None,
479 partial_result_params: lsp::PartialResultParams {
478 partial_result_params: lsp::PartialResultParams {
480 partial_result_token: None,
479 partial_result_token: None,
@@ -490,15 +489,14 @@ impl Client {
491 text_document: lsp::TextDocumentIdentifier,
490 text_document: lsp::TextDocumentIdentifier,
492 position: lsp::Position,
491 position: lsp::Position,
492+ work_done_token: Option<lsp::ProgressToken>,
493 ) -> impl Future<Output = Result<Value>> {
493 ) -> impl Future<Output = Result<Value>> {
494 let params = lsp::SignatureHelpParams {
494 let params = lsp::SignatureHelpParams {
495 text_document_position_params: lsp::TextDocumentPositionParams {
495 text_document_position_params: lsp::TextDocumentPositionParams {
496 text_document,
496 text_document,
497 position,
497 position,
499− work_done_progress_params: lsp::WorkDoneProgressParams {
499+ work_done_progress_params: lsp::WorkDoneProgressParams { work_done_token },
500− work_done_token: None,
502 context: None,
500 context: None,
503 // lsp::SignatureHelpContext
501 // lsp::SignatureHelpContext
@@ -510,15 +508,14 @@ impl Client {
511 text_document: lsp::TextDocumentIdentifier,
509 text_document: lsp::TextDocumentIdentifier,
512 position: lsp::Position,
510 position: lsp::Position,
511+ work_done_token: Option<lsp::ProgressToken>,
513 ) -> impl Future<Output = Result<Value>> {
512 ) -> impl Future<Output = Result<Value>> {
514 let params = lsp::HoverParams {
513 let params = lsp::HoverParams {
515 text_document_position_params: lsp::TextDocumentPositionParams {
514 text_document_position_params: lsp::TextDocumentPositionParams {
516 text_document,
515 text_document,
517 position,
516 position,
519− work_done_progress_params: lsp::WorkDoneProgressParams {
518+ work_done_progress_params: lsp::WorkDoneProgressParams { work_done_token },
520− work_done_token: None,
522 // lsp::SignatureHelpContext
519 // lsp::SignatureHelpContext
@@ -531,6 +528,7 @@ impl Client {
532 text_document: lsp::TextDocumentIdentifier,
529 text_document: lsp::TextDocumentIdentifier,
533 options: lsp::FormattingOptions,
530 options: lsp::FormattingOptions,
531+ work_done_token: Option<lsp::ProgressToken>,
534 ) -> anyhow::Result<Vec<lsp::TextEdit>> {
532 ) -> anyhow::Result<Vec<lsp::TextEdit>> {
535 let capabilities = self.capabilities.as_ref().unwrap();
533 let capabilities = self.capabilities.as_ref().unwrap();
@@ -545,9 +543,7 @@ impl Client {
545 let params = lsp::DocumentFormattingParams {
543 let params = lsp::DocumentFormattingParams {
546 text_document,
544 text_document,
548− work_done_progress_params: lsp::WorkDoneProgressParams {
546+ work_done_progress_params: lsp::WorkDoneProgressParams { work_done_token },
549− work_done_token: None,
553 let response = self.request::<lsp::request::Formatting>(params).await?;
549 let response = self.request::<lsp::request::Formatting>(params).await?;
@@ -560,6 +556,7 @@ impl Client {
560 text_document: lsp::TextDocumentIdentifier,
556 text_document: lsp::TextDocumentIdentifier,
561 range: lsp::Range,
557 range: lsp::Range,
562 options: lsp::FormattingOptions,
558 options: lsp::FormattingOptions,
559+ work_done_token: Option<lsp::ProgressToken>,
563 ) -> anyhow::Result<Vec<lsp::TextEdit>> {
560 ) -> anyhow::Result<Vec<lsp::TextEdit>> {
564 let capabilities = self.capabilities.as_ref().unwrap();
561 let capabilities = self.capabilities.as_ref().unwrap();
@@ -575,9 +572,7 @@ impl Client {
575 text_document,
572 text_document,
578− work_done_progress_params: lsp::WorkDoneProgressParams {
575+ work_done_progress_params: lsp::WorkDoneProgressParams { work_done_token },
579− work_done_token: None,
583 let response = self
578 let response = self
@@ -596,15 +591,14 @@ impl Client {
597 text_document: lsp::TextDocumentIdentifier,
592 text_document: lsp::TextDocumentIdentifier,
598 position: lsp::Position,
593 position: lsp::Position,
594+ work_done_token: Option<lsp::ProgressToken>,
599 ) -> impl Future<Output = Result<Value>> {
595 ) -> impl Future<Output = Result<Value>> {
600 let params = lsp::GotoDefinitionParams {
596 let params = lsp::GotoDefinitionParams {
601 text_document_position_params: lsp::TextDocumentPositionParams {
597 text_document_position_params: lsp::TextDocumentPositionParams {
602 text_document,
598 text_document,
603 position,
599 position,
605− work_done_progress_params: lsp::WorkDoneProgressParams {
601+ work_done_progress_params: lsp::WorkDoneProgressParams { work_done_token },
606− work_done_token: None,
608 partial_result_params: lsp::PartialResultParams {
602 partial_result_params: lsp::PartialResultParams {
609 partial_result_token: None,
603 partial_result_token: None,
@@ -617,30 +611,42 @@ impl Client {
618 text_document: lsp::TextDocumentIdentifier,
612 text_document: lsp::TextDocumentIdentifier,
619 position: lsp::Position,
613 position: lsp::Position,
614+ work_done_token: Option<lsp::ProgressToken>,
620 ) -> impl Future<Output = Result<Value>> {
615 ) -> impl Future<Output = Result<Value>> {
621− self.goto_request::<lsp::request::GotoDefinition>(text_document, position)
616+ self.goto_request::<lsp::request::GotoDefinition>(text_document, position, work_done_token)
624 pub fn goto_type_definition(
619 pub fn goto_type_definition(
626 text_document: lsp::TextDocumentIdentifier,
621 text_document: lsp::TextDocumentIdentifier,
627 position: lsp::Position,
622 position: lsp::Position,
623+ work_done_token: Option<lsp::ProgressToken>,
628 ) -> impl Future<Output = Result<Value>> {
624 ) -> impl Future<Output = Result<Value>> {
629− self.goto_request::<lsp::request::GotoTypeDefinition>(text_document, position)
625+ self.goto_request::<lsp::request::GotoTypeDefinition>(
632 pub fn goto_implementation(
632 pub fn goto_implementation(
634 text_document: lsp::TextDocumentIdentifier,
634 text_document: lsp::TextDocumentIdentifier,
635 position: lsp::Position,
635 position: lsp::Position,
636+ work_done_token: Option<lsp::ProgressToken>,
636 ) -> impl Future<Output = Result<Value>> {
637 ) -> impl Future<Output = Result<Value>> {
637− self.goto_request::<lsp::request::GotoImplementation>(text_document, position)
638+ self.goto_request::<lsp::request::GotoImplementation>(
640 pub fn goto_reference(
645 pub fn goto_reference(
642 text_document: lsp::TextDocumentIdentifier,
647 text_document: lsp::TextDocumentIdentifier,
643 position: lsp::Position,
648 position: lsp::Position,
649+ work_done_token: Option<lsp::ProgressToken>,
644 ) -> impl Future<Output = Result<Value>> {
650 ) -> impl Future<Output = Result<Value>> {
645 let params = lsp::ReferenceParams {
651 let params = lsp::ReferenceParams {
646 text_document_position: lsp::TextDocumentPositionParams {
652 text_document_position: lsp::TextDocumentPositionParams {
@@ -650,9 +656,7 @@ impl Client {
650 context: lsp::ReferenceContext {
656 context: lsp::ReferenceContext {
651 include_declaration: true,
657 include_declaration: true,
653− work_done_progress_params: lsp::WorkDoneProgressParams {
659+ work_done_progress_params: lsp::WorkDoneProgressParams { work_done_token },
654− work_done_token: None,
656 partial_result_params: lsp::PartialResultParams {
660 partial_result_params: lsp::PartialResultParams {
657 partial_result_token: None,
661 partial_result_token: None,