Refactoring: extract methods from JSLibraryStdPresentationProvider
This commit is contained in:
@@ -22,7 +22,7 @@ import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdDescription;
|
||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider;
|
||||
import org.jetbrains.kotlin.idea.framework.LibraryPresentationProviderUtilKt;
|
||||
import org.jetbrains.kotlin.idea.project.ProjectStructureUtil;
|
||||
import org.jetbrains.kotlin.js.JavaScript;
|
||||
import org.jetbrains.kotlin.js.resolve.JsPlatform;
|
||||
@@ -97,7 +97,7 @@ public class KotlinJsModuleConfigurator extends KotlinWithLibraryConfigurator {
|
||||
@Nullable
|
||||
@Override
|
||||
protected String getOldSourceRootUrl(@NotNull Library library) {
|
||||
VirtualFile jsStdLibJar = JSLibraryStdPresentationProvider.getJsStdLibJar(library);
|
||||
VirtualFile jsStdLibJar = LibraryPresentationProviderUtilKt.getJsStdLibJar(library);
|
||||
return jsStdLibJar != null ? jsStdLibJar.getUrl() : null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,11 +25,9 @@ import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.idea.KotlinIcons;
|
||||
import org.jetbrains.kotlin.utils.LibraryUtils;
|
||||
import org.jetbrains.kotlin.utils.PathUtil;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class JSLibraryStdPresentationProvider extends LibraryPresentationProvider<LibraryVersionProperties> {
|
||||
@@ -68,16 +66,4 @@ public class JSLibraryStdPresentationProvider extends LibraryPresentationProvide
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static VirtualFile getJsStdLibJar(@NotNull Library library) {
|
||||
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.JS_LIB_JAR_NAME);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static VirtualFile getJsStdLibSrcJar(@NotNull Library library) {
|
||||
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.SOURCES)), PathUtil.JS_LIB_SRC_JAR_NAME);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,16 @@ fun getTestJar(library: Library): VirtualFile? {
|
||||
return LibraryUtils.getJarFile(Arrays.asList(*library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_TEST_JAR)
|
||||
}
|
||||
|
||||
fun getJsStdLibJar(library: Library): VirtualFile? {
|
||||
if (isExternalLibrary(library)) return null
|
||||
return LibraryUtils.getJarFile(Arrays.asList(*library.getFiles(OrderRootType.CLASSES)), PathUtil.JS_LIB_JAR_NAME)
|
||||
}
|
||||
|
||||
fun getJsStdLibSrcJar(library: Library): VirtualFile? {
|
||||
if (isExternalLibrary(library)) return null
|
||||
return LibraryUtils.getJarFile(Arrays.asList(*library.getFiles(OrderRootType.SOURCES)), PathUtil.JS_LIB_SRC_JAR_NAME)
|
||||
}
|
||||
|
||||
private fun getRuntimeSrcJar(classesRoots: List<VirtualFile>): VirtualFile? {
|
||||
return LibraryUtils.getJarFile(classesRoots, PathUtil.KOTLIN_JAVA_RUNTIME_SRC_JAR);
|
||||
}
|
||||
|
||||
@@ -86,13 +86,13 @@ fun updateLibraries(project: Project, libraries: Collection<Library>) {
|
||||
}
|
||||
}
|
||||
else if (isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
||||
updateJar(project, JSLibraryStdPresentationProvider.getJsStdLibJar(library), LibraryJarDescriptor.JS_STDLIB_JAR)
|
||||
updateJar(project, getJsStdLibJar(library), LibraryJarDescriptor.JS_STDLIB_JAR)
|
||||
|
||||
if (kJsConfigurator.changeOldSourcesPathIfNeeded(library, collector)) {
|
||||
kJsConfigurator.copySourcesToPathFromLibrary(library, collector)
|
||||
}
|
||||
else {
|
||||
updateJar(project, JSLibraryStdPresentationProvider.getJsStdLibSrcJar(library), LibraryJarDescriptor.JS_STDLIB_SRC_JAR)
|
||||
updateJar(project, getJsStdLibSrcJar(library), LibraryJarDescriptor.JS_STDLIB_SRC_JAR)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,10 +28,7 @@ import com.intellij.openapi.roots.libraries.Library
|
||||
import com.intellij.util.PathUtil.getLocalFile
|
||||
import com.intellij.util.text.VersionComparatorUtil
|
||||
import org.jetbrains.kotlin.idea.KotlinPluginUtil
|
||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider
|
||||
import org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider
|
||||
import org.jetbrains.kotlin.idea.framework.getLibraryProperties
|
||||
import org.jetbrains.kotlin.idea.framework.isDetected
|
||||
import org.jetbrains.kotlin.idea.framework.*
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
import java.io.IOException
|
||||
import javax.swing.event.HyperlinkEvent
|
||||
@@ -138,7 +135,7 @@ private fun suggestDeleteKotlinJsIfNeeded(project: Project, outdatedLibraries: C
|
||||
var addNotification = false
|
||||
for (library in outdatedLibraries) {
|
||||
if (isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
||||
val jsStdlibJar = JSLibraryStdPresentationProvider.getJsStdLibJar(library)
|
||||
val jsStdlibJar = getJsStdLibJar(library)
|
||||
assert(jsStdlibJar != null) { "jslibFile should not be null" }
|
||||
|
||||
if (jsStdlibJar!!.findFileByRelativePath("kotlin.js") == null) {
|
||||
|
||||
+2
-2
@@ -42,7 +42,7 @@ import com.intellij.ui.EditorNotificationPanel
|
||||
import com.intellij.ui.EditorNotifications
|
||||
import com.intellij.ui.HyperlinkLabel
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider
|
||||
import org.jetbrains.kotlin.idea.framework.getJsStdLibJar
|
||||
import org.jetbrains.kotlin.idea.framework.getRuntimeJar
|
||||
import java.text.MessageFormat
|
||||
import javax.swing.Icon
|
||||
@@ -72,7 +72,7 @@ class UnsupportedAbiVersionNotificationPanelProvider(private val project: Projec
|
||||
val kotlinLibraries = findAllUsedLibraries(project).keySet()
|
||||
val badRuntimeLibraries = kotlinLibraries.filter { library ->
|
||||
val runtimeJar = getLocalJar(getRuntimeJar(library))
|
||||
val jsLibJar = getLocalJar(JSLibraryStdPresentationProvider.getJsStdLibJar(library))
|
||||
val jsLibJar = getLocalJar(getJsStdLibJar(library))
|
||||
badRoots.contains(runtimeJar) || badRoots.contains(jsLibJar)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user