summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/lsp/language_server.rs3
-rw-r--r--cli/lsp/tsc.rs28
2 files changed, 13 insertions, 18 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index 1b22cea2c..6f7f436b9 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -812,7 +812,8 @@ impl lspower::LanguageServer for LanguageServer {
continue;
}
let reference_specifier =
- ModuleSpecifier::resolve_url(&reference.file_name).unwrap();
+ ModuleSpecifier::resolve_url(&reference.document_span.file_name)
+ .unwrap();
// TODO(lucacasonato): handle error correctly
let line_index =
self.get_line_index(reference_specifier).await.unwrap();
diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs
index b545a796b..a09ac9588 100644
--- a/cli/lsp/tsc.rs
+++ b/cli/lsp/tsc.rs
@@ -474,13 +474,8 @@ pub struct ImplementationLocation {
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RenameLocation {
- // inherit from DocumentSpan
- text_span: TextSpan,
- file_name: String,
- original_text_span: Option<TextSpan>,
- original_file_name: Option<String>,
- context_span: Option<TextSpan>,
- original_context_span: Option<TextSpan>,
+ #[serde(flatten)]
+ document_span: DocumentSpan,
// RenameLocation props
prefix_text: Option<String>,
suffix_text: Option<String>,
@@ -504,8 +499,9 @@ impl RenameLocations {
let mut text_document_edit_map: HashMap<Url, lsp_types::TextDocumentEdit> =
HashMap::new();
for location in self.locations.iter() {
- let uri = utils::normalize_file_name(&location.file_name)?;
- let specifier = ModuleSpecifier::resolve_url(&location.file_name)?;
+ let uri = utils::normalize_file_name(&location.document_span.file_name)?;
+ let specifier =
+ ModuleSpecifier::resolve_url(&location.document_span.file_name)?;
// ensure TextDocumentEdit for `location.file_name`.
if text_document_edit_map.get(&uri).is_none() {
@@ -535,6 +531,7 @@ impl RenameLocations {
.edits
.push(lsp_types::OneOf::Left(lsp_types::TextEdit {
range: location
+ .document_span
.text_span
.to_range(&index_provider(specifier.clone()).await?),
new_text: new_name.to_string(),
@@ -654,20 +651,17 @@ pub struct ReferenceEntry {
is_write_access: bool,
pub is_definition: bool,
is_in_string: Option<bool>,
- text_span: TextSpan,
- pub file_name: String,
- original_text_span: Option<TextSpan>,
- original_file_name: Option<String>,
- context_span: Option<TextSpan>,
- original_context_span: Option<TextSpan>,
+ #[serde(flatten)]
+ pub document_span: DocumentSpan,
}
impl ReferenceEntry {
pub fn to_location(&self, line_index: &[u32]) -> lsp_types::Location {
- let uri = utils::normalize_file_name(&self.file_name).unwrap();
+ let uri =
+ utils::normalize_file_name(&self.document_span.file_name).unwrap();
lsp_types::Location {
uri,
- range: self.text_span.to_range(line_index),
+ range: self.document_span.text_span.to_range(line_index),
}
}
}