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
987 changes: 418 additions & 569 deletions Cargo.lock

Large diffs are not rendered by default.

7 changes: 3 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,8 @@ ark-std = { version = "^0.5.0", default-features = false }
iter-extended = { path = "utils/iter-extended" }

# LSP
async-lsp = { version = "0.1.0", default-features = false }
lsp-types = "0.94.1"
tower = "0.4"
async-lsp = { version = "0.2.2", default-features = false }
tower = "0.5"

# Wasm
wasm-bindgen = { version = "=0.2.100", features = ["serde-serialize"] }
Expand Down Expand Up @@ -161,7 +160,7 @@ cfg-if = "1.0.0"
dirs = "4"
serde = { version = "1.0.136", features = ["derive"] }
serde_json = "1.0"
smol_str = { version = "0.1.17", features = ["serde"] }
smol_str = { version = "0.3.2", features = ["serde"] }
thiserror = "1.0.21"
toml = "0.7.2"
url = "2.5.4"
Expand Down
4 changes: 2 additions & 2 deletions acvm-repo/blackbox_solver/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@ blake2 = "0.10.6"
blake3 = "1.5.0"
sha2.workspace = true
keccak = "0.1.4"
k256 = { version = "0.11.0", features = [
k256 = { version = "0.13.4", features = [
"ecdsa",
"ecdsa-core",
"sha256",
"digest",
"arithmetic",
] }
p256 = { version = "0.11.0", features = [
p256 = { version = "0.13.2", features = [
"ecdsa",
"ecdsa-core",
"sha256",
Expand Down
2 changes: 1 addition & 1 deletion acvm-repo/blackbox_solver/src/ecdsa/secp256k1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use blake2::digest::generic_array::GenericArray;
use k256::{
AffinePoint, EncodedPoint, ProjectivePoint, PublicKey,
elliptic_curve::{
IsHigh,
scalar::IsHigh,
sec1::{Coordinates, ToEncodedPoint},
},
};
Expand Down
2 changes: 1 addition & 1 deletion acvm-repo/blackbox_solver/src/ecdsa/secp256r1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use blake2::digest::generic_array::GenericArray;
use p256::{
AffinePoint, EncodedPoint, ProjectivePoint, PublicKey,
elliptic_curve::{
IsHigh,
scalar::IsHigh,
sec1::{Coordinates, ToEncodedPoint},
},
};
Expand Down
2 changes: 1 addition & 1 deletion compiler/noirc_frontend/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ serde_json.workspace = true
serde.workspace = true
num-bigint.workspace = true
num-traits.workspace = true
rustc-hash = "1.1.0"
rustc-hash = "2.1.1"
small-ord-set = "0.1.3"
cfg-if.workspace = true
tracing.workspace = true
Expand Down
1 change: 0 additions & 1 deletion tooling/lsp/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ workspace = true
[dependencies]
acvm.workspace = true
codespan-lsp.workspace = true
lsp-types.workspace = true
nargo = { workspace = true, features = ["rpc"] }
nargo_fmt.workspace = true
nargo_toml.workspace = true
Expand Down
14 changes: 7 additions & 7 deletions tooling/lsp/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@ use std::{
};

use acvm::{BlackBoxFunctionSolver, FieldElement};
use async_lsp::{
AnyEvent, AnyNotification, AnyRequest, ClientSocket, Error, LspService, ResponseError,
router::Router,
};
use fm::{FileManager, codespan_files as files};
use fxhash::FxHashSet;
use lsp_types::{
use async_lsp::lsp_types::{
CodeLens,
request::{
CodeActionRequest, Completion, DocumentSymbolRequest, HoverRequest, InlayHintRequest,
PrepareRenameRequest, References, Rename, SignatureHelpRequest, WorkspaceSymbolRequest,
},
};
use async_lsp::{
AnyEvent, AnyNotification, AnyRequest, ClientSocket, Error, LspService, ResponseError,
router::Router,
};
use fm::{FileManager, codespan_files as files};
use fxhash::FxHashSet;
use nargo::{
package::{Package, PackageType},
parse_all,
Expand Down
5 changes: 3 additions & 2 deletions tooling/lsp/src/notifications/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ use std::path::PathBuf;
use crate::{
PackageCacheData, WorkspaceCacheData, insert_all_files_for_workspace_into_file_manager,
};
use async_lsp::lsp_types;
use async_lsp::lsp_types::{DiagnosticRelatedInformation, DiagnosticTag, Url};
use async_lsp::{ErrorCode, LanguageClient, ResponseError};
use fm::{FileManager, FileMap};
use fxhash::FxHashMap as HashMap;
use lsp_types::{DiagnosticRelatedInformation, DiagnosticTag, Url};
use noirc_driver::check_crate;
use noirc_errors::reporter::CustomLabel;
use noirc_errors::{CustomDiagnostic, DiagnosticKind, Location};
Expand Down Expand Up @@ -329,7 +330,7 @@ mod notification_tests {
use crate::test_utils;

use super::*;
use lsp_types::{
use async_lsp::lsp_types::{
InlayHintLabel, InlayHintParams, Position, Range, TextDocumentContentChangeEvent,
TextDocumentIdentifier, TextDocumentItem, VersionedTextDocumentIdentifier,
WorkDoneProgressParams,
Expand Down
4 changes: 2 additions & 2 deletions tooling/lsp/src/requests/code_action.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
};

use async_lsp::ResponseError;
use fm::{FileId, FileMap, PathString};
use lsp_types::{
use async_lsp::lsp_types::{
CodeAction, CodeActionKind, CodeActionOrCommand, CodeActionParams, CodeActionResponse,
TextDocumentPositionParams, TextEdit, Url, WorkspaceEdit,
};
use fm::{FileId, FileMap, PathString};
use noirc_errors::Span;
use noirc_frontend::{
ParsedModule,
Expand Down Expand Up @@ -185,7 +185,7 @@

CodeAction {
title,
kind: Some(CodeActionKind::QUICKFIX),

Check warning on line 188 in tooling/lsp/src/requests/code_action.rs

View workflow job for this annotation

GitHub Actions / Code

Unknown word (QUICKFIX)
diagnostics: None,
edit: Some(workspace_edit),
command: None,
Expand Down
2 changes: 1 addition & 1 deletion tooling/lsp/src/requests/code_action/fill_struct_fields.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use lsp_types::TextEdit;
use async_lsp::lsp_types::TextEdit;
use noirc_errors::Span;
use noirc_frontend::{
ast::{ConstructorExpression, UnresolvedTypeData},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use std::collections::HashMap;

use lsp_types::TextEdit;
use async_lsp::lsp_types::TextEdit;
use noirc_errors::{Location, Span};
use noirc_frontend::{
Kind,
Expand Down
2 changes: 1 addition & 1 deletion tooling/lsp/src/requests/code_action/import_or_qualify.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use lsp_types::TextEdit;
use async_lsp::lsp_types::TextEdit;
use noirc_errors::Location;
use noirc_frontend::ast::{Ident, Path};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use lsp_types::TextEdit;
use async_lsp::lsp_types::TextEdit;
use noirc_errors::{Location, Span};
use noirc_frontend::{QuotedType, Type, node_interner::ReferenceId};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::collections::HashMap;

use async_lsp::lsp_types::TextEdit;
use fm::FileId;
use lsp_types::TextEdit;
use noirc_errors::{Location, Span};
use noirc_frontend::{
ParsedModule,
Expand Down
2 changes: 1 addition & 1 deletion tooling/lsp/src/requests/code_action/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use crate::{
utils::get_cursor_line_and_column,
};

use lsp_types::{
use async_lsp::lsp_types::{
CodeActionContext, CodeActionOrCommand, CodeActionParams, CodeActionResponse,
DidOpenTextDocumentParams, PartialResultParams, Position, Range, TextDocumentIdentifier,
TextDocumentItem, WorkDoneProgressParams,
Expand Down
4 changes: 3 additions & 1 deletion tooling/lsp/src/requests/completion.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@
};

use async_lsp::ResponseError;
use async_lsp::lsp_types::{
CompletionItem, CompletionItemKind, CompletionParams, CompletionResponse,
};
use completion_items::{
field_completion_item, simple_completion_item, snippet_completion_item,
trait_impl_method_completion_item,
};
use convert_case::{Case, Casing};
use fm::{FileId, FileMap, PathString};
use kinds::{FunctionCompletionKind, FunctionKind, RequestedItems};
use lsp_types::{CompletionItem, CompletionItemKind, CompletionParams, CompletionResponse};
use noirc_errors::{Location, Span};
use noirc_frontend::{
DataType, ParsedModule, Type, TypeBinding,
Expand Down Expand Up @@ -47,7 +49,7 @@
use super::{TraitReexport, process_request};

mod auto_import;
mod builtins;

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

View workflow job for this annotation

GitHub Actions / Code

Unknown word (builtins)
mod completion_items;
mod kinds;
mod sort_text;
Expand Down Expand Up @@ -1952,8 +1954,8 @@
///
/// For example:
///
/// // "merk" and "ro" match "merkle" and "root" and are in order

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

View workflow job for this annotation

GitHub Actions / Code

Unknown word (merk)
/// name_matches("compute_merkle_root", "merk_ro") == true

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

View workflow job for this annotation

GitHub Actions / Code

Unknown word (merk)
///
/// // "ro" matches "root", but "merkle" comes before it, so no match
/// name_matches("compute_merkle_root", "ro_mer") == false
Expand Down
2 changes: 1 addition & 1 deletion tooling/lsp/src/requests/completion/builtins.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use lsp_types::CompletionItemKind;
use async_lsp::lsp_types::CompletionItemKind;
use noirc_frontend::{ast::AttributeTarget, token::Keyword};
use strum::IntoEnumIterator;

Expand Down
2 changes: 1 addition & 1 deletion tooling/lsp/src/requests/completion/completion_items.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use lsp_types::{
use async_lsp::lsp_types::{
Command, CompletionItem, CompletionItemKind, CompletionItemLabelDetails, Documentation,
InsertTextFormat, MarkupContent, MarkupKind,
};
Expand Down
2 changes: 1 addition & 1 deletion tooling/lsp/src/requests/completion/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
utils::get_cursor_line_and_column,
};

use lsp_types::{
use async_lsp::lsp_types::{
CompletionItem, CompletionItemKind, CompletionItemLabelDetails, CompletionParams,
CompletionResponse, DidOpenTextDocumentParams, Documentation, PartialResultParams,
Position, TextDocumentIdentifier, TextDocumentItem, TextDocumentPositionParams,
Expand Down Expand Up @@ -126,14 +126,14 @@
#[test]
async fn test_use_first_segment() {
let src = r#"
mod foobaz {}

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

View workflow job for this annotation

GitHub Actions / Code

Unknown word (foobaz)
mod foobar {}
use foob>|<

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

View workflow job for this annotation

GitHub Actions / Code

Unknown word (foob)
"#;

assert_completion(
src,
vec![module_completion_item("foobaz"), module_completion_item("foobar")],

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

View workflow job for this annotation

GitHub Actions / Code

Unknown word (foobaz)
)
.await;
}
Expand Down Expand Up @@ -296,7 +296,7 @@
mod bar {
mod something {}

use super::foob>|<

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

View workflow job for this annotation

GitHub Actions / Code

Unknown word (foob)
}
"#;

Expand Down Expand Up @@ -1729,7 +1729,7 @@
#[test]
async fn test_auto_import_suggests_modules_too() {
let src = r#"mod foo {
pub mod barbaz {

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

View workflow job for this annotation

GitHub Actions / Code

Unknown word (barbaz)
fn hello_world() {}
}
}
Expand All @@ -1739,7 +1739,7 @@
}
}"#;

let expected = r#"use foo::barbaz;

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

View workflow job for this annotation

GitHub Actions / Code

Unknown word (barbaz)

mod foo {
pub mod barbaz {
Expand Down
6 changes: 3 additions & 3 deletions tooling/lsp/src/requests/document_symbol.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use std::future::{self, Future};

use async_lsp::ResponseError;
use fm::{FileId, FileMap, PathString};
use lsp_types::{
use async_lsp::lsp_types::{
DocumentSymbol, DocumentSymbolParams, DocumentSymbolResponse, Location, Position, SymbolKind,
TextDocumentPositionParams,
};
use fm::{FileId, FileMap, PathString};
use noirc_errors::Span;
use noirc_frontend::{
ParsedModule,
Expand Down Expand Up @@ -520,7 +520,7 @@ mod document_symbol_tests {
use crate::test_utils;

use super::*;
use lsp_types::{
use async_lsp::lsp_types::{
PartialResultParams, Range, SymbolKind, TextDocumentIdentifier, WorkDoneProgressParams,
};
use tokio::test;
Expand Down
2 changes: 1 addition & 1 deletion tooling/lsp/src/requests/goto_declaration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use crate::LspState;
use crate::types::GotoDeclarationResult;
use async_lsp::ResponseError;

use lsp_types::request::{GotoDeclarationParams, GotoDeclarationResponse};
use async_lsp::lsp_types::request::{GotoDeclarationParams, GotoDeclarationResponse};

use super::{process_request, to_lsp_location};

Expand Down
3 changes: 2 additions & 1 deletion tooling/lsp/src/requests/goto_definition.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ use crate::utils;
use crate::{LspState, types::GotoDefinitionResult};
use async_lsp::ResponseError;

use async_lsp::lsp_types;
use fm::PathString;
use lsp_types::request::GotoTypeDefinitionParams;
use lsp_types::{GotoDefinitionParams, GotoDefinitionResponse};
Expand Down Expand Up @@ -76,7 +77,7 @@ mod goto_definition_tests {
use std::panic;

use crate::test_utils::{self, search_in_file};
use lsp_types::{Position, Range};
use async_lsp::lsp_types::{Position, Range};
use tokio::test;

use super::*;
Expand Down
4 changes: 2 additions & 2 deletions tooling/lsp/src/requests/hover.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
use std::future::{self, Future};

use async_lsp::ResponseError;
use async_lsp::lsp_types::{Hover, HoverParams};
use fm::PathString;
use from_reference::hover_from_reference;
use from_visitor::hover_from_visitor;
use lsp_types::{Hover, HoverParams};

use crate::LspState;

Expand Down Expand Up @@ -34,7 +34,7 @@ mod hover_tests {
use crate::test_utils;

use super::*;
use lsp_types::{
use async_lsp::lsp_types::{
HoverContents, Position, TextDocumentIdentifier, TextDocumentPositionParams, Url,
WorkDoneProgressParams,
};
Expand Down
3 changes: 2 additions & 1 deletion tooling/lsp/src/requests/hover/from_reference.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use async_lsp::lsp_types;
use async_lsp::lsp_types::{Hover, HoverContents, MarkupContent, MarkupKind, Position};
use fm::{FileId, FileMap};
use lsp_types::{Hover, HoverContents, MarkupContent, MarkupKind, Position};
use noirc_frontend::hir::comptime::Value;
use noirc_frontend::node_interner::GlobalValue;
use noirc_frontend::shared::Visibility;
Expand Down
2 changes: 1 addition & 1 deletion tooling/lsp/src/requests/hover/from_visitor.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::str::FromStr;

use async_lsp::lsp_types::{Hover, HoverContents, MarkupContent, MarkupKind, Position};
use fm::{FileId, FileMap};
use lsp_types::{Hover, HoverContents, MarkupContent, MarkupKind, Position};
use noirc_errors::{Location, Span};
use noirc_frontend::{
Type, ast::Visitor, node_interner::NodeInterner, parse_program, signed_field::SignedField,
Expand Down
7 changes: 4 additions & 3 deletions tooling/lsp/src/requests/inlay_hint.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
use std::future::{self, Future};

use async_lsp::ResponseError;
use fm::{FileId, FileMap, PathString};
use lsp_types::{
use async_lsp::lsp_types;
use async_lsp::lsp_types::{
InlayHint, InlayHintKind, InlayHintLabel, InlayHintLabelPart, InlayHintParams, Position, Range,
TextDocumentPositionParams, TextEdit,
};
use fm::{FileId, FileMap, PathString};
use noirc_errors::{Location, Span};
use noirc_frontend::{
self, Kind, Type, TypeBinding, TypeVariable,
Expand Down Expand Up @@ -608,7 +609,7 @@ mod inlay_hints_tests {
};

use super::*;
use lsp_types::{Range, TextDocumentIdentifier, WorkDoneProgressParams};
use async_lsp::lsp_types::{Range, TextDocumentIdentifier, WorkDoneProgressParams};
use tokio::test;

async fn get_inlay_hints(
Expand Down
5 changes: 4 additions & 1 deletion tooling/lsp/src/requests/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ use noirc_frontend::usage_tracker::UsageTracker;
use noirc_frontend::{graph::Dependency, node_interner::NodeInterner};
use serde::{Deserialize, Serialize};

use async_lsp::lsp_types;

use crate::{
LspState,
types::{InitializeResult, NargoCapability, NargoTestsOptions, ServerCapabilities},
Expand Down Expand Up @@ -192,6 +194,7 @@ impl Default for LspInitializationOptions {
}
}

#[expect(deprecated)]
pub(crate) fn on_initialize(
state: &mut LspState,
params: InitializeParams,
Expand Down Expand Up @@ -710,7 +713,7 @@ pub(crate) struct TraitReexport {
mod initialization {
use acvm::blackbox_solver::StubbedBlackBoxSolver;
use async_lsp::ClientSocket;
use lsp_types::{
use async_lsp::lsp_types::{
CodeLensOptions, InitializeParams, TextDocumentSyncCapability, TextDocumentSyncKind,
};
use tokio::test;
Expand Down
4 changes: 2 additions & 2 deletions tooling/lsp/src/requests/references.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::future::{self, Future};

use async_lsp::ResponseError;
use lsp_types::{Location, ReferenceParams};
use async_lsp::lsp_types::{Location, ReferenceParams};

use crate::LspState;

Expand Down Expand Up @@ -31,7 +31,7 @@ mod references_tests {
use crate::test_utils::{self, search_in_file};
use crate::utils::get_cursor_line_and_column;
use crate::{notifications, on_did_open_text_document};
use lsp_types::{
use async_lsp::lsp_types::{
DidOpenTextDocumentParams, PartialResultParams, Position, Range, ReferenceContext,
TextDocumentIdentifier, TextDocumentItem, TextDocumentPositionParams, Url,
WorkDoneProgressParams,
Expand Down
3 changes: 2 additions & 1 deletion tooling/lsp/src/requests/rename.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use std::{
};

use async_lsp::ResponseError;
use async_lsp::lsp_types;
use lsp_types::{
PrepareRenameResponse, RenameParams, TextDocumentPositionParams, TextEdit, Url, WorkspaceEdit,
};
Expand Down Expand Up @@ -71,7 +72,7 @@ pub(crate) fn on_rename_request(
mod rename_tests {
use super::*;
use crate::test_utils::{self, search_in_file};
use lsp_types::{Range, WorkDoneProgressParams};
use async_lsp::lsp_types::{Range, WorkDoneProgressParams};
use tokio::test;

async fn check_rename_succeeds(directory: &str, name: &str) {
Expand Down
Loading
Loading