mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fix gui form test flakiness
don't let mock file type be retained in StdFileTypes after a light test
This commit is contained in:
@@ -15,13 +15,13 @@
|
||||
*/
|
||||
package com.intellij.java.parser;
|
||||
|
||||
import com.intellij.ide.highlighter.JavaFileType;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.LanguageASTFactory;
|
||||
import com.intellij.lang.PsiBuilder;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.lang.java.JavaParserDefinition;
|
||||
import com.intellij.lang.java.parser.JavaParserUtil;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
|
||||
import com.intellij.openapi.roots.impl.LanguageLevelProjectExtensionImpl;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
@@ -94,8 +94,8 @@ public abstract class JavaParsingTestCase extends ParsingTestCase {
|
||||
|
||||
TEST_PARSER = parser;
|
||||
|
||||
final LightVirtualFile virtualFile = new LightVirtualFile(name + '.' + myFileExt, StdFileTypes.JAVA, text, -1);
|
||||
final FileViewProvider viewProvider = new SingleRootFileViewProvider(PsiManager.getInstance(getProject()), virtualFile, true);
|
||||
LightVirtualFile virtualFile = new LightVirtualFile(name + '.' + myFileExt, JavaFileType.INSTANCE, text, -1);
|
||||
FileViewProvider viewProvider = new SingleRootFileViewProvider(PsiManager.getInstance(getProject()), virtualFile, true);
|
||||
return new PsiJavaFileImpl(viewProvider) {
|
||||
@NotNull
|
||||
@Override
|
||||
|
||||
@@ -167,6 +167,7 @@ public class MockFileTypeManager extends FileTypeManagerEx {
|
||||
if ("XHTML".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.ide.highlighter.XHtmlFileType", fileTypeName);
|
||||
if ("JavaScript".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.lang.javascript.JavaScriptFileType", fileTypeName);
|
||||
if ("Properties".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.lang.properties.PropertiesFileType", fileTypeName);
|
||||
if ("GUI_DESIGNER_FORM".equals(fileTypeName)) return loadFileTypeSafe("com.intellij.uiDesigner.GuiFormFileType", fileTypeName);
|
||||
return new MockLanguageFileType(PlainTextLanguage.INSTANCE, fileTypeName.toLowerCase());
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ import com.intellij.ide.highlighter.XmlFileType;
|
||||
import com.intellij.lang.properties.psi.PropertiesFile;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtil;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -35,6 +35,7 @@ import com.intellij.psi.xml.XmlAttribute;
|
||||
import com.intellij.psi.xml.XmlAttributeValue;
|
||||
import com.intellij.psi.xml.XmlFile;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.uiDesigner.GuiFormFileType;
|
||||
import com.intellij.uiDesigner.UIFormXmlConstants;
|
||||
import com.intellij.uiDesigner.compiler.Utils;
|
||||
import com.intellij.util.ProcessingContext;
|
||||
@@ -50,6 +51,7 @@ import java.util.Map;
|
||||
* @author yole
|
||||
*/
|
||||
public class FormReferenceProvider extends PsiReferenceProvider {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.uiDesigner.binding.FormReferenceProvider");
|
||||
private static class CachedFormData {
|
||||
PsiReference[] myReferences;
|
||||
Map<String, Pair<PsiType, TextRange>> myFieldNameToTypeMap;
|
||||
@@ -65,8 +67,8 @@ public class FormReferenceProvider extends PsiReferenceProvider {
|
||||
@NotNull
|
||||
public PsiReference[] getReferencesByElement(@NotNull final PsiElement element, @NotNull final ProcessingContext context) {
|
||||
if (element instanceof PsiPlainTextFile) {
|
||||
final PsiPlainTextFile plainTextFile = (PsiPlainTextFile) element;
|
||||
if (plainTextFile.getFileType().equals(StdFileTypes.GUI_DESIGNER_FORM)) {
|
||||
PsiPlainTextFile plainTextFile = (PsiPlainTextFile) element;
|
||||
if (plainTextFile.getFileType().equals(GuiFormFileType.INSTANCE)) {
|
||||
return getCachedData(plainTextFile).myReferences;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user