diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2020-12-16 06:34:39 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-16 06:34:39 +1100 |
commit | 892d6cc99749247884fdbe2d89ca13def3af8bdb (patch) | |
tree | dc77d1da3e96876882b309f554921b290a80026b /cli/lsp/handlers.rs | |
parent | 6356345365e766d984f591506fb475d7935685de (diff) |
refactor(lsp): optimise static assets (#8771)
Fixes #8158
Diffstat (limited to 'cli/lsp/handlers.rs')
-rw-r--r-- | cli/lsp/handlers.rs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/cli/lsp/handlers.rs b/cli/lsp/handlers.rs index ccda69f7d..69cdd8041 100644 --- a/cli/lsp/handlers.rs +++ b/cli/lsp/handlers.rs @@ -31,8 +31,11 @@ fn get_line_index( specifier: &ModuleSpecifier, ) -> Result<Vec<u32>, AnyError> { let line_index = if specifier.as_url().scheme() == "asset" { - if let Some(source) = tsc::get_asset(specifier.as_url().path()) { - text::index_lines(source) + let server_state = state.snapshot(); + if let Some(source) = + tsc::get_asset(specifier, &mut state.ts_runtime, &server_state)? + { + text::index_lines(&source) } else { return Err(custom_error( "NotFound", @@ -256,7 +259,7 @@ pub fn handle_references( } pub fn handle_virtual_text_document( - state: ServerStateSnapshot, + state: &mut ServerState, params: lsp_extensions::VirtualTextDocumentParams, ) -> Result<String, AnyError> { let specifier = utils::normalize_url(params.text_document.uri); @@ -274,8 +277,11 @@ pub fn handle_virtual_text_document( } else { match url.scheme() { "asset" => { - if let Some(text) = tsc::get_asset(url.path()) { - text.to_string() + let server_state = state.snapshot(); + if let Some(text) = + tsc::get_asset(&specifier, &mut state.ts_runtime, &server_state)? + { + text } else { error!("Missing asset: {}", specifier); "".to_string() |