mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-26 20:09:19 +00:00
Solve platform-specific issues
This commit is contained in:
parent
12292e445a
commit
b64c31c40a
2 changed files with 8 additions and 10 deletions
|
@ -535,13 +535,11 @@ fn get_doc_base_urls(
|
||||||
|
|
||||||
return (web_base, local_base);
|
return (web_base, local_base);
|
||||||
|
|
||||||
// On Windows, cargo metadata returns paths without leading slashes, but
|
|
||||||
// Url::from_directory_path requires them.
|
|
||||||
// In unix adding another "/" will not make any difference.
|
|
||||||
fn create_url_from_os_str(path: &OsStr) -> Option<Url> {
|
fn create_url_from_os_str(path: &OsStr) -> Option<Url> {
|
||||||
let mut with_leading_slash = OsStr::new("/").to_os_string();
|
let mut with_prefix = OsStr::new("file:///").to_os_string();
|
||||||
with_leading_slash.push(path);
|
with_prefix.push(path);
|
||||||
Url::from_directory_path(with_leading_slash.as_os_str()).ok()
|
with_prefix.push("/");
|
||||||
|
with_prefix.to_str().and_then(|s| Url::parse(s).ok())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -128,7 +128,7 @@ use foo$0::Foo;
|
||||||
//- /lib.rs crate:foo
|
//- /lib.rs crate:foo
|
||||||
pub struct Foo;
|
pub struct Foo;
|
||||||
"#,
|
"#,
|
||||||
Some(&OsStr::new("/home/user/project/")),
|
Some(&OsStr::new("/home/user/project")),
|
||||||
Some(expect![[r#"https://docs.rs/foo/*/foo/index.html"#]]),
|
Some(expect![[r#"https://docs.rs/foo/*/foo/index.html"#]]),
|
||||||
Some(expect![[r#"file:///home/user/project/doc/foo/index.html"#]]),
|
Some(expect![[r#"file:///home/user/project/doc/foo/index.html"#]]),
|
||||||
);
|
);
|
||||||
|
@ -141,7 +141,7 @@ fn external_docs_doc_url_std_crate() {
|
||||||
//- /main.rs crate:std
|
//- /main.rs crate:std
|
||||||
use self$0;
|
use self$0;
|
||||||
"#,
|
"#,
|
||||||
Some(&OsStr::new("/home/user/project/")),
|
Some(&OsStr::new("/home/user/project")),
|
||||||
Some(expect!["https://doc.rust-lang.org/stable/std/index.html"]),
|
Some(expect!["https://doc.rust-lang.org/stable/std/index.html"]),
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
@ -154,7 +154,7 @@ fn external_docs_doc_url_struct() {
|
||||||
//- /main.rs crate:foo
|
//- /main.rs crate:foo
|
||||||
pub struct Fo$0o;
|
pub struct Fo$0o;
|
||||||
"#,
|
"#,
|
||||||
Some(&OsStr::new("/home/user/project/")),
|
Some(&OsStr::new("/home/user/project")),
|
||||||
Some(expect![[r#"https://docs.rs/foo/*/foo/struct.Foo.html"#]]),
|
Some(expect![[r#"https://docs.rs/foo/*/foo/struct.Foo.html"#]]),
|
||||||
Some(expect![[r#"file:///home/user/project/doc/foo/struct.Foo.html"#]]),
|
Some(expect![[r#"file:///home/user/project/doc/foo/struct.Foo.html"#]]),
|
||||||
);
|
);
|
||||||
|
@ -169,7 +169,7 @@ pub struct Fo$0o;
|
||||||
"#,
|
"#,
|
||||||
Some(&OsStr::new(r"C:\Users\user\project")),
|
Some(&OsStr::new(r"C:\Users\user\project")),
|
||||||
Some(expect![[r#"https://docs.rs/foo/*/foo/struct.Foo.html"#]]),
|
Some(expect![[r#"https://docs.rs/foo/*/foo/struct.Foo.html"#]]),
|
||||||
Some(expect![[r#"file:///C:\Users\user\project/doc/foo/struct.Foo.html"#]]),
|
Some(expect![[r#"file:///C:/Users/user/project/doc/foo/struct.Foo.html"#]]),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue