summaryrefslogtreecommitdiff
path: root/cli/lsp
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp')
-rw-r--r--cli/lsp/config.rs24
-rw-r--r--cli/lsp/performance.rs12
-rw-r--r--cli/lsp/sources.rs27
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);