Refresh FS after compilation for js and sourcemap files.

This commit is contained in:
Zalim Bashorov
2013-11-08 12:26:39 +04:00
parent 637c6635bd
commit 1409dd7812
13 changed files with 171 additions and 68 deletions
+1
View File
@@ -16,6 +16,7 @@
<orderEntry type="library" name="idea-full" level="project" />
<orderEntry type="library" name="js-libs" level="project" />
<orderEntry type="module" module-name="util" />
<orderEntry type="module" module-name="backend-common" scope="TEST" />
</component>
</module>
@@ -137,7 +137,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
@NotNull EcmaVersion version,
@NotNull TestConfigFactory configFactory
) throws Exception {
TranslationUtils.translateFiles(project, files, outputFile, mainCallParameters, version, configFactory);
TranslationUtils.translateFiles(project, mainCallParameters, files, outputFile, version, configFactory);
}
@NotNull
@@ -26,6 +26,7 @@ import org.jetbrains.k2js.facade.K2JSTranslator;
import org.jetbrains.k2js.facade.MainCallParameters;
import org.jetbrains.k2js.test.config.TestConfigFactory;
import org.jetbrains.k2js.test.semantics.TranslatorTestCaseBuilder;
import org.jetbrains.k2js.test.utils.TranslationUtils;
import java.io.File;
import java.util.List;
@@ -62,9 +63,9 @@ public final class OutputPrefixPostfixTest extends SingleFileTranslationTest {
@NotNull EcmaVersion version,
@NotNull TestConfigFactory configFactory
) throws Exception {
K2JSTranslator.translateWithMainCallParametersAndSaveToFile(mainCallParameters, createJetFileList(project, files, null),
outputFile, outputPrefixFile, outputPostfixFile,
getConfig(project, version, configFactory));
TranslationUtils.translateFiles(mainCallParameters, createJetFileList(project, files, null),
outputFile, outputPrefixFile, outputPostfixFile,
getConfig(project, version, configFactory));
}
@Override
@@ -20,11 +20,11 @@ import com.intellij.openapi.project.Project;
import junit.framework.Test;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.k2js.config.EcmaVersion;
import org.jetbrains.k2js.facade.K2JSTranslator;
import org.jetbrains.k2js.facade.MainCallParameters;
import org.jetbrains.k2js.test.config.TestConfig;
import org.jetbrains.k2js.test.config.TestConfigFactory;
import org.jetbrains.k2js.test.semantics.TranslatorTestCaseBuilder;
import org.jetbrains.k2js.test.utils.TranslationUtils;
import java.util.List;
@@ -52,9 +52,9 @@ public final class SourcemapTest extends SingleFileTranslationTest {
@NotNull EcmaVersion version,
@NotNull TestConfigFactory configFactory
) throws Exception {
K2JSTranslator.translateWithMainCallParametersAndSaveToFile(mainCallParameters, createJetFileList(project, files, null),
outputFile, null, null,
getConfig(project, version, configFactory));
TranslationUtils.translateFiles(mainCallParameters, createJetFileList(project, files, null),
outputFile, null, null,
getConfig(project, version, configFactory));
}
@NotNull
@@ -23,14 +23,16 @@ import com.intellij.openapi.util.io.FileUtil;
import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.OutputFileCollection;
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
import org.jetbrains.jet.cli.common.output.outputUtils.OutputUtilsPackage;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.k2js.analyze.AnalyzerFacadeForJS;
import org.jetbrains.k2js.config.Config;
import org.jetbrains.k2js.config.EcmaVersion;
import org.jetbrains.k2js.facade.K2JSTranslator;
import org.jetbrains.k2js.facade.MainCallParameters;
import org.jetbrains.k2js.facade.exceptions.TranslationException;
import org.jetbrains.k2js.test.config.TestConfigFactory;
import org.jetbrains.k2js.utils.JetFileUtils;
@@ -39,6 +41,8 @@ import java.io.IOException;
import java.lang.ref.SoftReference;
import java.util.List;
import static org.jetbrains.k2js.facade.K2JSTranslator.translateWithMainCallParameters;
//TODO: use method object
public final class TranslationUtils {
@@ -95,13 +99,30 @@ public final class TranslationUtils {
return configFactory.create(project, version, getLibFilesWithCode(getAllLibFiles(project)), preanalyzedContext);
}
public static void translateFiles(@NotNull Project project, @NotNull List<String> inputFiles,
@NotNull String outputFile,
public static void translateFiles(
@NotNull Project project,
@NotNull MainCallParameters mainCallParameters,
@NotNull EcmaVersion version, TestConfigFactory configFactory) throws Exception {
@NotNull List<String> inputFiles,
@NotNull String outputFile,
@NotNull EcmaVersion version,
@NotNull TestConfigFactory configFactory
) throws Exception {
List<JetFile> jetFiles = createJetFileList(project, inputFiles, null);
K2JSTranslator translator = new K2JSTranslator(getConfig(project, version, configFactory));
FileUtil.writeToFile(new File(outputFile), translator.generateProgramCode(jetFiles, mainCallParameters));
Config config = getConfig(project, version, configFactory);
translateFiles(mainCallParameters, jetFiles, outputFile, null, null, config);
}
public static void translateFiles(
@NotNull MainCallParameters mainCall,
@NotNull List<JetFile> files,
@NotNull String outputPath,
@Nullable File outputPrefixFile,
@Nullable File outputPostfixFile,
@NotNull Config config
) throws TranslationException, IOException {
File outputFile = new File(outputPath);
OutputFileCollection outputFiles = translateWithMainCallParameters(mainCall, files, outputFile, outputPrefixFile, outputPostfixFile, config);
OutputUtilsPackage.writeAllTo(outputFiles, outputFile.getParentFile());
}
@NotNull