aboutsummaryrefslogtreecommitdiff
path: root/crates/rust-analyzer/src/diagnostics/to_proto.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/rust-analyzer/src/diagnostics/to_proto.rs')
-rw-r--r--crates/rust-analyzer/src/diagnostics/to_proto.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/crates/rust-analyzer/src/diagnostics/to_proto.rs b/crates/rust-analyzer/src/diagnostics/to_proto.rs
index 08303a781..82dd0da9a 100644
--- a/crates/rust-analyzer/src/diagnostics/to_proto.rs
+++ b/crates/rust-analyzer/src/diagnostics/to_proto.rs
@@ -99,10 +99,12 @@ fn diagnostic_related_information(
99/// Resolves paths applying any matching path prefix remappings, and then 99/// Resolves paths applying any matching path prefix remappings, and then
100/// joining the path to the workspace root. 100/// joining the path to the workspace root.
101fn resolve_path(config: &DiagnosticsMapConfig, workspace_root: &Path, file_name: &str) -> PathBuf { 101fn resolve_path(config: &DiagnosticsMapConfig, workspace_root: &Path, file_name: &str) -> PathBuf {
102 match config.remap_path_prefixes.iter().find(|(from, _)| file_name.starts_with(*from)) { 102 match config
103 Some((from, to)) => { 103 .remap_prefix
104 workspace_root.join(format!("{}{}", to, file_name.strip_prefix(from).unwrap())) 104 .iter()
105 } 105 .find_map(|(from, to)| file_name.strip_prefix(from).map(|file_name| (to, file_name)))
106 {
107 Some((to, file_name)) => workspace_root.join(format!("{}{}", to, file_name)),
106 None => workspace_root.join(file_name), 108 None => workspace_root.join(file_name),
107 } 109 }
108} 110}