diff --git a/plugins/spellchecker/src/com/intellij/spellchecker/quickfixes/ChangeTo.java b/plugins/spellchecker/src/com/intellij/spellchecker/quickfixes/ChangeTo.java index b54cdce41f81..3c6188800565 100644 --- a/plugins/spellchecker/src/com/intellij/spellchecker/quickfixes/ChangeTo.java +++ b/plugins/spellchecker/src/com/intellij/spellchecker/quickfixes/ChangeTo.java @@ -20,13 +20,16 @@ import com.intellij.codeInsight.lookup.LookupElementBuilder; import com.intellij.codeInsight.lookup.LookupManager; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ex.ProblemDescriptorImpl; -import com.intellij.ide.DataManager; +import com.intellij.ide.util.EditSourceUtil; import com.intellij.openapi.actionSystem.Anchor; -import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.fileEditor.FileEditorManager; +import com.intellij.openapi.fileEditor.OpenFileDescriptor; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.pom.Navigatable; +import com.intellij.psi.PsiElement; import com.intellij.spellchecker.util.SpellCheckerBundle; import org.jetbrains.annotations.NotNull; @@ -57,8 +60,12 @@ public class ChangeTo extends ShowSuggestions implements SpellCheckerQuickFix { public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) { + PsiElement element = descriptor.getPsiElement(); + if (element == null) return; + Navigatable navigatable = EditSourceUtil.getDescriptor(element); + if (!(navigatable instanceof OpenFileDescriptor)) return; + Editor editor = FileEditorManager.getInstance(project).openTextEditor((OpenFileDescriptor)navigatable, true); - final Editor editor = PlatformDataKeys.EDITOR.getData(DataManager.getInstance().getDataContext()); if (editor == null) { return; }