diff --git a/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java b/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java
index 6c1e2df370bb..e99af2bf9d0a 100644
--- a/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java
+++ b/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java
@@ -13,11 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-/*
- * User: anna
- * Date: 26-Jun-2007
- */
package com.intellij.codeInsight;
import com.intellij.CommonBundle;
@@ -25,6 +20,7 @@ import com.intellij.ProjectTopics;
import com.intellij.codeInsight.highlighting.HighlightManager;
import com.intellij.icons.AllIcons;
import com.intellij.ide.DataManager;
+import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.Result;
@@ -84,6 +80,10 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+/**
+ * @author anna
+ * @since 26-Jun-2007
+ */
public class ExternalAnnotationsManagerImpl extends BaseExternalAnnotationsManager {
private static final Logger LOG = Logger.getInstance("#" + ExternalAnnotationsManagerImpl.class.getName());
@@ -650,8 +650,8 @@ public class ExternalAnnotationsManagerImpl extends BaseExternalAnnotationsManag
}
try {
- return (XmlFile)directory
- .add(PsiFileFactory.getInstance(myPsiManager.getProject()).createFileFromText(ANNOTATIONS_XML, ""));
+ final PsiFileFactory factory = PsiFileFactory.getInstance(myPsiManager.getProject());
+ return (XmlFile)directory.add(factory.createFileFromText(ANNOTATIONS_XML, XmlFileType.INSTANCE, ""));
}
catch (IncorrectOperationException e) {
LOG.error(e);
diff --git a/java/java-impl/src/com/intellij/ide/fileTemplates/JavaCreateFromTemplateHandler.java b/java/java-impl/src/com/intellij/ide/fileTemplates/JavaCreateFromTemplateHandler.java
index 6c130ec472d1..d726cea50e18 100644
--- a/java/java-impl/src/com/intellij/ide/fileTemplates/JavaCreateFromTemplateHandler.java
+++ b/java/java-impl/src/com/intellij/ide/fileTemplates/JavaCreateFromTemplateHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@ package com.intellij.ide.fileTemplates;
import com.intellij.ide.IdeBundle;
import com.intellij.openapi.fileTypes.FileType;
+import com.intellij.openapi.fileTypes.FileTypeRegistry;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.fileTypes.ex.FileTypeManagerEx;
import com.intellij.openapi.project.Project;
@@ -38,7 +39,9 @@ public class JavaCreateFromTemplateHandler implements CreateFromTemplateHandler
boolean reformat,
String extension) throws IncorrectOperationException {
if (extension == null) extension = StdFileTypes.JAVA.getDefaultExtension();
- final PsiFile psiFile = PsiFileFactory.getInstance(project).createFileFromText("myclass" + "." + extension, content);
+ final String name = "myClass" + "." + extension;
+ final FileType type = FileTypeRegistry.getInstance().getFileTypeByFileName(name);
+ final PsiFile psiFile = PsiFileFactory.getInstance(project).createFileFromText(name, type, content);
if (!(psiFile instanceof PsiJavaFile)){
throw new IncorrectOperationException("This template did not produce a Java class or an interface\n"+psiFile.getText());
}
diff --git a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java
index a1e034050cc2..05490b82d821 100644
--- a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java
+++ b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
package com.intellij.refactoring.extractclass;
+import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.ide.util.PackageUtil;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.Result;
@@ -683,7 +684,8 @@ public class ExtractClassProcessor extends FixableUsagesRefactoringProcessor {
directory = PackageUtil.findOrCreateDirectoryForPackage(module, newPackageName, containingDirectory, false, true);
}
if (directory != null) {
- final PsiFile newFile = PsiFileFactory.getInstance(project).createFileFromText(newClassName + ".java", classString);
+ final PsiFileFactory factory = PsiFileFactory.getInstance(project);
+ final PsiFile newFile = factory.createFileFromText(newClassName + ".java", JavaFileType.INSTANCE, classString);
final PsiElement addedFile = directory.add(newFile);
final CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(manager.getProject());
final PsiElement shortenedFile = JavaCodeStyleManager.getInstance(project).shortenClassReferences(addedFile);
diff --git a/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectProcessor.java b/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectProcessor.java
index 1c9c57ac68d9..bcd84bdc2a86 100644
--- a/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectProcessor.java
+++ b/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectProcessor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
package com.intellij.refactoring.introduceparameterobject;
+import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.ide.util.PackageUtil;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.Module;
@@ -272,7 +273,8 @@ public class IntroduceParameterObjectProcessor extends FixableUsagesRefactoringP
final String classString = beanClassBuilder.buildBeanClass();
try {
- final PsiJavaFile newFile = (PsiJavaFile)PsiFileFactory.getInstance(method.getProject()).createFileFromText(className + ".java", classString);
+ final PsiFileFactory factory = PsiFileFactory.getInstance(method.getProject());
+ final PsiJavaFile newFile = (PsiJavaFile)factory.createFileFromText(className + ".java", JavaFileType.INSTANCE, classString);
if (myCreateInnerClass) {
final PsiClass containingClass = method.getContainingClass();
final PsiClass[] classes = newFile.getClasses();
diff --git a/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderProcessor.java b/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderProcessor.java
index e5bd42743749..d8fe6c84fb03 100644
--- a/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderProcessor.java
+++ b/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderProcessor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,13 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-/*
- * User: anna
- * Date: 04-Sep-2008
- */
package com.intellij.refactoring.replaceConstructorWithBuilder;
+import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.ide.util.PackageUtil;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtil;
@@ -54,6 +50,10 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
+/**
+ * @author anna
+ * @since 04-Sep-2008
+ */
public class ReplaceConstructorWithBuilderProcessor extends FixableUsagesRefactoringProcessor {
public static final String REFACTORING_NAME = "Replace Constructor with Builder";
private final PsiMethod[] myConstructors;
@@ -105,12 +105,12 @@ public class ReplaceConstructorWithBuilderProcessor extends FixableUsagesRefacto
@Nullable
private PsiClass createBuilderClass() {
-
final PsiClass psiClass = myConstructors[0].getContainingClass();
assert psiClass != null;
final PsiTypeParameterList typeParameterList = psiClass.getTypeParameterList();
- final PsiJavaFile newFile = (PsiJavaFile)PsiFileFactory.getInstance(myProject)
- .createFileFromText(myClassName + ".java", "public class " + myClassName + (typeParameterList != null ? typeParameterList.getText() : "") + "{}");
+ final String text = "public class " + myClassName + (typeParameterList != null ? typeParameterList.getText() : "") + "{}";
+ final PsiFileFactory factory = PsiFileFactory.getInstance(myProject);
+ final PsiJavaFile newFile = (PsiJavaFile)factory.createFileFromText(myClassName + ".java", JavaFileType.INSTANCE, text);
final PsiFile containingFile = myConstructors[0].getContainingFile();
final PsiDirectory containingDirectory = containingFile.getContainingDirectory();
diff --git a/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueProcessor.java b/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueProcessor.java
index d59035dab136..7e9b37f6d8fd 100644
--- a/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueProcessor.java
+++ b/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueProcessor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
package com.intellij.refactoring.wrapreturnvalue;
+import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.ide.util.PackageUtil;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.Module;
@@ -265,7 +266,8 @@ public class WrapReturnValueProcessor extends FixableUsagesRefactoringProcessor
}
try {
- final PsiJavaFile psiFile = (PsiJavaFile)PsiFileFactory.getInstance(project).createFileFromText(className + ".java", classString);
+ final PsiFileFactory factory = PsiFileFactory.getInstance(project);
+ final PsiJavaFile psiFile = (PsiJavaFile)factory.createFileFromText(className + ".java", JavaFileType.INSTANCE, classString);
final CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(manager.getProject());
if (myCreateInnerClass) {
final PsiClass containingClass = method.getContainingClass();
diff --git a/java/java-tests/testSrc/com/intellij/psi/AddClassToFileTest.java b/java/java-tests/testSrc/com/intellij/psi/AddClassToFileTest.java
index 03f7c1111ae9..f41efd5de2ff 100644
--- a/java/java-tests/testSrc/com/intellij/psi/AddClassToFileTest.java
+++ b/java/java-tests/testSrc/com/intellij/psi/AddClassToFileTest.java
@@ -1,5 +1,21 @@
+/*
+ * Copyright 2000-2012 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.intellij.psi;
+import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileEditor.impl.LoadTextUtil;
@@ -13,6 +29,7 @@ public class AddClassToFileTest extends PsiTestCase{
public void test() throws Exception {
VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, myFilesToDelete);
PsiDirectory dir = myPsiManager.findDirectory(root);
+ assertNotNull(dir);
PsiFile file = dir.createFile("AAA.java");
PsiClass aClass = myJavaFacade.getElementFactory().createClass("AAA");
file.add(aClass);
@@ -24,13 +41,16 @@ public class AddClassToFileTest extends PsiTestCase{
VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, myFilesToDelete);
VirtualFile pkg = root.createChildDirectory(this, "foo");
PsiDirectory dir = myPsiManager.findDirectory(pkg);
+ assertNotNull(dir);
String text = "package foo;\n\nclass A {}";
- PsiElement created = dir.add(PsiFileFactory.getInstance(getProject()).createFileFromText("A.java", text));
+ PsiElement created = dir.add(PsiFileFactory.getInstance(getProject()).createFileFromText("A.java", JavaFileType.INSTANCE, text));
VirtualFile virtualFile = created.getContainingFile().getVirtualFile();
+ assertNotNull(virtualFile);
String fileText = LoadTextUtil.loadText(virtualFile).toString();
assertEquals(text, fileText);
Document doc = FileDocumentManager.getInstance().getDocument(virtualFile);
+ assertNotNull(doc);
assertFalse(FileDocumentManager.getInstance().isDocumentUnsaved(doc));
assertFalse(FileDocumentManager.getInstance().isFileModified(virtualFile));
}
diff --git a/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java b/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java
index 1cfbef616f74..b7e517502222 100644
--- a/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java
+++ b/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java
@@ -15,6 +15,7 @@
*/
package com.intellij.psi;
+import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ex.PathManagerEx;
import com.intellij.openapi.diagnostic.Logger;
@@ -599,7 +600,7 @@ public class ClsRepositoryUseTest extends PsiTestCase {
"class Dummy {\n" +
" { Map list = new HashMap();}\n" +
"}";
- PsiJavaFile file = (PsiJavaFile)PsiFileFactory.getInstance(getProject()).createFileFromText("Dummy.java", text);
+ PsiJavaFile file = (PsiJavaFile)PsiFileFactory.getInstance(getProject()).createFileFromText("Dummy.java", JavaFileType.INSTANCE, text);
PsiDeclarationStatement decl = (PsiDeclarationStatement)file.getClasses()[0].getInitializers()[0].getBody().getStatements()[0];
PsiVariable list = (PsiVariable)decl.getDeclaredElements()[0];
diff --git a/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java b/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java
index c391589cc39e..01fb2d1e512e 100644
--- a/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java
+++ b/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java
@@ -16,6 +16,7 @@
package com.intellij.psi.search;
import com.intellij.JavaTestUtil;
+import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.ide.impl.ProjectUtil;
import com.intellij.ide.todo.TodoConfiguration;
import com.intellij.openapi.application.ApplicationManager;
@@ -93,7 +94,7 @@ public class UpdateCacheTest extends PsiTestCase{
public void testFileCreation() throws Exception {
PsiDirectory root = ProjectRootUtil.getAllContentRoots(myProject) [0];
- PsiFile file = PsiFileFactory.getInstance(myProject).createFileFromText("New.java", "class A{ Object o;}");
+ PsiFile file = PsiFileFactory.getInstance(myProject).createFileFromText("New.java", JavaFileType.INSTANCE, "class A{ Object o;}");
file = (PsiFile)root.add(file);
assertNotNull(file);
diff --git a/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java b/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java
index dcf69acd525a..b1fa8a716c91 100644
--- a/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java
+++ b/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,6 +29,7 @@ import com.intellij.codeInspection.InspectionToolProvider;
import com.intellij.codeInspection.LocalInspectionTool;
import com.intellij.codeInspection.ModifiableModel;
import com.intellij.codeInspection.ex.*;
+import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.ide.startup.StartupManagerEx;
import com.intellij.ide.startup.impl.StartupManagerImpl;
import com.intellij.lang.ExternalAnnotatorsFilter;
@@ -36,6 +37,7 @@ import com.intellij.lang.LanguageAnnotators;
import com.intellij.lang.StdLanguages;
import com.intellij.lang.annotation.HighlightSeverity;
import com.intellij.lang.injection.InjectedLanguageManager;
+import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.Result;
@@ -53,10 +55,7 @@ import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.io.FileUtil;
-import com.intellij.openapi.vfs.LocalFileSystem;
-import com.intellij.openapi.vfs.VfsUtil;
-import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.openapi.vfs.VirtualFileFilter;
+import com.intellij.openapi.vfs.*;
import com.intellij.profile.codeInspection.InspectionProfileManager;
import com.intellij.profile.codeInspection.InspectionProjectProfileManager;
import com.intellij.psi.*;
@@ -172,9 +171,9 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase {
if (isPerformanceTest()) {
IntentionManager.getInstance().getAvailableIntentionActions(); // hack to avoid slowdowns in PyExtensionFactory
PathManagerEx.getTestDataPath(); // to cache stuff
- ReferenceProvidersRegistry.getInstance(); // preload tons of classes
+ ReferenceProvidersRegistry.getInstance(); // pre-load tons of classes
InjectedLanguageManager.getInstance(getProject()); // zillion of Dom Sem classes
- LanguageAnnotators.INSTANCE.allForLanguage(StdLanguages.JAVA); // pile of annotator classes loads
+ LanguageAnnotators.INSTANCE.allForLanguage(JavaLanguage.INSTANCE); // pile of annotator classes loads
LanguageAnnotators.INSTANCE.allForLanguage(StdLanguages.XML);
ProblemHighlightFilter.EP_NAME.getExtensions();
Extensions.getExtensions(ImplicitUsageProvider.EP_NAME);
@@ -445,12 +444,14 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase {
return new WriteCommandAction(getProject()) {
@Override
protected void run(Result result) throws Throwable {
- final String qname =
- ((PsiJavaFile)PsiFileFactory.getInstance(getProject()).createFileFromText("a.java", text)).getClasses()[0].getQualifiedName();
+ final PsiFileFactory factory = PsiFileFactory.getInstance(getProject());
+ final PsiJavaFile javaFile = (PsiJavaFile)factory.createFileFromText("a.java", JavaFileType.INSTANCE, text);
+ final String qname = javaFile.getClasses()[0].getQualifiedName();
+ assertNotNull(qname);
final VirtualFile[] files = ModuleRootManager.getInstance(module).getSourceRoots();
File dir;
if (files.length > 0) {
- dir = VfsUtil.virtualToIoFile(files[0]);
+ dir = VfsUtilCore.virtualToIoFile(files[0]);
}
else {
dir = createTempDirectory();
@@ -461,10 +462,12 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase {
File file = new File(dir, qname.replace('.', '/') + ".java");
FileUtil.createIfDoesntExist(file);
- VirtualFile vFile =
- LocalFileSystem.getInstance().refreshAndFindFileByPath(file.getCanonicalPath().replace(File.separatorChar, '/'));
+ VirtualFile vFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(file.getCanonicalPath().replace(File.separatorChar, '/'));
+ assertNotNull(vFile);
VfsUtil.saveText(vFile, text);
- PsiClass psiClass = ((PsiJavaFile)myPsiManager.findFile(vFile)).getClasses()[0];
+ PsiJavaFile psiFile = (PsiJavaFile)myPsiManager.findFile(vFile);
+ assertNotNull(psiFile);
+ PsiClass psiClass = psiFile.getClasses()[0];
result.setResult(psiClass);
}
diff --git a/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java b/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java
index 4f8ecf5136e9..b618b57116cf 100644
--- a/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java
+++ b/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,8 @@ import com.intellij.openapi.application.Result;
import com.intellij.openapi.application.WriteAction;
import com.intellij.openapi.application.ex.PathManagerEx;
import com.intellij.openapi.fileEditor.FileDocumentManager;
+import com.intellij.openapi.fileTypes.FileType;
+import com.intellij.openapi.fileTypes.FileTypeRegistry;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
import com.intellij.openapi.roots.ModuleRootManager;
@@ -69,7 +71,8 @@ public abstract class PsiTestCase extends ModuleTestCase {
}
protected PsiFile createDummyFile(String fileName, String text) throws IncorrectOperationException {
- return PsiFileFactory.getInstance(myProject).createFileFromText(fileName, text);
+ FileType type = FileTypeRegistry.getInstance().getFileTypeByFileName(fileName);
+ return PsiFileFactory.getInstance(myProject).createFileFromText(fileName, type, text);
}
protected PsiFile createFile(@NonNls String fileName, String text) throws Exception {
diff --git a/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaCodeInsightTestFixtureImpl.java b/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaCodeInsightTestFixtureImpl.java
index 7ebb31b1b1b2..e4d075bc3b62 100644
--- a/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaCodeInsightTestFixtureImpl.java
+++ b/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaCodeInsightTestFixtureImpl.java
@@ -15,6 +15,7 @@
*/
package com.intellij.testFramework.fixtures.impl;
+import com.intellij.ide.highlighter.JavaFileType;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.vfs.VirtualFile;
@@ -55,8 +56,9 @@ public class JavaCodeInsightTestFixtureImpl extends CodeInsightTestFixtureImpl i
final String qName =
ApplicationManager.getApplication().runReadAction(new Computable() {
public String compute() {
- final PsiClass aClass = ((PsiJavaFile)PsiFileFactory.getInstance(getProject()).createFileFromText("a.java", classText)).getClasses()[0];
- return aClass.getQualifiedName();
+ final PsiFileFactory factory = PsiFileFactory.getInstance(getProject());
+ final PsiJavaFile javaFile = (PsiJavaFile)factory.createFileFromText("a.java", JavaFileType.INSTANCE, classText);
+ return javaFile.getClasses()[0].getQualifiedName();
}
});
assert qName != null;
diff --git a/platform/core-api/src/com/intellij/psi/PsiFileFactory.java b/platform/core-api/src/com/intellij/psi/PsiFileFactory.java
index 9ca7aac37892..b96a0fbddba9 100644
--- a/platform/core-api/src/com/intellij/psi/PsiFileFactory.java
+++ b/platform/core-api/src/com/intellij/psi/PsiFileFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,10 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-/*
- * @author max
- */
package com.intellij.psi;
import com.intellij.lang.Language;
@@ -28,8 +24,12 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+/**
+ * @author max
+ */
public abstract class PsiFileFactory {
public static Key ORIGINAL_FILE = Key.create("ORIGINAL_FILE");
+
public static PsiFileFactory getInstance(Project project) {
return ServiceManager.getService(project, PsiFileFactory.class);
}
@@ -37,13 +37,14 @@ public abstract class PsiFileFactory {
/**
* Please use {@link #createFileFromText(String, com.intellij.openapi.fileTypes.FileType, CharSequence)},
* since file type detecting by file extension becomes vulnerable when file type mappings are changed.
- *
+ *
* Creates a file from the specified text.
*
* @param name the name of the file to create (the extension of the name determines the file type).
* @param text the text of the file to create.
* @return the created file.
- * @throws com.intellij.util.IncorrectOperationException if the file type with specified extension is binary.
+ * @throws com.intellij.util.IncorrectOperationException
+ * if the file type with specified extension is binary.
*/
@Deprecated
@NotNull
@@ -54,11 +55,11 @@ public abstract class PsiFileFactory {
@NotNull
public abstract PsiFile createFileFromText(@NonNls @NotNull String name, @NotNull FileType fileType, @NotNull CharSequence text,
- long modificationStamp, boolean physical);
+ long modificationStamp, boolean physical);
@NotNull
public abstract PsiFile createFileFromText(@NonNls @NotNull String name, @NotNull FileType fileType, @NotNull CharSequence text,
- long modificationStamp, boolean physical, boolean markAsCopy);
+ long modificationStamp, boolean physical, boolean markAsCopy);
public abstract PsiFile createFileFromText(@NotNull String name, @NotNull Language language, @NotNull CharSequence text);
@@ -71,5 +72,5 @@ public abstract class PsiFileFactory {
public abstract PsiFile createFileFromText(FileType fileType, String fileName, CharSequence chars, int startOffset, int endOffset);
@Nullable
- public abstract PsiFile createFileFromText(@NotNull CharSequence chars, @NotNull PsiFile original);
+ public abstract PsiFile createFileFromText(@NotNull CharSequence chars, @NotNull PsiFile original);
}
\ No newline at end of file
diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java
index 38b853489878..964103ac2955 100644
--- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java
+++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,7 +26,9 @@ import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.fileEditor.TextEditor;
+import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.FileTypeManager;
+import com.intellij.openapi.fileTypes.FileTypeRegistry;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VfsUtil;
@@ -160,7 +162,8 @@ public class CreateFileFix extends LocalQuickFixAndIntentionActionOnPsiElement {
String text = getFileText();
if (text != null) {
- final PsiFile psiFile = PsiFileFactory.getInstance(project).createFileFromText("_" + newFileName, text);
+ final FileType type = FileTypeRegistry.getInstance().getFileTypeByFileName(newFileName);
+ final PsiFile psiFile = PsiFileFactory.getInstance(project).createFileFromText("_" + newFileName, type, text);
final PsiElement psiElement = CodeStyleManager.getInstance(project).reformat(psiFile);
text = psiElement.getText();
}
diff --git a/platform/lang-impl/src/com/intellij/ide/fileTemplates/DefaultCreateFromTemplateHandler.java b/platform/lang-impl/src/com/intellij/ide/fileTemplates/DefaultCreateFromTemplateHandler.java
index 836f640e0786..ad279a3887af 100644
--- a/platform/lang-impl/src/com/intellij/ide/fileTemplates/DefaultCreateFromTemplateHandler.java
+++ b/platform/lang-impl/src/com/intellij/ide/fileTemplates/DefaultCreateFromTemplateHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,9 @@
package com.intellij.ide.fileTemplates;
import com.intellij.ide.IdeBundle;
+import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.FileTypeManager;
+import com.intellij.openapi.fileTypes.FileTypeRegistry;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
@@ -46,7 +48,8 @@ public class DefaultCreateFromTemplateHandler implements CreateFromTemplateHandl
}
directory.checkCreateFile(fileName);
- PsiFile file = PsiFileFactory.getInstance(project).createFileFromText(fileName, templateText);
+ FileType type = FileTypeRegistry.getInstance().getFileTypeByFileName(fileName);
+ PsiFile file = PsiFileFactory.getInstance(project).createFileFromText(fileName, type, templateText);
if (template.isReformatCode()) {
CodeStyleManager.getInstance(project).reformat(file);
diff --git a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java
index b142c581c4a3..f1086ed291b9 100644
--- a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java
+++ b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java
@@ -788,7 +788,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
final Language dialect = (Language)myDialectComboBox.getSelectedItem();
return PsiFileFactory.getInstance(myProject).createFileFromText("Dummy." + ext, dialect == null ? language : dialect, text);
}
- return PsiFileFactory.getInstance(myProject).createFileFromText("Dummy." + ext, text);
+ return PsiFileFactory.getInstance(myProject).createFileFromText("Dummy." + ext, type, text);
}
}
catch (IncorrectOperationException e) {
diff --git a/platform/lang-impl/src/com/intellij/openapi/vcs/checkin/TodoCheckinHandlerWorker.java b/platform/lang-impl/src/com/intellij/openapi/vcs/checkin/TodoCheckinHandlerWorker.java
index 752406c1ea05..cd8c1bf76994 100644
--- a/platform/lang-impl/src/com/intellij/openapi/vcs/checkin/TodoCheckinHandlerWorker.java
+++ b/platform/lang-impl/src/com/intellij/openapi/vcs/checkin/TodoCheckinHandlerWorker.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -234,7 +234,7 @@ public class TodoCheckinHandlerWorker {
private void checkEditedFragment(TodoItem newTodoItem) {
if (myBeforeFile == null) {
- myBeforeFile = myPsiFileFactory.createFileFromText("old" + myAfterFile.getName(), myBeforeContent);
+ myBeforeFile = myPsiFileFactory.createFileFromText("old" + myAfterFile.getName(), myAfterFile.getFileType(), myBeforeContent);
}
if (myOldItems == null) {
final Collection all =
diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java
index e16a95c63ab0..8d606cabeec2 100644
--- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java
+++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,11 +33,9 @@ public class PsiCommentManipulator extends AbstractElementManipulator