println removed

This commit is contained in:
Alexey Kudravtsev
2014-12-24 12:10:15 +03:00
parent fac2e468d4
commit 31d51ff6d9
3 changed files with 57 additions and 47 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2011 JetBrains s.r.o.
* Copyright 2000-2014 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.
@@ -65,7 +65,7 @@ public class IgnoredPatternSet {
return fileName.endsWith(FileUtil.ASYNC_DELETE_EXTENSION);
}
void clearPatterns() {
private void clearPatterns() {
myMasks.clear();
myIgnorePatterns.removeAllAssociations(Boolean.TRUE);
}
@@ -258,11 +258,11 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
});
files.remove(null);
if (toLog()) {
System.out.println("F: VFS events: " + events);
log("F: VFS events: " + events);
}
if (!files.isEmpty() && RE_DETECT_ASYNC) {
if (toLog()) {
System.out.println("F: queued to redetect: " + files);
log("F: queued to redetect: " + files);
}
reDetectQueue.offerIfAbsent(files);
}
@@ -277,6 +277,10 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
return RE_DETECT_ASYNC && ApplicationManager.getApplication().isUnitTestMode();
}
private static void log(String message) {
//System.out.println(message);
}
private final TransferToPooledThreadQueue<Collection<VirtualFile>> reDetectQueue = new TransferToPooledThreadQueue<Collection<VirtualFile>>("File type re-detect", Conditions.alwaysFalse(), -1, new Processor<Collection<VirtualFile>>() {
@Override
public boolean process(Collection<VirtualFile> files) {
@@ -306,7 +310,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
for (VirtualFile file : files) {
boolean shouldRedetect = wasAutoDetectedBefore(file) && isDetectable(file);
if (toLog()) {
System.out.println("F: Redetect file: " + file.getName() + "; shouldRedetect: " + shouldRedetect);
log("F: Redetect file: " + file.getName() + "; shouldRedetect: " + shouldRedetect);
}
if (shouldRedetect) {
int id = file instanceof VirtualFileWithId ? ((VirtualFileWithId)file).getId() : -1;
@@ -317,7 +321,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
file.putUserData(DETECTED_FROM_CONTENT_FILE_TYPE_KEY, null);
FileType after = getFileTypeByFile(file); // may be back to standard file type
if (toLog()) {
System.out.println("F: After redetect file: " + file.getName() + "; before: " + before.getName() + "; after: " + after.getName()+"; now getFileType()="+file.getFileType().getName());
log("F: After redetect file: " + file.getName() + "; before: " + before.getName() + "; after: " + after.getName()+"; now getFileType()="+file.getFileType().getName());
}
if (before != after) {
@@ -421,7 +425,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
public static void cacheFileType(@NotNull VirtualFile file, @Nullable FileType fileType) {
file.putUserData(FILE_TYPE_KEY, fileType);
if (toLog()) {
System.out.println("F: Cached file type for "+file.getName()+" to "+(fileType == null ? null : fileType.getName()));
log("F: Cached file type for "+file.getName()+" to "+(fileType == null ? null : fileType.getName()));
}
}
@@ -441,7 +445,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
FileTypeIdentifiableByVirtualFile type = mySpecialFileTypes.get(i);
if (type.isMyFileType(file)) {
if (toLog()) {
System.out.println("F: Special file type for "+file.getName()+"; type: "+type.getName());
log("F: Special file type for "+file.getName()+"; type: "+type.getName());
}
return type;
}
@@ -450,7 +454,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
fileType = getFileTypeByFileName(file.getNameSequence());
if (fileType != UnknownFileType.INSTANCE) {
if (toLog()) {
System.out.println("F: By name file type for "+file.getName()+"; type: "+fileType.getName());
log("F: By name file type for "+file.getName()+"; type: "+fileType.getName());
}
return fileType;
}
@@ -475,7 +479,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
if (autoDetectWasRun) {
FileType type = getAutoDetectedType(file, id);
if (toLog()) {
System.out.println("F: autodetected getFileType("+file.getName()+") = "+type.getName());
log("F: autodetected getFileType("+file.getName()+") = "+type.getName());
}
return type;
}
@@ -517,7 +521,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
}
if (toLog()) {
System.out.println("F: getFileType after detect run("+file.getName()+") = "+fileType.getName());
log("F: getFileType after detect run("+file.getName()+") = "+fileType.getName());
}
return fileType;
@@ -638,7 +642,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements NamedJDOME
}
FileType fileType = result.get();
if (toLog()) {
System.out.println("F: Redetect run for file: " + file.getName() + "; result: "+fileType.getName());
log("F: Redetect run for file: " + file.getName() + "; result: "+fileType.getName());
}
if (LOG.isDebugEnabled()) {
@@ -40,6 +40,7 @@ import com.intellij.psi.impl.PsiManagerEx;
import com.intellij.testFramework.PlatformTestCase;
import com.intellij.testFramework.PlatformTestUtil;
import com.intellij.util.PatternUtil;
import com.intellij.util.ThrowableRunnable;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.UIUtil;
import junit.framework.TestCase;
@@ -104,7 +105,27 @@ public class FileTypesTest extends PlatformTestCase {
}
public void testExcludePerformance() {
runPerformanceTest(true);
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public void run() {
myFileTypeManager.setIgnoredFilesList("1*2;3*4;5*6;7*8;9*0;*1;*3;*5;*6;7*;*8*");
}
});
final String[] names = new String[100];
for (int i = 0; i < names.length; i++) {
String name = String.valueOf((i%10)*10 + (i*100) + i + 1);
names[i] = (name + name + name + name);
}
PlatformTestUtil.startPerformanceTest("ignore perf", 700, new ThrowableRunnable() {
@Override
public void run() throws Throwable {
for (int i=0;i<1000;i++) {
for (String name : names) {
myFileTypeManager.isFileIgnored(name);
}
}
}
}).assertTiming();
}
public void testMaskToPattern() {
@@ -174,25 +195,6 @@ public class FileTypesTest extends PlatformTestCase {
assertTrue(myFileTypeManager.isFileIgnored(fileName));
}
private void runPerformanceTest(boolean rerunOnOvertime) {
long startTime = System.currentTimeMillis();
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public void run() {
myFileTypeManager.setIgnoredFilesList("1*2;3*4;5*6;7*8;9*0;*1;*3;*5;*6;7*;*8*");
}
});
for (int i = 0; i < 100; i++) {
String name = String.valueOf((i%10)*10 + (i*100) + i + 1);
myFileTypeManager.isFileIgnored(name + name + name + name);
}
long time = System.currentTimeMillis() - startTime;
if (time > 700) {
if (rerunOnOvertime) runPerformanceTest(false);
else fail("Time=" + time);
}
}
public void testAutoDetected() throws IOException {
File dir = createTempDirectory();
File file = FileUtil.createTempFile(dir, "x", "xxx_xx_xx", true);
@@ -311,7 +313,7 @@ public class FileTypesTest extends PlatformTestCase {
detectorCalled.add(file);
String text = firstCharsIfText.toString();
FileType result = text.startsWith("TYPE:") ? fileTypeManager.findFileTypeByName(StringUtil.trimStart(text, "TYPE:")) : null;
System.out.println("T: my detector run for "+file.getName()+"; result: "+(result == null ? null : result.getName()));
log("T: my detector run for "+file.getName()+"; result: "+(result == null ? null : result.getName()));
return result;
}
@@ -322,42 +324,46 @@ public class FileTypesTest extends PlatformTestCase {
};
Extensions.getRootArea().getExtensionPoint(FileTypeRegistry.FileTypeDetector.EP_NAME).registerExtension(detector);
try {
System.out.println("T: ------");
log("T: ------");
File f = createTempFile("xx.asfdasdfas", "akjdhfksdjgf");
VirtualFile vFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(f);
ensureRedetected(vFile, detectorCalled);
assertTrue(vFile.getFileType().toString(), vFile.getFileType() instanceof PlainTextFileType);
System.out.println("T: ------");
log("T: ------");
VfsUtil.saveText(vFile, "TYPE:IDEA_MODULE");
ensureRedetected(vFile, detectorCalled);
assertTrue(vFile.getFileType().toString(), vFile.getFileType() instanceof ModuleFileType);
System.out.println("T: ------");
log("T: ------");
VfsUtil.saveText(vFile, "TYPE:IDEA_PROJECT");
ensureRedetected(vFile, detectorCalled);
assertTrue(vFile.getFileType().toString(), vFile.getFileType() instanceof ProjectFileType);
System.out.println("T: ------");
log("T: ------");
}
finally {
Extensions.getRootArea().getExtensionPoint(FileTypeRegistry.FileTypeDetector.EP_NAME).unregisterExtension(detector);
}
}
private static void log(String message) {
//System.out.println(message);
}
private void ensureRedetected(VirtualFile vFile, Set<VirtualFile> detectorCalled) {
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
System.out.println("T: ensureRedetected: commit");
log("T: ensureRedetected: commit");
UIUtil.dispatchAllInvocationEvents();
System.out.println("T: ensureRedetected: dispatch");
log("T: ensureRedetected: dispatch");
myFileTypeManager.drainReDetectQueue();
System.out.println("T: ensureRedetected: drain");
log("T: ensureRedetected: drain");
UIUtil.dispatchAllInvocationEvents();
System.out.println("T: ensureRedetected: dispatch");
log("T: ensureRedetected: dispatch");
FileType type = vFile.getFileType();
System.out.println("T: ensureRedetected: getFileType ("+type.getName()+")");
log("T: ensureRedetected: getFileType ("+type.getName()+")");
assertTrue(detectorCalled.contains(vFile));
detectorCalled.clear();
System.out.println("T: ensureRedetected: clear");
log("T: ensureRedetected: clear");
}
public void testReassignedPredefinedFileType() throws Exception {
@@ -404,7 +410,7 @@ public class FileTypesTest extends PlatformTestCase {
Element element = new Element("foo");
myFileTypeManager.writeExternal(element);
String s = JDOMUtil.writeElement(element);
System.out.println(s);
log(s);
final AbstractFileType typeFromPlugin = new AbstractFileType(new SyntaxTable());
PlatformTestUtil.registerExtension(FileTypeFactory.FILE_TYPE_FACTORY_EP, new FileTypeFactory() {
@@ -453,7 +459,7 @@ public class FileTypesTest extends PlatformTestCase {
element = new Element("foo");
myFileTypeManager.writeExternal(element);
System.out.println(JDOMUtil.writeElement(element));
log(JDOMUtil.writeElement(element));
Extensions.getRootArea().getExtensionPoint(FileTypeFactory.FILE_TYPE_FACTORY_EP).unregisterExtension(factory);
myFileTypeManager.clearForTests();
@@ -463,7 +469,7 @@ public class FileTypesTest extends PlatformTestCase {
element = new Element("foo");
myFileTypeManager.writeExternal(element);
System.out.println(JDOMUtil.writeElement(element));
log(JDOMUtil.writeElement(element));
Extensions.getRootArea().getExtensionPoint(FileTypeFactory.FILE_TYPE_FACTORY_EP).registerExtension(factory);
myFileTypeManager.clearForTests();
@@ -473,7 +479,7 @@ public class FileTypesTest extends PlatformTestCase {
element = new Element("foo");
myFileTypeManager.writeExternal(element);
System.out.println(JDOMUtil.writeElement(element));
log(JDOMUtil.writeElement(element));
assertEquals(typeFromPlugin, myFileTypeManager.getFileTypeByFileName("foo.foo"));
}