diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/FileUrlProvider.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/FileUrlProvider.java index e74b15771955..0ff5fd92c9dc 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/FileUrlProvider.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/FileUrlProvider.java @@ -19,6 +19,7 @@ import com.intellij.execution.Location; import com.intellij.execution.PsiLocation; import com.intellij.execution.testframework.sm.runner.SMTestLocator; import com.intellij.openapi.editor.Document; +import com.intellij.openapi.fileEditor.OpenFileDescriptor; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.io.FileUtil; @@ -131,6 +132,18 @@ public class FileUrlProvider implements SMTestLocator, DumbAware { int length = elementAtLine.getTextLength(); offset += length > 1 ? length - 1 : 1; } + + if (elementAtLine instanceof PsiPlainText && offset > 0) { + int offsetInPlainTextFile = offset; + return new PsiLocation(project, (PsiPlainText)elementAtLine) { + @Nullable + @Override + public OpenFileDescriptor getOpenFileDescriptor() { + VirtualFile file = getVirtualFile(); + return file != null ? new OpenFileDescriptor(getProject(), file, offsetInPlainTextFile) : null; + } + }; + } return PsiLocation.fromPsiElement(project, elementAtLine != null ? elementAtLine : psiFile); }