diff --git a/crates/ide_db/src/ty_filter.rs b/crates/ide_db/src/ty_filter.rs index 00678bf3e9..766d8c6288 100644 --- a/crates/ide_db/src/ty_filter.rs +++ b/crates/ide_db/src/ty_filter.rs @@ -4,7 +4,7 @@ use std::iter; -use hir::{Adt, Semantics, Type}; +use hir::Semantics; use syntax::ast::{self, make}; use crate::RootDatabase; @@ -20,9 +20,9 @@ impl TryEnum { const ALL: [TryEnum; 2] = [TryEnum::Option, TryEnum::Result]; /// Returns `Some(..)` if the provided type is an enum that implements `std::ops::Try`. - pub fn from_ty(sema: &Semantics, ty: &Type) -> Option { + pub fn from_ty(sema: &Semantics, ty: &hir::Type) -> Option { let enum_ = match ty.as_adt() { - Some(Adt::Enum(it)) => it, + Some(hir::Adt::Enum(it)) => it, _ => return None, }; TryEnum::ALL.iter().find_map(|&var| { diff --git a/editors/code/src/snippets.ts b/editors/code/src/snippets.ts index 9561aa345b..58f7aa128f 100644 --- a/editors/code/src/snippets.ts +++ b/editors/code/src/snippets.ts @@ -56,6 +56,9 @@ export async function applySnippetTextEdits(editor: vscode.TextEditor, edits: vs } }); if (selections.length > 0) editor.selections = selections; + if (selections.length === 1) { + editor.revealRange(selections[0], vscode.TextEditorRevealType.InCenterIfOutsideViewport); + } } function parseSnippet(snip: string): [string, [number, number]] | undefined {