From 55f3636ecfc3619d1594bfea8385f71b04605d4d Mon Sep 17 00:00:00 2001 From: overlookmotel <557937+overlookmotel@users.noreply.github.com> Date: Thu, 28 Nov 2024 11:52:12 +0000 Subject: [PATCH] perf(language_server): use `FxDashMap` for diagnostics reports map (#7523) Same as #7521. Use `FxDashMap` instead of plain `DashMap` for hash map storing diagnostics. --- crates/oxc_language_server/src/main.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/oxc_language_server/src/main.rs b/crates/oxc_language_server/src/main.rs index 8a4d63eb1..8594bfc70 100644 --- a/crates/oxc_language_server/src/main.rs +++ b/crates/oxc_language_server/src/main.rs @@ -9,6 +9,7 @@ use globset::Glob; use ignore::gitignore::Gitignore; use log::{debug, error, info}; use oxc_linter::{FixKind, LinterBuilder, Oxlintrc}; +use rustc_hash::FxBuildHasher; use serde::{Deserialize, Serialize}; use tokio::sync::{Mutex, OnceCell, RwLock, SetError}; use tower_lsp::lsp_types::{NumberOrString, Position, Range}; @@ -27,11 +28,13 @@ use tower_lsp::{ Client, LanguageServer, LspService, Server, }; +type FxDashMap = DashMap; + struct Backend { client: Client, root_uri: OnceCell>, server_linter: RwLock, - diagnostics_report_map: DashMap>, + diagnostics_report_map: FxDashMap>, options: Mutex, gitignore_glob: Mutex>, } @@ -561,7 +564,7 @@ async fn main() { let stdout = tokio::io::stdout(); let server_linter = ServerLinter::new(); - let diagnostics_report_map = DashMap::new(); + let diagnostics_report_map = FxDashMap::default(); let (service, socket) = LspService::build(|client| Backend { client,