diff options
Diffstat (limited to 'cli/lsp')
-rw-r--r-- | cli/lsp/config.rs | 24 | ||||
-rw-r--r-- | cli/lsp/performance.rs | 12 | ||||
-rw-r--r-- | cli/lsp/sources.rs | 27 |
3 files changed, 28 insertions, 35 deletions
diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index 0d3bf748e..95e0bb534 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -4,6 +4,7 @@ use crate::tokio_util::create_basic_runtime; use deno_core::error::anyhow; use deno_core::error::AnyError; +use deno_core::parking_lot::RwLock; use deno_core::serde::Deserialize; use deno_core::serde_json; use deno_core::serde_json::Value; @@ -15,7 +16,6 @@ use lspower::lsp; use std::collections::BTreeMap; use std::collections::HashMap; use std::sync::Arc; -use std::sync::RwLock; use std::thread; use tokio::sync::mpsc; @@ -241,7 +241,7 @@ impl Config { Vec<(ModuleSpecifier, ModuleSpecifier)>, Vec<lsp::ConfigurationItem>, ) = { - let settings = settings_ref.read().unwrap(); + let settings = settings_ref.read(); ( settings .specifiers @@ -259,7 +259,7 @@ impl Config { ) }; if let Ok(configs) = client.configuration(items).await { - let mut settings = settings_ref.write().unwrap(); + let mut settings = settings_ref.write(); for (i, value) in configs.into_iter().enumerate() { match serde_json::from_value::<SpecifierSettings>(value) { Ok(specifier_settings) => { @@ -276,12 +276,7 @@ impl Config { } } Some(ConfigRequest::Specifier(specifier, uri)) => { - if settings_ref - .read() - .unwrap() - .specifiers - .contains_key(&specifier) - { + if settings_ref.read().specifiers.contains_key(&specifier) { continue; } if let Ok(value) = client @@ -297,7 +292,6 @@ impl Config { Ok(specifier_settings) => { settings_ref .write() - .unwrap() .specifiers .insert(specifier, (uri, specifier_settings)); } @@ -327,14 +321,14 @@ impl Config { } pub fn get_workspace_settings(&self) -> WorkspaceSettings { - self.settings.read().unwrap().workspace.clone() + self.settings.read().workspace.clone() } /// Set the workspace settings directly, which occurs during initialization /// and when the client does not support workspace configuration requests pub fn set_workspace_settings(&self, value: Value) -> Result<(), AnyError> { let workspace_settings = serde_json::from_value(value)?; - self.settings.write().unwrap().workspace = workspace_settings; + self.settings.write().workspace = workspace_settings; Ok(()) } @@ -345,14 +339,14 @@ impl Config { settings: self .settings .try_read() - .map_err(|_| anyhow!("Error reading settings."))? + .ok_or_else(|| anyhow!("Error reading settings."))? .clone(), workspace_folders: self.workspace_folders.clone(), }) } pub fn specifier_enabled(&self, specifier: &ModuleSpecifier) -> bool { - let settings = self.settings.read().unwrap(); + let settings = self.settings.read(); settings .specifiers .get(specifier) @@ -361,7 +355,7 @@ impl Config { } pub fn specifier_code_lens_test(&self, specifier: &ModuleSpecifier) -> bool { - let settings = self.settings.read().unwrap(); + let settings = self.settings.read(); let value = settings .specifiers .get(specifier) diff --git a/cli/lsp/performance.rs b/cli/lsp/performance.rs index 87e29f3db..74af38ec1 100644 --- a/cli/lsp/performance.rs +++ b/cli/lsp/performance.rs @@ -1,5 +1,6 @@ // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. +use deno_core::parking_lot::Mutex; use deno_core::serde::Deserialize; use deno_core::serde::Serialize; use deno_core::serde_json::json; @@ -9,7 +10,6 @@ use std::collections::HashMap; use std::collections::VecDeque; use std::fmt; use std::sync::Arc; -use std::sync::Mutex; use std::time::Duration; use std::time::Instant; @@ -93,7 +93,7 @@ impl Performance { #[cfg(test)] pub fn average(&self, name: &str) -> Option<(usize, Duration)> { let mut items = Vec::new(); - for measure in self.measures.lock().unwrap().iter() { + for measure in self.measures.lock().iter() { if measure.name == name { items.push(measure.duration); } @@ -112,7 +112,7 @@ impl Performance { /// of each measurement. pub fn averages(&self) -> Vec<PerformanceAverage> { let mut averages: HashMap<String, Vec<Duration>> = HashMap::new(); - for measure in self.measures.lock().unwrap().iter() { + for measure in self.measures.lock().iter() { averages .entry(measure.name.clone()) .or_default() @@ -140,7 +140,7 @@ impl Performance { maybe_args: Option<V>, ) -> PerformanceMark { let name = name.as_ref(); - let mut counts = self.counts.lock().unwrap(); + let mut counts = self.counts.lock(); let count = counts.entry(name.to_string()).or_insert(0); *count += 1; let msg = if let Some(args) = maybe_args { @@ -179,7 +179,7 @@ impl Performance { }) ); let duration = measure.duration; - let mut measures = self.measures.lock().unwrap(); + let mut measures = self.measures.lock(); measures.push_front(measure); while measures.len() > self.max_size { measures.pop_back(); @@ -188,7 +188,7 @@ impl Performance { } pub fn to_vec(&self) -> Vec<PerformanceMeasure> { - let measures = self.measures.lock().unwrap(); + let measures = self.measures.lock(); measures.iter().cloned().collect() } } diff --git a/cli/lsp/sources.rs b/cli/lsp/sources.rs index 37f8b6bce..1b7d6f3fa 100644 --- a/cli/lsp/sources.rs +++ b/cli/lsp/sources.rs @@ -19,6 +19,7 @@ use crate::text_encoding; use deno_core::error::anyhow; use deno_core::error::AnyError; +use deno_core::parking_lot::Mutex; use deno_core::serde_json; use deno_core::ModuleSpecifier; use deno_runtime::permissions::Permissions; @@ -27,7 +28,6 @@ use std::fs; use std::path::Path; use std::path::PathBuf; use std::sync::Arc; -use std::sync::Mutex; use std::time::SystemTime; use tsc::NavigationTree; @@ -174,57 +174,57 @@ impl Sources { } pub fn contains_key(&self, specifier: &ModuleSpecifier) -> bool { - self.0.lock().unwrap().contains_key(specifier) + self.0.lock().contains_key(specifier) } pub fn get_line_index( &self, specifier: &ModuleSpecifier, ) -> Option<LineIndex> { - self.0.lock().unwrap().get_line_index(specifier) + self.0.lock().get_line_index(specifier) } pub fn get_maybe_types( &self, specifier: &ModuleSpecifier, ) -> Option<analysis::ResolvedDependency> { - self.0.lock().unwrap().get_maybe_types(specifier) + self.0.lock().get_maybe_types(specifier) } pub fn get_maybe_warning( &self, specifier: &ModuleSpecifier, ) -> Option<String> { - self.0.lock().unwrap().get_maybe_warning(specifier) + self.0.lock().get_maybe_warning(specifier) } pub fn get_media_type( &self, specifier: &ModuleSpecifier, ) -> Option<MediaType> { - self.0.lock().unwrap().get_media_type(specifier) + self.0.lock().get_media_type(specifier) } pub fn get_navigation_tree( &self, specifier: &ModuleSpecifier, ) -> Option<tsc::NavigationTree> { - self.0.lock().unwrap().get_navigation_tree(specifier) + self.0.lock().get_navigation_tree(specifier) } pub fn get_script_version( &self, specifier: &ModuleSpecifier, ) -> Option<String> { - self.0.lock().unwrap().get_script_version(specifier) + self.0.lock().get_script_version(specifier) } pub fn get_source(&self, specifier: &ModuleSpecifier) -> Option<String> { - self.0.lock().unwrap().get_source(specifier) + self.0.lock().get_source(specifier) } pub fn len(&self) -> usize { - self.0.lock().unwrap().metadata.len() + self.0.lock().metadata.len() } pub fn resolve_import( @@ -232,11 +232,11 @@ impl Sources { specifier: &str, referrer: &ModuleSpecifier, ) -> Option<(ModuleSpecifier, MediaType)> { - self.0.lock().unwrap().resolve_import(specifier, referrer) + self.0.lock().resolve_import(specifier, referrer) } pub fn specifiers(&self) -> Vec<ModuleSpecifier> { - self.0.lock().unwrap().metadata.keys().cloned().collect() + self.0.lock().metadata.keys().cloned().collect() } pub fn set_navigation_tree( @@ -247,7 +247,6 @@ impl Sources { self .0 .lock() - .unwrap() .set_navigation_tree(specifier, navigation_tree) } } @@ -660,7 +659,7 @@ mod tests { let (sources, _) = setup(); let specifier = resolve_url("foo://a/b/c.ts").expect("could not create specifier"); - let sources = sources.0.lock().unwrap(); + let sources = sources.0.lock(); let mut redirects = sources.redirects.clone(); let http_cache = sources.http_cache.clone(); let actual = resolve_specifier(&specifier, &mut redirects, &http_cache); |