Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 6 additions & 17 deletions tooling/lsp/src/notifications/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -666,29 +666,18 @@ mod notification_tests {
use super::*;
use async_lsp::lsp_types::{
InlayHintLabel, InlayHintParams, Position, Range, TextDocumentContentChangeEvent,
TextDocumentIdentifier, TextDocumentItem, VersionedTextDocumentIdentifier,
WorkDoneProgressParams,
TextDocumentIdentifier, VersionedTextDocumentIdentifier, WorkDoneProgressParams,
};
use tokio::test;

#[test]
async fn test_caches_open_files() {
let (mut state, noir_text_document) = test_utils::init_lsp_server("inlay_hints").await;
// Open the document with empty text.
let (mut state, noir_text_document) =
test_utils::init_lsp_server_with_inline_source("inlay_hints", "src/main.nr", "").await;

// Open the document, fake the text to be empty
let _ = on_did_open_text_document(
&mut state,
DidOpenTextDocumentParams {
text_document: TextDocumentItem {
uri: noir_text_document.clone(),
language_id: "noir".to_string(),
version: 0,
text: "".to_string(),
},
},
);

// Fake the text to change to "global a = 1;"
// Then change the in-memory text to "global a = true;" and verify subsequent requests
// see the new content, not what's on disk.
let _ = on_did_change_text_document(
&mut state,
DidChangeTextDocumentParams {
Expand Down
32 changes: 9 additions & 23 deletions tooling/lsp/src/requests/code_action/tests.rs
Original file line number Diff line number Diff line change
@@ -1,38 +1,24 @@
#![cfg(test)]

use crate::{
notifications::on_did_open_text_document, test_utils, tests::apply_text_edits,
utils::get_cursor_line_and_column,
};
use crate::{test_utils, tests::apply_text_edits};

use async_lsp::lsp_types::{
CodeActionContext, CodeActionOrCommand, CodeActionParams, CodeActionResponse,
DidOpenTextDocumentParams, PartialResultParams, Position, Range, TextDocumentIdentifier,
TextDocumentItem, WorkDoneProgressParams,
PartialResultParams, Range, TextDocumentIdentifier, WorkDoneProgressParams,
};

use super::on_code_action_request;

/// Given a string with ">|<" (cursor) in it, returns all code actions that are available
/// at that position together with the string with ">|<" removed.
async fn get_code_action(src: &str) -> (CodeActionResponse, String) {
let (mut state, noir_text_document) = test_utils::init_lsp_server("document_symbol").await;

let (line, column, src) = get_cursor_line_and_column(src);

let _ = on_did_open_text_document(
&mut state,
DidOpenTextDocumentParams {
text_document: TextDocumentItem {
uri: noir_text_document.clone(),
language_id: "noir".to_string(),
version: 0,
text: src.clone(),
},
},
);

let position = Position { line: line as u32, character: column as u32 };
let (mut state, noir_text_document, position, src) =
test_utils::init_lsp_server_with_inline_source_and_cursor(
"document_symbol",
"src/main.nr",
src,
)
.await;

let response = on_code_action_request(
&mut state,
Expand Down
23 changes: 4 additions & 19 deletions tooling/lsp/src/requests/code_lens_request.rs
Original file line number Diff line number Diff line change
Expand Up @@ -287,32 +287,17 @@ fn debug_test_lens(
mod tests {

use async_lsp::lsp_types::{
CodeLensParams, DidOpenTextDocumentParams, PartialResultParams, TextDocumentIdentifier,
TextDocumentItem, WorkDoneProgressParams,
CodeLensParams, PartialResultParams, TextDocumentIdentifier, WorkDoneProgressParams,
};
use iter_extended::vecmap;
use serde_json::Value;
use tokio::test;

use crate::{
notifications::on_did_open_text_document, requests::on_code_lens_request, test_utils,
types::CodeLensResult,
};
use crate::{requests::on_code_lens_request, test_utils, types::CodeLensResult};

async fn get_code_lens(src: &str, directory: &str) -> CodeLensResult {
let (mut state, noir_text_document) = test_utils::init_lsp_server(directory).await;

let _ = on_did_open_text_document(
&mut state,
DidOpenTextDocumentParams {
text_document: TextDocumentItem {
uri: noir_text_document.clone(),
language_id: "noir".to_string(),
version: 0,
text: src.to_string(),
},
},
);
let (mut state, noir_text_document) =
test_utils::init_lsp_server_with_inline_source(directory, "src/main.nr", src).await;

on_code_lens_request(
&mut state,
Expand Down
31 changes: 10 additions & 21 deletions tooling/lsp/src/requests/completion/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
#[cfg(test)]
mod completion_tests {
use crate::{
notifications::on_did_open_text_document,
requests::{
completion::{
completion_items::{
Expand All @@ -19,42 +18,32 @@
},
test_utils,
tests::apply_text_edits,
utils::get_cursor_line_and_column,
};

use async_lsp::lsp_types::{
CompletionItem, CompletionItemKind, CompletionItemLabelDetails, CompletionParams,
CompletionResponse, DidOpenTextDocumentParams, Documentation, PartialResultParams,
Position, TextDocumentIdentifier, TextDocumentItem, TextDocumentPositionParams,
WorkDoneProgressParams,
CompletionResponse, Documentation, PartialResultParams, TextDocumentIdentifier,
TextDocumentPositionParams, WorkDoneProgressParams,
};
use tokio::test;

/// Given a string with ">|<" (cursor) in it, returns all completions that are available
/// at that position together with the string with ">|<" removed.
async fn get_completions(src: &str) -> (Vec<CompletionItem>, String) {
let (mut state, noir_text_document) = test_utils::init_lsp_server("document_symbol").await;

let (line, column, src) = get_cursor_line_and_column(src);

let _ = on_did_open_text_document(
&mut state,
DidOpenTextDocumentParams {
text_document: TextDocumentItem {
uri: noir_text_document.clone(),
language_id: "noir".to_string(),
version: 0,
text: src.clone(),
},
},
);
let (mut state, noir_text_document, position, src) =
test_utils::init_lsp_server_with_inline_source_and_cursor(
"document_symbol",
"src/main.nr",
src,
)
.await;

let response = on_completion_request(
&mut state,
CompletionParams {
text_document_position: TextDocumentPositionParams {
text_document: TextDocumentIdentifier { uri: noir_text_document },
position: Position { line: line as u32, character: column as u32 },
position,
},
work_done_progress_params: WorkDoneProgressParams { work_done_token: None },
partial_result_params: PartialResultParams { partial_result_token: None },
Expand Down Expand Up @@ -3510,11 +3499,11 @@
}

#[test]
async fn autoimports_correct_trait_for_ctstring_append() {

Check warning on line 3502 in tooling/lsp/src/requests/completion/tests.rs

View workflow job for this annotation

GitHub Actions / Code

Unknown word (autoimports)
let src = r#"
fn main() {
let s = CtString::new();
s.appen>|<

Check warning on line 3506 in tooling/lsp/src/requests/completion/tests.rs

View workflow job for this annotation

GitHub Actions / Code

Misspelled word (appen) Suggestions: (append*)
}
"#;
let (items, _) = get_completions(src).await;
Expand Down
28 changes: 10 additions & 18 deletions tooling/lsp/src/requests/completion/tests/after_change.rs
Original file line number Diff line number Diff line change
@@ -1,32 +1,24 @@
#[cfg(test)]
mod tests {
use crate::{
notifications::on_did_open_text_document, on_did_change_text_document,
requests::on_completion_request, test_utils, utils::get_cursor_line_and_column,
on_did_change_text_document, requests::on_completion_request, test_utils,
utils::get_cursor_line_and_column,
};

use async_lsp::lsp_types::{
CompletionItem, CompletionParams, CompletionResponse, DidChangeTextDocumentParams,
DidOpenTextDocumentParams, PartialResultParams, Position, TextDocumentContentChangeEvent,
TextDocumentIdentifier, TextDocumentItem, TextDocumentPositionParams,
VersionedTextDocumentIdentifier, WorkDoneProgressParams,
PartialResultParams, Position, TextDocumentContentChangeEvent, TextDocumentIdentifier,
TextDocumentPositionParams, VersionedTextDocumentIdentifier, WorkDoneProgressParams,
};
use tokio::test;

async fn get_completions_after_change(before: &str, after: &str) -> Vec<CompletionItem> {
let (mut state, noir_text_document) = test_utils::init_lsp_server("document_symbol").await;

let _ = on_did_open_text_document(
&mut state,
DidOpenTextDocumentParams {
text_document: TextDocumentItem {
uri: noir_text_document.clone(),
language_id: "noir".to_string(),
version: 0,
text: before.to_string(),
},
},
);
let (mut state, noir_text_document) = test_utils::init_lsp_server_with_inline_source(
"document_symbol",
"src/main.nr",
before,
)
.await;

let (line, column, after) = get_cursor_line_and_column(after);

Expand Down
Loading
Loading