diff --git a/src/langserver/main.rs b/src/langserver/main.rs index 0594cc93..62dfbd9c 100644 --- a/src/langserver/main.rs +++ b/src/langserver/main.rs @@ -472,15 +472,16 @@ impl<'a> Engine<'a> { // normal path, when we have a workspace root & an environment loaded let path = url_to_path(url)?; let root = url_to_path(root)?; - let stripped = match path.strip_prefix(&root) { - Ok(path) => path, - Err(_) => return Err(invalid_request(format!("outside workspace: {}", url))), - }; let defines = match self.defines { Some(ref d) => d, None => return Err(invalid_request("no preprocessor history")), }; + + let stripped = match path.strip_prefix(&root) { + Ok(path) => path, + Err(_) => "".as_ref(), + }; let (real_file_id, mut preprocessor) = match self.context.get_file(&stripped) { Some(id) => (id, defines.branch_at_file(id, &self.context)), None => (FileId::default(), defines.branch_at_end(&self.context)),