4625: Partially fix displaying inlay hints in Github PR diff views r=matklad a=Veetaha

See the comment in https://github.com/rust-analyzer/rust-analyzer/issues/4608#issuecomment-63424257

It partially fixes the left side of diff view (the one where old code is displayed), but the diff editor with new code changes still has `file` scheme and will proceed displaying inlay hints...

4629: Fix the `should_panic` snippet r=matklad a=eminence

Closes #4628

Co-authored-by: veetaha <veetaha2@gmail.com>
Co-authored-by: Andrew Chin <achin@eminence32.net>
This commit is contained in:
bors[bot] 2020-05-27 12:34:03 +00:00 committed by GitHub
commit 3c5112b079
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 7 deletions

View file

@ -112,7 +112,7 @@ const ATTRIBUTES: &[AttrCompletion] = &[
AttrCompletion { label: "repr", snippet: Some("repr(${0:C})"), should_be_inner: false },
AttrCompletion {
label: "should_panic",
snippet: Some(r#"expected = "${0:reason}""#),
snippet: Some(r#"should_panic(expected = "${0:reason}")"#),
should_be_inner: false,
},
AttrCompletion {
@ -571,7 +571,7 @@ mod tests {
label: "should_panic",
source_range: 19..19,
delete: 19..19,
insert: "expected = \"${0:reason}\"",
insert: "should_panic(expected = \"${0:reason}\")",
kind: Attribute,
},
CompletionItem {
@ -810,7 +810,7 @@ mod tests {
label: "should_panic",
source_range: 20..20,
delete: 20..20,
insert: "expected = \"${0:reason}\"",
insert: "should_panic(expected = \"${0:reason}\")",
kind: Attribute,
},
CompletionItem {

View file

@ -74,10 +74,11 @@ export type RustDocument = vscode.TextDocument & { languageId: "rust" };
export type RustEditor = vscode.TextEditor & { document: RustDocument };
export function isRustDocument(document: vscode.TextDocument): document is RustDocument {
return document.languageId === 'rust'
// SCM diff views have the same URI as the on-disk document but not the same content
&& document.uri.scheme !== 'git'
&& document.uri.scheme !== 'svn';
// Prevent corrupted text (particularly via inlay hints) in diff views
// by allowing only `file` schemes
// unfortunately extensions that use diff views not always set this
// to something different than 'file' (see ongoing bug: #4608)
return document.languageId === 'rust' && document.uri.scheme === 'file';
}
export function isRustEditor(editor: vscode.TextEditor): editor is RustEditor {