summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2021-06-07 21:38:07 +1000
committerGitHub <noreply@github.com>2021-06-07 21:38:07 +1000
commit3b3be024fa1895a9a1df0a2e67fe93aa888b198e (patch)
tree3a162e49195a5ce6da93855c13fe3f994ca0cb7f /cli/lsp/language_server.rs
parentd6f6e157bddc02a64beaa1c96fcda8d8ea27aa6d (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.rs24
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(&params.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(&params));
- 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()
})?;