Merge remote-tracking branch 'origin/master' into develar/is
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Thu, 7 Jul 2016 12:30:49 +0000 (14:30 +0200)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Thu, 7 Jul 2016 12:30:49 +0000 (14:30 +0200)
# Conflicts:
# platform/configuration-store-impl/src/StateStorageManagerImpl.kt
# platform/lang-impl/src/com/intellij/codeInspection/ex/EditInspectionToolsSettingsAction.java

17 files changed:
1  2 
java/java-impl/src/com/intellij/codeInsight/intention/impl/config/QuickFixFactoryImpl.java
java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesTest.java
json/src/com/jetbrains/jsonSchema/JsonSchemaFileTypeManager.java
platform/analysis-impl/src/com/intellij/codeInsight/daemon/impl/HighlightInfo.java
platform/configuration-store-impl/src/StateMap.kt
platform/configuration-store-impl/src/StateStorageManagerImpl.kt
platform/lang-impl/src/com/intellij/codeInspection/actions/RunInspectionAction.java
platform/lang-impl/src/com/intellij/codeInspection/ex/EditInspectionToolsSettingsAction.java
platform/lang-impl/src/com/intellij/codeInspection/ex/GlobalInspectionContextImpl.java
platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java
platform/lang-impl/src/com/intellij/codeInspection/ui/InspectionResultsView.java
platform/lang-impl/src/com/intellij/profile/codeInspection/ui/header/InspectionToolsConfigurable.java
platform/platform-impl/src/com/intellij/openapi/keymap/impl/ui/KeymapPanel.java
platform/platform-resources/src/META-INF/LangExtensionPoints.xml
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java
platform/util/resources/misc/registry.properties
xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java

index d5e9f724376a6440f8f2cbd601059068965b6ea3,765518d346e4ecec6a7d01568b07ad7a290d9ec8..f7656c77ee3cb84b6fd688cec9470c2c55cefa03
@@@ -61,30 -60,27 +60,18 @@@ public class JsonSchemaFileTypeManager 
      }
    }
  
-   private Set<VirtualFile> addProjectFiles(@NotNull final Project project) {
-     final Set<VirtualFile> files = JsonSchemaService.Impl.getEx(project).getSchemaFiles();
-     myFileSets.put(project, files);
-     return files;
-   }
    @Override
    public void projectOpened(Project project) {
-     reparseFiles(addProjectFiles(project));
+     reset();
    }
  
-   public void reset(@NotNull final Project project) {
-     final Collection<VirtualFile> files = myFileSets.remove(project);
-     reparseFiles(files);
-   }
-   private static void reparseFiles(Collection<VirtualFile> files) {
-     if (files != null && !files.isEmpty()) {
-       FileContentUtilCore.reparseFiles(files);
-     }
+   public void reset() {
+     mySetsInitialized = false;
+     ensureInitialized();
    }
  
 -  @Override
 -  public boolean canCloseProject(Project project) {
 -    return true;
 -  }
 -
    @Override
    public void projectClosed(Project project) {
-     myFileSets.remove(project);
+     reset();
    }
 -
 -  @Override
 -  public void projectClosing(Project project) {
 -  }
  }
index 9942afa0646eabb1948f2b3c0b27b69ee8b96280,a191aef4b2182104e818f6679aa3c91a23499213..fd70187085398e7277ba8f0abaeea651c1992423
@@@ -149,14 -147,22 +149,23 @@@ open class StateStorageManagerImpl(priv
    fun getOrCreateStorage(collapsedPath: String,
                           roamingType: RoamingType = RoamingType.DEFAULT,
                           storageClass: Class<out StateStorage> = StateStorage::class.java,
 -                         @Suppress("DEPRECATION") stateSplitter: Class<out StateSplitter> = StateSplitterEx::class.java): StateStorage {
 +                         @Suppress("DEPRECATION") stateSplitter: Class<out StateSplitter> = StateSplitterEx::class.java,
 +                         exclusive: Boolean = false): StateStorage {
      val normalizedCollapsedPath = normalizeFileSpec(collapsedPath)
-     val key = if (storageClass == StateStorage::class.java) normalizedCollapsedPath else storageClass.name
-     storageLock.write {
-       var storage = storages.get(key)
+     val key: String
+     if (storageClass == StateStorage::class.java) {
+       if (normalizedCollapsedPath.isEmpty()) {
+         throw Exception("Normalized path is empty, raw path '$collapsedPath'")
+       }
+       key = normalizedCollapsedPath
+     }
+     else {
+       key = storageClass.name!!
+     }
+     storageLock.withLock {
+       var storage = storages[key]
        if (storage == null) {
 -        storage = createStateStorage(storageClass, normalizedCollapsedPath, roamingType, stateSplitter)
 +        storage = createStateStorage(storageClass, normalizedCollapsedPath, roamingType, stateSplitter, exclusive)
          storages.put(key, storage)
        }
        return storage
index 17bf7caf833c5e46ad148063ca7e0d331837c068,484e3fffbebb9c19504120ab9347910b98b96c2a..198f99cf8753da8cec2a7a78f1dde8b1d555e3a2
@@@ -96,13 -96,13 +96,13 @@@ public class RunInspectionAction extend
      }, false);
    }
  
-   private static void runInspection(final @NotNull Project project,
-                                     @NotNull String shortName,
-                                     @Nullable VirtualFile virtualFile,
-                                     PsiElement psiElement,
-                                     PsiFile psiFile) {
+   public static void runInspection(final @NotNull Project project,
+                                    @NotNull String shortName,
+                                    @Nullable VirtualFile virtualFile,
+                                    PsiElement psiElement,
+                                    PsiFile psiFile) {
      final PsiElement element = psiFile == null ? psiElement : psiFile;
 -    final InspectionProfile currentProfile = InspectionProjectProfileManager.getInstance(project).getInspectionProfile();
 +    final InspectionProfile currentProfile = InspectionProjectProfileManager.getInstance(project).getCurrentProfile();
      final InspectionToolWrapper toolWrapper = element != null ? currentProfile.getInspectionTool(shortName, element)
                                                                : currentProfile.getInspectionTool(shortName, project);
      LOGGER.assertTrue(toolWrapper != null, "Missed inspection: " + shortName);
index b2bdade0eaa0a0cd8917d418ce48a65a5ea3d9a8,4c2331d24b38c586b4ba424fd1d3a4d8f599a4fe..1440771d2eb6215402392158393be9b9cb9b7472
@@@ -103,7 -103,14 +103,13 @@@ public class EditInspectionToolsSetting
      final ShowSettingsUtil settingsUtil = ShowSettingsUtil.getInstance();
      final ErrorsConfigurable errorsConfigurable;
      if (!canChooseDifferentProfile) {
-       errorsConfigurable = new ProjectInspectionToolsConfigurable(ProjectInspectionProfileManagerImpl.getInstanceImpl(project));
 -      errorsConfigurable = new ProjectInspectionToolsConfigurable(InspectionProfileManager.getInstance(),
 -                                                                  InspectionProjectProfileManager.getInstance(project)) {
++      errorsConfigurable = new ProjectInspectionToolsConfigurable(ProjectInspectionProfileManagerImpl.getInstance(project)) {
+         @Override
+         protected boolean setActiveProfileAsDefaultOnApply() {
+           return false;
+         }
+       };
      }
      else {
        errorsConfigurable = ErrorsConfigurable.SERVICE.createConfigurable(project);