mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 19:08:15 +00:00
feat(lsp): add references code lens (#9316)
This commit is contained in:
parent
46d5843f75
commit
534531e4dd
13 changed files with 738 additions and 152 deletions
|
@ -1,6 +1,9 @@
|
|||
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
|
||||
|
||||
use crate::normalize_path;
|
||||
use serde::de;
|
||||
use serde::Deserialize;
|
||||
use serde::Deserializer;
|
||||
use std::env::current_dir;
|
||||
use std::error::Error;
|
||||
use std::fmt;
|
||||
|
@ -209,9 +212,21 @@ impl PartialEq<String> for ModuleSpecifier {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'de> Deserialize<'de> for ModuleSpecifier {
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
let url_str: String = Deserialize::deserialize(deserializer)?;
|
||||
ModuleSpecifier::resolve_url(&url_str).map_err(de::Error::custom)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::serde_json::from_value;
|
||||
use crate::serde_json::json;
|
||||
use std::path::Path;
|
||||
|
||||
#[test]
|
||||
|
@ -545,4 +560,13 @@ mod tests {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_deserialize_module_specifier() {
|
||||
let actual: ModuleSpecifier =
|
||||
from_value(json!("http://deno.land/x/mod.ts")).unwrap();
|
||||
let expected =
|
||||
ModuleSpecifier::resolve_url("http://deno.land/x/mod.ts").unwrap();
|
||||
assert_eq!(actual, expected);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue