From 6a24d0cf6df6210256fddf3a4d50731bb5993662 Mon Sep 17 00:00:00 2001 From: pTalanov Date: Tue, 22 May 2012 17:20:50 +0400 Subject: [PATCH] Package .js library file into plugin --- build.xml | 1 + .../src/org/jetbrains/jet/utils/PathUtil.java | 7 ++++- .../jet/plugin/quickfix/JsModuleSetUp.java | 30 ++++++++++++------- js/js.translator/testFiles/kotlin_lib.js | 3 +- 4 files changed, 28 insertions(+), 13 deletions(-) diff --git a/build.xml b/build.xml index 456b4189b0d..17a577f9eef 100644 --- a/build.xml +++ b/build.xml @@ -141,6 +141,7 @@ + diff --git a/compiler/util/src/org/jetbrains/jet/utils/PathUtil.java b/compiler/util/src/org/jetbrains/jet/utils/PathUtil.java index 887be5eb40d..1c873338aaf 100644 --- a/compiler/util/src/org/jetbrains/jet/utils/PathUtil.java +++ b/compiler/util/src/org/jetbrains/jet/utils/PathUtil.java @@ -33,6 +33,7 @@ import java.util.List; public class PathUtil { public static String JS_LIB_JAR_NAME = "kotlin-jslib.jar"; + public static String JS_LIB_JS_NAME = "kotlinLib.js"; private PathUtil() {} @@ -72,9 +73,13 @@ public class PathUtil { return getFilePackedIntoLib("kotlin-runtime.jar"); } + @Nullable + public static File getDefaultJsLibJsPath() { + return getFilePackedIntoLib(JS_LIB_JS_NAME); + } @Nullable - public static File getDefaultJsLibPath() { + public static File getDefaultJsLibJarPath() { return getFilePackedIntoLib(JS_LIB_JAR_NAME); } diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/JsModuleSetUp.java b/idea/src/org/jetbrains/jet/plugin/quickfix/JsModuleSetUp.java index 288b75ca6c9..af00cbaf568 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/JsModuleSetUp.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/JsModuleSetUp.java @@ -32,6 +32,8 @@ import org.jetbrains.jet.utils.PathUtil; import java.io.File; import java.io.IOException; +import java.util.Arrays; +import java.util.List; import static org.jetbrains.jet.plugin.k2jsrun.K2JSRunnerUtils.copyFileToDir; @@ -49,19 +51,13 @@ public final class JsModuleSetUp { return; } - File jsLibPath = PathUtil.getDefaultJsLibPath(); - if (jsLibPath == null) { - notifyFailure("JavaScript library not found. Make sure plugin is installed properly."); - return; - } - File rootDir = getRootDir(project); if (!rootDir.isDirectory()) { notifyFailure("Internal error: Broken content root."); return; } - if (!copyJsLib(jsLibPath, rootDir)) return; + if (!copyJsLibFiles(rootDir)) return; File file = new File(rootDir, JsModuleDetector.INDICATION_FILE_NAME); if (file.exists()) { @@ -74,8 +70,19 @@ public final class JsModuleSetUp { refreshRootDir(project); } + private static boolean copyJsLibFiles(@NotNull File rootDir) { + File jsLibJarPath = PathUtil.getDefaultJsLibJarPath(); + File jsLibJsPath = PathUtil.getDefaultJsLibJsPath(); + if ((jsLibJarPath == null) || (jsLibJsPath == null)) { + notifyFailure("JavaScript library not found. Make sure plugin is installed properly."); + return false; + } + + return doCopyJsLibFiles(Arrays.asList(jsLibJarPath, jsLibJsPath), rootDir); + } + private static void refreshRootDir(@NotNull Project project) { - getContentRoot(project).refresh(false, false); + getContentRoot(project).refresh(false, true); } private static void createIndicationFile(@NotNull File file) { @@ -87,9 +94,12 @@ public final class JsModuleSetUp { } } - private static boolean copyJsLib(@NotNull File jsLibPath, @NotNull File rootDir) { + private static boolean doCopyJsLibFiles(@NotNull List files, @NotNull File rootDir) { try { - copyFileToDir(jsLibPath, new File(rootDir, "lib")); + File lib = new File(rootDir, "lib"); + for (File file : files) { + copyFileToDir(file, lib); + } } catch (IOException e) { notifyFailure("Failed to copy file: " + e.getMessage()); diff --git a/js/js.translator/testFiles/kotlin_lib.js b/js/js.translator/testFiles/kotlin_lib.js index 67bb8310ef1..af8de4b708f 100644 --- a/js/js.translator/testFiles/kotlin_lib.js +++ b/js/js.translator/testFiles/kotlin_lib.js @@ -353,8 +353,7 @@ var Kotlin; }); - Kotlin.parseInt = - function (str) { + Kotlin.parseInt = function (str) { return parseInt(str, 10); } ;