}
}
- 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) {
- }
}
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
}, 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);
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);