forked from bazelbuild/intellij
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BaseSdkCompat.java
75 lines (65 loc) · 3.05 KB
/
BaseSdkCompat.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package com.google.idea.sdkcompat.general;
import com.intellij.ide.impl.OpenProjectTask;
import com.intellij.ide.impl.ProjectUtil;
import com.intellij.openapi.fileChooser.ex.FileLookup;
import com.intellij.openapi.fileChooser.ex.LocalFsFinder;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.refactoring.rename.RenamePsiElementProcessor;
import com.intellij.refactoring.rename.RenamePsiElementProcessorBase;
import com.intellij.util.Restarter;
import com.intellij.util.indexing.diagnostic.dto.JsonDuration;
import com.intellij.util.indexing.diagnostic.dto.JsonFileProviderIndexStatistics;
import com.intellij.util.indexing.roots.kind.LibraryOrigin;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import javax.annotation.Nullable;
/** Provides SDK compatibility shims for base plugin API classes, available to all IDEs. */
public final class BaseSdkCompat {
private BaseSdkCompat() {}
/** #api213: inline this method */
@Nullable
public static String getIdeRestarterPath() {
Path startFilePath = Restarter.getIdeStarter();
return startFilePath == null ? null : startFilePath.toString();
}
/** #api213: inline into IndexingLogger */
public static JsonDuration getTotalIndexingTime(
JsonFileProviderIndexStatistics providerStatisticInput) {
return providerStatisticInput.getTotalIndexingVisibleTime();
}
/** #api213: inline this method. */
public static String getLibraryNameFromLibraryOrigin(LibraryOrigin libraryOrigin) {
// TODO(b/230430213): adapt getLibraryNameFromLibraryOrigin to work in 221
return "";
}
/** #api213: Inline into KytheRenameProcessor. */
public static RenamePsiElementProcessor[] renamePsiElementProcessorsList() {
ArrayList<RenamePsiElementProcessor> result = new ArrayList<>();
for (RenamePsiElementProcessorBase processor :
RenamePsiElementProcessor.EP_NAME.getExtensions()) {
if (processor instanceof RenamePsiElementProcessor) {
result.add((RenamePsiElementProcessor) processor);
}
}
return result.toArray(new RenamePsiElementProcessor[0]);
}
/** #api213: Inline into WorkspaceFileTextField . */
public static LocalFsFinder.VfsFile getVfsFile(VirtualFile file) {
return new LocalFsFinder.VfsFile(file);
}
/** #api213: Inline into WorkspaceFileTextField . */
public static FileLookup.LookupFile getIoFile(Path path) {
return new LocalFsFinder.IoFile(path);
}
/** #api213: Inline into BlazeProjectCreator. */
public static OpenProjectTask createOpenProjectTask(Project project) {
return OpenProjectTask.build().withProject(project);
}
/** #api213 interface is different in 221, inline when 213 support is dropped*/
public static Project openProject(VirtualFile projectSubdirectory, Project projectToClose, boolean forceOpenInNewFrame) {
OpenProjectTask options = OpenProjectTask.build().withForceOpenInNewFrame(forceOpenInNewFrame).withProjectToClose(projectToClose);
return ProjectUtil.openProject(Paths.get(projectSubdirectory.getPath()),options);
}
}