RUBY-16868: .bundle removed from list of ignored files
authorOleg Sukhodolsky <oleg.sukhodolsky@jetbrains.com>
Wed, 24 Jun 2015 10:03:26 +0000 (13:03 +0300)
committerOleg Sukhodolsky <oleg.sukhodolsky@jetbrains.com>
Wed, 24 Jun 2015 10:06:56 +0000 (13:06 +0300)
platform/platform-impl/src/com/intellij/openapi/fileTypes/impl/FileTypeManagerImpl.java

index 8e605292a0ea3a9bfa25a4e020de23089bad0c7c..cb8b5eec6d2884be57e548d5e0a058aa9e798b24 100644 (file)
@@ -79,7 +79,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements Persistent
   private static final Logger LOG = Logger.getInstance(FileTypeManagerImpl.class);
 
   // You must update all existing default configurations accordingly
-  private static final int VERSION = 14;
+  private static final int VERSION = 15;
   private static final Key<FileType> FILE_TYPE_KEY = Key.create("FILE_TYPE_KEY");
   // cached auto-detected file type. If the file was auto-detected as plain text or binary
   // then the value is null and autoDetectedAsText, autoDetectedAsBinary and autoDetectWasRun sets are used instead.
@@ -88,7 +88,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements Persistent
 
   @NonNls
   private static final String DEFAULT_IGNORED =
-    "*.hprof;*.pyc;*.pyo;*.rbc;*~;.DS_Store;.bundle;.git;.hg;.svn;CVS;RCS;SCCS;__pycache__;.tox;_svn;rcs;vssver.scc;vssver2.scc;";
+    "*.hprof;*.pyc;*.pyo;*.rbc;*~;.DS_Store;.git;.hg;.svn;CVS;RCS;SCCS;__pycache__;.tox;_svn;rcs;vssver.scc;vssver2.scc;";
 
   private static boolean RE_DETECT_ASYNC = !ApplicationManager.getApplication().isUnitTestMode();
   private final Set<FileType> myDefaultTypes = new THashSet<FileType>();
@@ -897,29 +897,23 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements Persistent
       addIgnore("__pycache__");
     }
 
-    if (savedVersion < 10) {
-      addIgnore(".bundle");
-    }
-
     if (savedVersion < 11) {
       addIgnore("*.rbc");
     }
 
     if (savedVersion < 13) {
       // we want *.lib back since it's an important user artifact for CLion, also for IDEA project itself, since we have some libs.  
-      Set<String> masks = new LinkedHashSet<String>(myIgnoredPatterns.getIgnoreMasks());
-      masks.remove("*.lib");
-      
-      myIgnoredPatterns.clearPatterns();
-      for (String each : masks) {
-        myIgnoredPatterns.addIgnoreMask(each);
-      }
+      unignoreMask("*.lib");
     }
 
     if (savedVersion < 14) {
       addIgnore(".tox");
     }
 
+    if (savedVersion < 15) {
+      // we want .bundle back, bundler keeps useful data there
+      unignoreMask(".bundle");
+    }
     myIgnoredFileCache.clearCache();
 
     String counter = JDOMExternalizer.readString(state, "fileTypeChangedCounter");
@@ -929,6 +923,16 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements Persistent
     }
   }
 
+  private void unignoreMask(@NotNull final String maskToRemove) {
+    final Set<String> masks = new LinkedHashSet<String>(myIgnoredPatterns.getIgnoreMasks());
+    masks.remove(maskToRemove);
+
+    myIgnoredPatterns.clearPatterns();
+    for (final String each : masks) {
+      myIgnoredPatterns.addIgnoreMask(each);
+    }
+  }
+
   private void readGlobalMappings(@NotNull Element e) {
     for (Pair<FileNameMatcher, String> association : AbstractFileType.readAssociations(e)) {
       FileType type = getFileTypeByName(association.getSecond());