Default File Header made empty to avoid moronic comments like /* created by USER on DATE */. See IDEA-147100 Default File Header template causes pointless javadocs in projects

This commit is contained in:
Alexey Kudravtsev
2017-05-13 11:52:11 +03:00
parent f35eb99265
commit eadce11afd
5 changed files with 89 additions and 9 deletions
@@ -17,6 +17,7 @@ package com.intellij.codeInspection;
import com.intellij.JavaTestUtil;
import com.intellij.codeInspection.defaultFileTemplateUsage.DefaultFileTemplateUsageInspection;
import com.intellij.testFramework.PlatformTestUtil;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
public class DefaultFileTemplateUsageInspectionTest extends LightCodeInsightFixtureTestCase {
@@ -34,4 +35,10 @@ public class DefaultFileTemplateUsageInspectionTest extends LightCodeInsightFixt
myFixture.enableInspections(new DefaultFileTemplateUsageInspection());
myFixture.testHighlighting(true, false, true, getTestName(false) + ".java");
}
@Override
protected void setUp() throws Exception {
super.setUp();
PlatformTestUtil.setLongMeaninglessFileIncludeTemplateTemporarilyFor(getProject(), getTestRootDisposable());
}
}
@@ -24,6 +24,7 @@ import com.intellij.psi.PsiDirectory
import com.intellij.psi.PsiJavaModule
import com.intellij.psi.PsiManager
import com.intellij.testFramework.MapDataContext
import com.intellij.testFramework.PlatformTestUtil
import com.intellij.testFramework.fixtures.LightJava9ModulesCodeInsightFixtureTestCase
import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor.MAIN
@@ -48,4 +49,9 @@ class CreateModuleInfoActionTest : LightJava9ModulesCodeInsightFixtureTestCase()
override fun getDirectories() = arrayOf(dir)
override fun getOrChooseDirectory() = throw UnsupportedOperationException()
}
override fun setUp() {
super.setUp()
PlatformTestUtil.setLongMeaninglessFileIncludeTemplateTemporarilyFor(project, testRootDisposable)
}
}
@@ -21,6 +21,7 @@ import com.intellij.ide.fileTemplates.FileTemplate;
import com.intellij.ide.fileTemplates.FileTemplateManager;
import com.intellij.ide.fileTemplates.FileTemplatesScheme;
import com.intellij.ide.fileTemplates.InternalTemplateBean;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.components.PersistentStateComponent;
@@ -32,6 +33,7 @@ import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileTypes.ex.FileTypeManagerEx;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.io.FileUtilRt;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.project.ProjectKt;
@@ -344,14 +346,16 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers
@Override
@NotNull
public FileTemplate getDefaultTemplate(@NotNull final String name) {
final String templateQName = myTypeManager.getExtension(name).isEmpty()? FileTemplateBase.getQualifiedName(name, "java") : name;
final String templateQName = getQualifiedName(name);
for (FTManager manager : getAllManagers()) {
final FileTemplateBase template = manager.getTemplate(templateQName);
if (template instanceof BundledFileTemplate) {
final BundledFileTemplate copy = ((BundledFileTemplate)template).clone();
copy.revertToDefaults();
return copy;
FileTemplateBase template = manager.getTemplate(templateQName);
if (template != null) {
if (template instanceof BundledFileTemplate) {
template = ((BundledFileTemplate)template).clone();
((BundledFileTemplate)template).revertToDefaults();
}
return template;
}
}
@@ -360,6 +364,11 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers
throw new RuntimeException(message);
}
@NotNull
private String getQualifiedName(@NotNull String name) {
return myTypeManager.getExtension(name).isEmpty() ? FileTemplateBase.getQualifiedName(name, "java") : name;
}
@Override
@NotNull
public FileTemplate[] getAllPatterns() {
@@ -436,6 +445,57 @@ public class FileTemplateManagerImpl extends FileTemplateManager implements Pers
return getSettings().getAllManagers();
}
@TestOnly
public void setDefaultFileIncludeTemplateTextTemporarilyForTest(String simpleName, String text, @NotNull Disposable parentDisposable) {
FTManager defaultTemplatesManager = getSettings().getPatternsManager();
String qName = getQualifiedName(simpleName);
FileTemplateBase oldTemplate = defaultTemplatesManager.getTemplate(qName);
Map<String, FileTemplateBase> templates = defaultTemplatesManager.getTemplates();
templates.put(qName, new FileTemplateBase() {
@NotNull
@Override
public String getName() {
return simpleName;
}
@Override
public void setName(@NotNull String name) {
throw new AbstractMethodError();
}
@Override
public boolean isDefault() {
return true;
}
@NotNull
@Override
public String getDescription() {
throw new AbstractMethodError();
}
@NotNull
@Override
public String getExtension() {
return qName.substring(simpleName.length());
}
@Override
public void setExtension(@NotNull String extension) {
throw new AbstractMethodError();
}
@NotNull
@Override
protected String getDefaultText() {
return text;
}
});
Disposer.register(parentDisposable, () -> {
templates.put(qName, oldTemplate);
});
}
public static class State {
public List<String> RECENT_TEMPLATES = new ArrayList<>();
public String SCHEME = FileTemplatesScheme.DEFAULT.getName();
@@ -22,6 +22,8 @@ import com.intellij.execution.process.ProcessOutput;
import com.intellij.execution.util.ExecUtil;
import com.intellij.ide.DataManager;
import com.intellij.ide.IdeEventQueue;
import com.intellij.ide.fileTemplates.FileTemplateManager;
import com.intellij.ide.fileTemplates.impl.FileTemplateManagerImpl;
import com.intellij.ide.util.treeView.AbstractTreeNode;
import com.intellij.ide.util.treeView.AbstractTreeStructure;
import com.intellij.idea.Bombed;
@@ -1033,4 +1035,12 @@ public class PlatformTestUtil {
return true;
}
public static void setLongMeaninglessFileIncludeTemplateTemporarilyFor(@NotNull Project project, @NotNull Disposable parentDisposable) {
FileTemplateManagerImpl templateManager = (FileTemplateManagerImpl)FileTemplateManager.getInstance(project);
templateManager.setDefaultFileIncludeTemplateTextTemporarilyForTest(FileTemplateManager.FILE_HEADER_TEMPLATE_NAME,
"/**\n" +
" * Created by ${USER} on ${DATE}.\n" +
" */\n", parentDisposable);
}
}
@@ -1,3 +0,0 @@
/**
* Created by ${USER} on ${DATE}.
*/