summaryrefslogtreecommitdiff
path: root/cli/lsp/tsc.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp/tsc.rs')
-rw-r--r--cli/lsp/tsc.rs49
1 files changed, 11 insertions, 38 deletions
diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs
index 575476e40..8c7c4189c 100644
--- a/cli/lsp/tsc.rs
+++ b/cli/lsp/tsc.rs
@@ -822,13 +822,7 @@ fn cache_snapshot(
.contains_key(&(specifier.clone().into(), version.clone().into()))
{
let s = ModuleSpecifier::resolve_url(&specifier)?;
- let content = state
- .state_snapshot
- .documents
- .lock()
- .unwrap()
- .content(&s)?
- .unwrap();
+ let content = state.state_snapshot.documents.content(&s)?.unwrap();
state
.snapshots
.insert((specifier.into(), version.into()), content);
@@ -913,13 +907,7 @@ fn get_change_range(state: &mut State, args: Value) -> Result<Value, AnyError> {
fn get_length(state: &mut State, args: Value) -> Result<Value, AnyError> {
let v: SourceSnapshotArgs = serde_json::from_value(args)?;
let specifier = ModuleSpecifier::resolve_url(&v.specifier)?;
- if state
- .state_snapshot
- .documents
- .lock()
- .unwrap()
- .contains(&specifier)
- {
+ if state.state_snapshot.documents.contains(&specifier) {
cache_snapshot(state, v.specifier.clone(), v.version.clone())?;
let content = state
.snapshots
@@ -944,13 +932,7 @@ struct GetTextArgs {
fn get_text(state: &mut State, args: Value) -> Result<Value, AnyError> {
let v: GetTextArgs = serde_json::from_value(args)?;
let specifier = ModuleSpecifier::resolve_url(&v.specifier)?;
- let content = if state
- .state_snapshot
- .documents
- .lock()
- .unwrap()
- .contains(&specifier)
- {
+ let content = if state.state_snapshot.documents.contains(&specifier) {
cache_snapshot(state, v.specifier.clone(), v.version.clone())?;
state
.snapshots
@@ -974,9 +956,10 @@ fn resolve(state: &mut State, args: Value) -> Result<Value, AnyError> {
return Err(custom_error("Deadlock", "deadlock locking sources"));
};
- let documents = state.state_snapshot.documents.lock().unwrap();
- if documents.contains(&referrer) {
- if let Some(dependencies) = documents.dependencies(&referrer) {
+ if state.state_snapshot.documents.contains(&referrer) {
+ if let Some(dependencies) =
+ state.state_snapshot.documents.dependencies(&referrer)
+ {
for specifier in &v.specifiers {
if specifier.starts_with("asset:///") {
resolved.push(Some((
@@ -995,7 +978,7 @@ fn resolve(state: &mut State, args: Value) -> Result<Value, AnyError> {
if let ResolvedDependency::Resolved(resolved_specifier) =
resolved_import
{
- if documents.contains(&resolved_specifier)
+ if state.state_snapshot.documents.contains(&resolved_specifier)
|| sources.contains(&resolved_specifier)
{
let media_type = if let Some(media_type) =
@@ -1050,9 +1033,7 @@ fn respond(state: &mut State, args: Value) -> Result<Value, AnyError> {
}
fn script_names(state: &mut State, _args: Value) -> Result<Value, AnyError> {
- let documents = state.state_snapshot.documents.lock().unwrap();
- let script_names = documents.open_specifiers();
- Ok(json!(script_names))
+ Ok(json!(state.state_snapshot.documents.open_specifiers()))
}
#[derive(Debug, Deserialize)]
@@ -1064,13 +1045,7 @@ struct ScriptVersionArgs {
fn script_version(state: &mut State, args: Value) -> Result<Value, AnyError> {
let v: ScriptVersionArgs = serde_json::from_value(args)?;
let specifier = ModuleSpecifier::resolve_url(&v.specifier)?;
- if let Some(version) = state
- .state_snapshot
- .documents
- .lock()
- .unwrap()
- .version(&specifier)
- {
+ if let Some(version) = state.state_snapshot.documents.version(&specifier) {
return Ok(json!(version.to_string()));
} else {
let mut sources = state.state_snapshot.sources.lock().unwrap();
@@ -1336,8 +1311,6 @@ pub fn request(
mod tests {
use super::*;
use crate::lsp::documents::DocumentCache;
- use std::sync::Arc;
- use std::sync::Mutex;
fn mock_state_snapshot(sources: Vec<(&str, &str, i32)>) -> StateSnapshot {
let mut documents = DocumentCache::default();
@@ -1348,7 +1321,7 @@ mod tests {
}
StateSnapshot {
assets: Default::default(),
- documents: Arc::new(Mutex::new(documents)),
+ documents,
sources: Default::default(),
}
}