mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-26 13:03:31 +00:00
Merge #5480
5480: Fix snippetTextEdits applying to other files r=matklad a=TimoFreiberg Fixes #4551 `vscode.window.visibleTextEditors` only contains editors whose contents are being displayed at the moment, so the previous logic only worked if the other file for which a snippetTextEdit is being received was visible in a separate split. I feel that this is a hacky approach, so feel free to reject it for something nicer :) Co-authored-by: Timo Freiberg <timo.freiberg@gmail.com>
This commit is contained in:
commit
85532e2df3
1 changed files with 4 additions and 0 deletions
|
@ -6,6 +6,10 @@ export async function applySnippetWorkspaceEdit(edit: vscode.WorkspaceEdit) {
|
||||||
assert(edit.entries().length === 1, `bad ws edit: ${JSON.stringify(edit)}`);
|
assert(edit.entries().length === 1, `bad ws edit: ${JSON.stringify(edit)}`);
|
||||||
const [uri, edits] = edit.entries()[0];
|
const [uri, edits] = edit.entries()[0];
|
||||||
|
|
||||||
|
if (vscode.window.activeTextEditor?.document.uri !== uri) {
|
||||||
|
// `vscode.window.visibleTextEditors` only contains editors whose contents are being displayed
|
||||||
|
await vscode.window.showTextDocument(uri, {});
|
||||||
|
}
|
||||||
const editor = vscode.window.visibleTextEditors.find((it) => it.document.uri.toString() === uri.toString());
|
const editor = vscode.window.visibleTextEditors.find((it) => it.document.uri.toString() === uri.toString());
|
||||||
if (!editor) return;
|
if (!editor) return;
|
||||||
await applySnippetTextEdits(editor, edits);
|
await applySnippetTextEdits(editor, edits);
|
||||||
|
|
Loading…
Reference in a new issue