fix "IDEA-221944 Deadlock on opening second project" and support preloading for proje...
[idea/community.git] / platform / platform-impl / src / com / intellij / openapi / fileEditor / ex / IdeDocumentHistory.java
1 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.openapi.fileEditor.ex;
3
4 import com.intellij.openapi.fileEditor.impl.IdeDocumentHistoryImpl;
5 import com.intellij.openapi.project.Project;
6 import com.intellij.openapi.vfs.VirtualFile;
7 import com.intellij.util.io.PersistentHashMap;
8 import org.jetbrains.annotations.NotNull;
9
10 import java.util.List;
11
12 public abstract class IdeDocumentHistory {
13   public static IdeDocumentHistory getInstance(Project project) {
14     return project.getService(IdeDocumentHistory.class);
15   }
16
17   public abstract void includeCurrentCommandAsNavigation();
18   public abstract void setCurrentCommandHasMoves();
19   public abstract void includeCurrentPlaceAsChangePlace();
20   public abstract void clearHistory();
21
22   public abstract void back();
23   public abstract void forward();
24
25   public abstract boolean isBackAvailable();
26   public abstract boolean isForwardAvailable();
27
28   public abstract void navigatePreviousChange();
29   public abstract void navigateNextChange();
30   public abstract boolean isNavigatePreviousChangeAvailable();
31   public abstract boolean isNavigateNextChangeAvailable();
32
33   public abstract VirtualFile[] getChangedFiles();
34   public abstract PersistentHashMap<String, Long> getRecentFilesTimestamps();
35
36   public abstract List<IdeDocumentHistoryImpl.PlaceInfo> getChangePlaces();
37   public abstract List<IdeDocumentHistoryImpl.PlaceInfo> getBackPlaces();
38
39   public abstract void removeChangePlace(@NotNull IdeDocumentHistoryImpl.PlaceInfo placeInfo);
40   public abstract void removeBackPlace(@NotNull IdeDocumentHistoryImpl.PlaceInfo placeInfo);
41
42   public abstract void gotoPlaceInfo(@NotNull IdeDocumentHistoryImpl.PlaceInfo info);
43 }