summaryrefslogtreecommitdiff
path: root/cli/lsp/documents.rs
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2021-03-25 11:13:37 +1100
committerGitHub <noreply@github.com>2021-03-25 11:13:37 +1100
commit5ebb4017030c065c31d52be50dc7fa7a4c128d64 (patch)
tree2983a0deeb164cc64ab45feb0f892e969b386115 /cli/lsp/documents.rs
parentd6d5ced1ab90404d25a87a242ee5b03ca655abe5 (diff)
feat(lsp): add import completions (#9821)
Diffstat (limited to 'cli/lsp/documents.rs')
-rw-r--r--cli/lsp/documents.rs22
1 files changed, 14 insertions, 8 deletions
diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs
index ef9061004..da393fbac 100644
--- a/cli/lsp/documents.rs
+++ b/cli/lsp/documents.rs
@@ -26,15 +26,26 @@ impl IndexValid {
}
}
-#[derive(Debug, Clone, Default)]
+#[derive(Debug, Clone)]
pub struct DocumentData {
bytes: Option<Vec<u8>>,
line_index: Option<LineIndex>,
+ specifier: ModuleSpecifier,
dependencies: Option<HashMap<String, analysis::Dependency>>,
version: Option<i32>,
}
impl DocumentData {
+ pub fn new(specifier: ModuleSpecifier, version: i32, source: &str) -> Self {
+ Self {
+ bytes: Some(source.as_bytes().to_owned()),
+ line_index: Some(LineIndex::new(source)),
+ specifier,
+ dependencies: None,
+ version: Some(version),
+ }
+ }
+
pub fn apply_content_changes(
&mut self,
content_changes: Vec<TextDocumentContentChangeEvent>,
@@ -153,13 +164,8 @@ impl DocumentCache {
pub fn open(&mut self, specifier: ModuleSpecifier, version: i32, text: &str) {
self.docs.insert(
- specifier,
- DocumentData {
- bytes: Some(text.as_bytes().to_owned()),
- version: Some(version),
- line_index: Some(LineIndex::new(&text)),
- ..Default::default()
- },
+ specifier.clone(),
+ DocumentData::new(specifier, version, text),
);
}