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.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdDescription;
|
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.idea.project.ProjectStructureUtil;
|
||||||
import org.jetbrains.kotlin.js.JavaScript;
|
import org.jetbrains.kotlin.js.JavaScript;
|
||||||
import org.jetbrains.kotlin.js.resolve.JsPlatform;
|
import org.jetbrains.kotlin.js.resolve.JsPlatform;
|
||||||
@@ -97,7 +97,7 @@ public class KotlinJsModuleConfigurator extends KotlinWithLibraryConfigurator {
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
protected String getOldSourceRootUrl(@NotNull Library library) {
|
protected String getOldSourceRootUrl(@NotNull Library library) {
|
||||||
VirtualFile jsStdLibJar = JSLibraryStdPresentationProvider.getJsStdLibJar(library);
|
VirtualFile jsStdLibJar = LibraryPresentationProviderUtilKt.getJsStdLibJar(library);
|
||||||
return jsStdLibJar != null ? jsStdLibJar.getUrl() : null;
|
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.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.idea.KotlinIcons;
|
import org.jetbrains.kotlin.idea.KotlinIcons;
|
||||||
import org.jetbrains.kotlin.utils.LibraryUtils;
|
|
||||||
import org.jetbrains.kotlin.utils.PathUtil;
|
import org.jetbrains.kotlin.utils.PathUtil;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class JSLibraryStdPresentationProvider extends LibraryPresentationProvider<LibraryVersionProperties> {
|
public class JSLibraryStdPresentationProvider extends LibraryPresentationProvider<LibraryVersionProperties> {
|
||||||
@@ -68,16 +66,4 @@ public class JSLibraryStdPresentationProvider extends LibraryPresentationProvide
|
|||||||
|
|
||||||
return false;
|
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)
|
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? {
|
private fun getRuntimeSrcJar(classesRoots: List<VirtualFile>): VirtualFile? {
|
||||||
return LibraryUtils.getJarFile(classesRoots, PathUtil.KOTLIN_JAVA_RUNTIME_SRC_JAR);
|
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)) {
|
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)) {
|
if (kJsConfigurator.changeOldSourcesPathIfNeeded(library, collector)) {
|
||||||
kJsConfigurator.copySourcesToPathFromLibrary(library, collector)
|
kJsConfigurator.copySourcesToPathFromLibrary(library, collector)
|
||||||
}
|
}
|
||||||
else {
|
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.PathUtil.getLocalFile
|
||||||
import com.intellij.util.text.VersionComparatorUtil
|
import com.intellij.util.text.VersionComparatorUtil
|
||||||
import org.jetbrains.kotlin.idea.KotlinPluginUtil
|
import org.jetbrains.kotlin.idea.KotlinPluginUtil
|
||||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider
|
import org.jetbrains.kotlin.idea.framework.*
|
||||||
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.util.application.runWriteAction
|
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import javax.swing.event.HyperlinkEvent
|
import javax.swing.event.HyperlinkEvent
|
||||||
@@ -138,7 +135,7 @@ private fun suggestDeleteKotlinJsIfNeeded(project: Project, outdatedLibraries: C
|
|||||||
var addNotification = false
|
var addNotification = false
|
||||||
for (library in outdatedLibraries) {
|
for (library in outdatedLibraries) {
|
||||||
if (isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
if (isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
||||||
val jsStdlibJar = JSLibraryStdPresentationProvider.getJsStdLibJar(library)
|
val jsStdlibJar = getJsStdLibJar(library)
|
||||||
assert(jsStdlibJar != null) { "jslibFile should not be null" }
|
assert(jsStdlibJar != null) { "jslibFile should not be null" }
|
||||||
|
|
||||||
if (jsStdlibJar!!.findFileByRelativePath("kotlin.js") == 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.EditorNotifications
|
||||||
import com.intellij.ui.HyperlinkLabel
|
import com.intellij.ui.HyperlinkLabel
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
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 org.jetbrains.kotlin.idea.framework.getRuntimeJar
|
||||||
import java.text.MessageFormat
|
import java.text.MessageFormat
|
||||||
import javax.swing.Icon
|
import javax.swing.Icon
|
||||||
@@ -72,7 +72,7 @@ class UnsupportedAbiVersionNotificationPanelProvider(private val project: Projec
|
|||||||
val kotlinLibraries = findAllUsedLibraries(project).keySet()
|
val kotlinLibraries = findAllUsedLibraries(project).keySet()
|
||||||
val badRuntimeLibraries = kotlinLibraries.filter { library ->
|
val badRuntimeLibraries = kotlinLibraries.filter { library ->
|
||||||
val runtimeJar = getLocalJar(getRuntimeJar(library))
|
val runtimeJar = getLocalJar(getRuntimeJar(library))
|
||||||
val jsLibJar = getLocalJar(JSLibraryStdPresentationProvider.getJsStdLibJar(library))
|
val jsLibJar = getLocalJar(getJsStdLibJar(library))
|
||||||
badRoots.contains(runtimeJar) || badRoots.contains(jsLibJar)
|
badRoots.contains(runtimeJar) || badRoots.contains(jsLibJar)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user