diff --git a/cli/lsp/urls.rs b/cli/lsp/urls.rs index 905803da88..dee89c977b 100644 --- a/cli/lsp/urls.rs +++ b/cli/lsp/urls.rs @@ -188,10 +188,14 @@ impl LspUrlMap { if let Some(specifier) = inner.get_specifier(url).cloned() { specifier } else { - let specifier = if let Ok(path) = url.to_file_path() { - match kind { - LspUrlKind::Folder => Url::from_directory_path(path).unwrap(), - LspUrlKind::File => Url::from_file_path(path).unwrap(), + let specifier = if url.scheme() == "file" { + if let Ok(path) = url.to_file_path() { + match kind { + LspUrlKind::Folder => Url::from_directory_path(path).unwrap(), + LspUrlKind::File => Url::from_file_path(path).unwrap(), + } + } else { + url.clone() } } else { url.clone() @@ -293,4 +297,12 @@ mod tests { .unwrap(); assert_eq!(actual, expected); } + + #[test] + fn test_normalize_deno_status() { + let map = LspUrlMap::default(); + let fixture = resolve_url("deno:/status.md").unwrap(); + let actual = map.normalize_url(&fixture, LspUrlKind::File); + assert_eq!(actual, fixture); + } }