From a7776721f26ffa1a278dcbb397c6567ffcfbf626 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Wed, 24 Aug 2022 12:08:45 +0200 Subject: [PATCH] SSR: fix intention preview for document based replace handler (used by SSR for JavaScript) GitOrigin-RevId: 71abec6e02a36ff2cea98057afbe43fc554713e8 --- .../structuralsearch/DocumentBasedReplaceHandler.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/DocumentBasedReplaceHandler.java b/platform/structuralsearch/source/com/intellij/structuralsearch/DocumentBasedReplaceHandler.java index f87afc4ea7d4..e4d90705ee07 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/DocumentBasedReplaceHandler.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/DocumentBasedReplaceHandler.java @@ -1,12 +1,14 @@ -// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.structuralsearch; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.RangeMarker; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.TextRange; +import com.intellij.psi.FileViewProvider; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; import com.intellij.structuralsearch.plugin.replace.ReplaceOptions; import com.intellij.structuralsearch.plugin.replace.ReplacementInfo; import org.jetbrains.annotations.NotNull; @@ -37,7 +39,9 @@ public class DocumentBasedReplaceHandler extends StructuralReplaceHandler { public void prepare(@NotNull ReplacementInfo info) { final PsiElement firstElement = StructuralSearchUtil.getPresentableElement(info.getMatch(0)); if (firstElement == null) return; - final Document document = PsiDocumentManager.getInstance(myProject).getDocument(firstElement.getContainingFile()); + final PsiFile file = firstElement.getContainingFile(); + final FileViewProvider fileViewProvider = file.getViewProvider(); + final Document document = fileViewProvider.getDocument(); assert document != null; final TextRange range = firstElement.getTextRange(); int startOffset = range.getStartOffset();