diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2021-06-07 21:38:07 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-07 21:38:07 +1000 |
commit | 3b3be024fa1895a9a1df0a2e67fe93aa888b198e (patch) | |
tree | 3a162e49195a5ce6da93855c13fe3f994ca0cb7f /cli/lsp/language_server.rs | |
parent | d6f6e157bddc02a64beaa1c96fcda8d8ea27aa6d (diff) |
feat(lsp): add test code lens (#10874)
Ref #8643
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 9e4e6af14..cd952b548 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -243,7 +243,10 @@ impl Inner { // moment /// Searches already cached assets and documents and returns its text /// content. If not found, `None` is returned. - fn get_text_content(&self, specifier: &ModuleSpecifier) -> Option<String> { + pub(crate) fn get_text_content( + &self, + specifier: &ModuleSpecifier, + ) -> Option<String> { if specifier.scheme() == "asset" { self .assets @@ -256,6 +259,17 @@ impl Inner { } } + pub(crate) fn get_media_type( + &self, + specifier: &ModuleSpecifier, + ) -> Option<MediaType> { + if specifier.scheme() == "asset" || self.documents.contains_key(specifier) { + Some(MediaType::from(specifier)) + } else { + self.sources.get_media_type(specifier) + } + } + pub(crate) async fn get_navigation_tree( &mut self, specifier: &ModuleSpecifier, @@ -1099,15 +1113,15 @@ impl Inner { let specifier = self.url_map.normalize_url(¶ms.text_document.uri); if !self.documents.is_diagnosable(&specifier) || !self.config.specifier_enabled(&specifier) - || !self.config.get_workspace_settings().enabled_code_lens() + || !(self.config.get_workspace_settings().enabled_code_lens() + || self.config.specifier_code_lens_test(&specifier)) { return Ok(None); } let mark = self.performance.mark("code_lens", Some(¶ms)); - let code_lenses = code_lens::tsc_code_lenses(&specifier, self) - .await - .map_err(|err| { + let code_lenses = + code_lens::collect(&specifier, self).await.map_err(|err| { error!("Error getting code lenses for \"{}\": {}", specifier, err); LspError::internal_error() })?; |