From c14a0b3c844f8a85643e73d80cf2a5a6faba623b Mon Sep 17 00:00:00 2001 From: Alex Tkachman Date: Mon, 30 Jul 2012 09:26:30 +0300 Subject: [PATCH] refactoring of script definition api --- .../jetbrains/jet/codegen/ScriptCodegen.java | 12 ++- .../cli/jvm/compiler/JetCoreEnvironment.java | 4 + .../compiler/KotlinToJVMBytecodeCompiler.java | 14 +++- .../jet/config/CommonConfigurationKeys.java | 4 + .../jetbrains/jet/lang/parsing/JetParser.java | 13 +++- .../jet/lang/parsing/JetParserDefinition.java | 25 +------ .../parsing/JetScriptDefinitionProvider.java | 75 +++++++++++++++++++ .../lang/resolve/ScriptHeaderResolver.java | 4 +- compiler/testData/cli/fib.fib.kt | 10 +++ compiler/testData/cli/fib.kt | 10 +++ .../org/jetbrains/jet/cli/jvm/CliTest.java | 55 +++++++++++++- .../jetbrains/jet/codegen/ScriptGenTest.java | 9 ++- idea/src/META-INF/plugin.xml | 3 + 13 files changed, 201 insertions(+), 37 deletions(-) create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetScriptDefinitionProvider.java create mode 100644 compiler/testData/cli/fib.fib.kt create mode 100644 compiler/testData/cli/fib.kt diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java index 4a7eb1d4fb2..f17a599fafd 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.codegen; import com.google.common.collect.Lists; +import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.util.Pair; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.codegen.signature.JvmMethodSignature; @@ -25,6 +26,7 @@ import org.jetbrains.jet.lang.descriptors.ScriptDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.parsing.JetParserDefinition; import org.jetbrains.jet.lang.parsing.JetScriptDefinition; +import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.java.JdkNames; @@ -252,13 +254,19 @@ public class ScriptCodegen { } public static String classNameForScript(JetFile file) { - JetScriptDefinition scriptDefinition = JetParserDefinition.getInstance().findScriptDefinition(file); + JetScriptDefinition scriptDefinition = JetScriptDefinitionProvider.getInstance(file.getProject()).findScriptDefinition(file); String name = file.getName(); - name = name.substring(0, name.length()-scriptDefinition.getExtension().length()); int index = name.lastIndexOf('/'); if(index != -1) name = name.substring(index+1); + if(name.endsWith(scriptDefinition.getExtension())) + name = name.substring(0, name.length()-scriptDefinition.getExtension().length()); + else { + index = name.indexOf('.'); + if(index != -1) + name = name.substring(0,index); + } name = Character.toUpperCase(name.charAt(0)) + name.substring(1); JetNamespaceHeader header = file.getNamespaceHeader(); if(header != null && header.getName().length() > 0) { diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java index 6d9a3243544..06bbafbacde 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java @@ -38,6 +38,7 @@ import org.jetbrains.jet.config.CommonConfigurationKeys; import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.lang.parsing.JetParser; import org.jetbrains.jet.lang.parsing.JetParserDefinition; +import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.java.JetFilesProvider; import org.jetbrains.jet.lang.resolve.java.extAnnotations.CoreAnnotationsProvider; @@ -89,6 +90,7 @@ public class JetCoreEnvironment { projectEnvironment = new JavaCoreProjectEnvironment(parentDisposable, applicationEnvironment); MockProject project = projectEnvironment.getProject(); + project.registerService(JetScriptDefinitionProvider.class, new JetScriptDefinitionProvider()); project.registerService(JetFilesProvider.class, new CliJetFilesProvider(this)); project.registerService(CoreJavaFileManager.class, (CoreJavaFileManager) ServiceManager.getService(project, JavaFileManager.class)); Extensions.getArea(project) @@ -108,6 +110,8 @@ public class JetCoreEnvironment { addSources(path); } + JetScriptDefinitionProvider.getInstance(project).addScriptDefinitions(configuration.getList(CommonConfigurationKeys.SCRIPT_DEFINITIONS_KEY)); + JetStandardLibrary.initialize(project); initialized = true; } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java index 691db01af27..5737728c8f5 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.java @@ -37,6 +37,9 @@ import org.jetbrains.jet.codegen.*; import org.jetbrains.jet.config.CommonConfigurationKeys; import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; +import org.jetbrains.jet.lang.parsing.JetParserDefinition; +import org.jetbrains.jet.lang.parsing.JetScriptDefinition; +import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetPsiUtil; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; @@ -361,24 +364,29 @@ public class KotlinToJVMBytecodeCompiler { public static Class compileScript( ClassLoader parentLoader, String scriptPath, - List scriptParameters) { + @Nullable List scriptParameters, + @Nullable List scriptDefinitions) { final MessageRenderer messageRenderer = MessageRenderer.PLAIN; PrintingMessageCollector messageCollector = new PrintingMessageCollector(System.err, messageRenderer, false); Disposable rootDisposable = CompileEnvironmentUtil.createMockDisposable(); try { CompilerConfiguration compilerConfiguration = new CompilerConfiguration(); compilerConfiguration.addAll(JVMConfigurationKeys.CLASSPATH_KEY, getClasspath(parentLoader)); - compilerConfiguration.addAll(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, Collections.singletonList(CompilerPathUtil.getJdkAnnotationsPath())); + compilerConfiguration.addAll(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, Collections.singletonList( + CompilerPathUtil.getJdkAnnotationsPath())); compilerConfiguration.add(CommonConfigurationKeys.SOURCE_ROOTS_KEY, scriptPath); + compilerConfiguration.addAll(CommonConfigurationKeys.SCRIPT_DEFINITIONS_KEY, + scriptDefinitions != null ? scriptDefinitions : Collections.emptyList()); JetCoreEnvironment environment = JetCoreEnvironment.createCoreEnvironmentForJVM(rootDisposable, compilerConfiguration); K2JVMCompileEnvironmentConfiguration configuration = new K2JVMCompileEnvironmentConfiguration( - environment, messageCollector, scriptParameters, + environment, messageCollector, scriptParameters != null ? scriptParameters : Collections.emptyList(), BuiltinsScopeExtensionMode.ALL, false, BuiltinToJavaTypesMapping.ENABLED); try { + JetScriptDefinitionProvider.getInstance(environment.getProject()).markFileAsScript(environment.getSourceFiles().get(0)); return compileScript(configuration, parentLoader); } catch (CompilationException e) { diff --git a/compiler/frontend/src/org/jetbrains/jet/config/CommonConfigurationKeys.java b/compiler/frontend/src/org/jetbrains/jet/config/CommonConfigurationKeys.java index 8b33f30000e..1582c082aa0 100644 --- a/compiler/frontend/src/org/jetbrains/jet/config/CommonConfigurationKeys.java +++ b/compiler/frontend/src/org/jetbrains/jet/config/CommonConfigurationKeys.java @@ -17,6 +17,8 @@ package org.jetbrains.jet.config; import com.intellij.openapi.util.Key; +import org.jetbrains.jet.lang.parsing.JetScriptDefinition; +import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; import java.io.File; import java.util.List; @@ -30,4 +32,6 @@ public class CommonConfigurationKeys { } public static final Key> SOURCE_ROOTS_KEY = Key.create("source roots"); + + public static final Key> SCRIPT_DEFINITIONS_KEY = Key.create("script definitions"); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParser.java b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParser.java index 4c1c0b59827..53d3e306db0 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParser.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParser.java @@ -22,15 +22,20 @@ package org.jetbrains.jet.lang.parsing; import com.intellij.lang.ASTNode; import com.intellij.lang.PsiBuilder; import com.intellij.lang.PsiParser; +import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.project.Project; import com.intellij.psi.PsiFile; +import com.intellij.psi.impl.file.impl.JavaFileManager; import com.intellij.psi.tree.IElementType; import org.jetbrains.annotations.NotNull; public class JetParser implements PsiParser { - private JetParserDefinition parserDefinition; - public JetParser(JetParserDefinition parserDefinition) { - this.parserDefinition = parserDefinition; + public static final String STD_SCRIPT_EXT = "." + JetParserDefinition.KTSCRIPT_FILE_SUFFIX; + private final JetScriptDefinitionProvider scriptDefinitionProvider; + + public JetParser(Project project) { + scriptDefinitionProvider = JetScriptDefinitionProvider.getInstance(project); } @Override @@ -43,7 +48,7 @@ public class JetParser implements PsiParser { @NotNull public ASTNode parse(IElementType iElementType, PsiBuilder psiBuilder, PsiFile psiFile) { JetParsing jetParsing = JetParsing.createForTopLevel(new SemanticWhitespaceAwarePsiBuilderImpl(psiBuilder)); - if (parserDefinition.isScript(psiFile)) { + if (scriptDefinitionProvider != null && scriptDefinitionProvider.isScript(psiFile) || psiFile.getName().endsWith(STD_SCRIPT_EXT)) { jetParsing.parseScript(); } else { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParserDefinition.java b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParserDefinition.java index 0f952862faa..59c4fc18b71 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParserDefinition.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParserDefinition.java @@ -50,13 +50,7 @@ import java.util.Map; public class JetParserDefinition implements ParserDefinition { public static final String KTSCRIPT_FILE_SUFFIX = "ktscript"; - private HashMap scripts = new HashMap(); - public JetParserDefinition() { - // .ktscript will take parameters explicitly specified on compilation - JetScriptDefinition standardScript = new JetScriptDefinition(".ktscript", Collections.emptyList()); - addScriptDefinition(standardScript); - //todo: ApplicationManager.getApplication() is null during JetParsingTest setting up /*if (!ApplicationManager.getApplication().isCommandLine()) { @@ -76,7 +70,7 @@ public class JetParserDefinition implements ParserDefinition { @Override public PsiParser createParser(Project project) { - return new JetParser(this); + return new JetParser(project); } @Override @@ -121,21 +115,4 @@ public class JetParserDefinition implements ParserDefinition { public SpaceRequirements spaceExistanceTypeBetweenTokens(ASTNode astNode, ASTNode astNode1) { return SpaceRequirements.MAY; } - - public JetScriptDefinition findScriptDefinition(PsiFile psiFile) { - String name = psiFile.getName(); - for (Map.Entry e : scripts.entrySet()) { - if(name.endsWith(e.getKey())) - return e.getValue(); - } - return null; - } - - public boolean isScript(PsiFile psiFile) { - return findScriptDefinition(psiFile) != null; - } - - public void addScriptDefinition(@NotNull JetScriptDefinition scriptDefinition) { - scripts.put(scriptDefinition.getExtension(), scriptDefinition); - } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetScriptDefinitionProvider.java b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetScriptDefinitionProvider.java new file mode 100644 index 00000000000..876b1eedaa9 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetScriptDefinitionProvider.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.lang.parsing; + +import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.project.Project; +import com.intellij.psi.PsiFile; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.psi.JetFile; +import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; + +import java.util.*; + +public class JetScriptDefinitionProvider { + private final HashMap scripts = new HashMap(); + private final HashSet scriptsFiles = new HashSet(); + + private static JetScriptDefinition standardScript = new JetScriptDefinition(".ktscript", Collections.emptyList()); + + public JetScriptDefinitionProvider() { + // .ktscript will take analyzer parameters explicitly specified on compilation + addScriptDefinition(standardScript); + } + + public void markFileAsScript(JetFile file) { + scriptsFiles.add(file); + } + + public static JetScriptDefinitionProvider getInstance(Project project) { + return ServiceManager.getService(project, JetScriptDefinitionProvider.class); + } + + public JetScriptDefinition findScriptDefinition(PsiFile psiFile) { + boolean force = scriptsFiles.contains(psiFile); + + String name = psiFile.getName(); + for (Map.Entry e : scripts.entrySet()) { + if (name.endsWith(e.getKey())) { + return e.getValue(); + } + } + if(force) + return standardScript; + + return null; + } + + public boolean isScript(PsiFile psiFile) { + return findScriptDefinition(psiFile) != null; + } + + public void addScriptDefinition(@NotNull JetScriptDefinition scriptDefinition) { + scripts.put(scriptDefinition.getExtension(), scriptDefinition); + } + + public void addScriptDefinitions(List definitions) { + for (JetScriptDefinition definition : definitions) { + addScriptDefinition(definition); + } + } +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java index 01543c2ad08..3bf48f0c777 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ScriptHeaderResolver.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.lang.resolve; import com.google.common.collect.Lists; +import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.util.Key; import com.intellij.psi.util.PsiUtil; import org.jetbrains.annotations.NotNull; @@ -24,6 +25,7 @@ import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.parsing.JetParserDefinition; import org.jetbrains.jet.lang.parsing.JetScriptDefinition; +import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetPsiUtil; import org.jetbrains.jet.lang.psi.JetScript; @@ -154,7 +156,7 @@ public class ScriptHeaderResolver { scope.setImplicitReceiver(descriptor.getImplicitReceiver()); JetFile file = (JetFile) declaration.getContainingFile(); - JetScriptDefinition scriptDefinition = JetParserDefinition.getInstance().findScriptDefinition(file); + JetScriptDefinition scriptDefinition = JetScriptDefinitionProvider.getInstance(file.getProject()).findScriptDefinition(file); int index = 0; List scriptParameters = !scriptDefinition.getScriptParameters().isEmpty() diff --git a/compiler/testData/cli/fib.fib.kt b/compiler/testData/cli/fib.fib.kt new file mode 100644 index 00000000000..5c714e673d1 --- /dev/null +++ b/compiler/testData/cli/fib.fib.kt @@ -0,0 +1,10 @@ +// this script expected parameter num : Int + +fun fib(n: Int): Int { + val v = if(n < 2) 1 else fib(n-1) + fib(n-2) + System.out.println("fib($n)=$v") + return v +} + +System.out.println("num: $num") +val result = fib(num) diff --git a/compiler/testData/cli/fib.kt b/compiler/testData/cli/fib.kt new file mode 100644 index 00000000000..5c714e673d1 --- /dev/null +++ b/compiler/testData/cli/fib.kt @@ -0,0 +1,10 @@ +// this script expected parameter num : Int + +fun fib(n: Int): Int { + val v = if(n < 2) 1 else fib(n-1) + fib(n-2) + System.out.println("fib($n)=$v") + return v +} + +System.out.println("num: $num") +val result = fib(num) diff --git a/compiler/tests/org/jetbrains/jet/cli/jvm/CliTest.java b/compiler/tests/org/jetbrains/jet/cli/jvm/CliTest.java index 2817a9a69db..d314e30877c 100644 --- a/compiler/tests/org/jetbrains/jet/cli/jvm/CliTest.java +++ b/compiler/tests/org/jetbrains/jet/cli/jvm/CliTest.java @@ -22,6 +22,7 @@ import junit.framework.Assert; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.cli.common.ExitCode; import org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler; +import org.jetbrains.jet.lang.parsing.JetScriptDefinition; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.ref.JetTypeName; @@ -37,6 +38,7 @@ import java.io.File; import java.io.PrintStream; import java.io.StringReader; import java.lang.reflect.InvocationTargetException; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; @@ -132,7 +134,58 @@ public class CliTest { AnalyzerScriptParameter parameter = new AnalyzerScriptParameter(Name.identifier("num"), JetTypeName.parse("jet.Int")); scriptParameters.add(parameter); Class aClass = KotlinToJVMBytecodeCompiler - .compileScript(getClass().getClassLoader(), "compiler/testData/cli/fib.ktscript", scriptParameters); + .compileScript(getClass().getClassLoader(), "compiler/testData/cli/fib.ktscript", scriptParameters, null); + Assert.assertNotNull(aClass); + + try { + aClass.getConstructor(int.class).newInstance(4); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + + @Test + public void testScriptStandardExt() { + LinkedList scriptParameters = new LinkedList(); + AnalyzerScriptParameter parameter = new AnalyzerScriptParameter(Name.identifier("num"), JetTypeName.parse("jet.Int")); + scriptParameters.add(parameter); + Class aClass = KotlinToJVMBytecodeCompiler + .compileScript(getClass().getClassLoader(), "compiler/testData/cli/fib.kt", scriptParameters, null); + Assert.assertNotNull(aClass); + + try { + aClass.getConstructor(int.class).newInstance(4); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + + @Test + public void testScriptWithoutScriptDefinition() { + LinkedList scriptParameters = new LinkedList(); + AnalyzerScriptParameter parameter = new AnalyzerScriptParameter(Name.identifier("num"), JetTypeName.parse("jet.Int")); + scriptParameters.add(parameter); + Class aClass = KotlinToJVMBytecodeCompiler + .compileScript(getClass().getClassLoader(), "compiler/testData/cli/fib.fib.kt", scriptParameters, null); + Assert.assertNotNull(aClass); + + try { + aClass.getConstructor(int.class).newInstance(4); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } + + @Test + public void testScriptWithScriptDefinition() { + LinkedList scriptParameters = new LinkedList(); + AnalyzerScriptParameter parameter = new AnalyzerScriptParameter(Name.identifier("num"), JetTypeName.parse("jet.Int")); + scriptParameters.add(parameter); + Class aClass = KotlinToJVMBytecodeCompiler + .compileScript(getClass().getClassLoader(), "compiler/testData/cli/fib.fib.kt", null, Arrays.asList(new JetScriptDefinition(".fib.kt",scriptParameters))); Assert.assertNotNull(aClass); try { diff --git a/compiler/tests/org/jetbrains/jet/codegen/ScriptGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/ScriptGenTest.java index e9615b7f6d8..ff0dff245c1 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/ScriptGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/ScriptGenTest.java @@ -16,9 +16,11 @@ package org.jetbrains.jet.codegen; +import com.intellij.openapi.components.ServiceManager; import org.jetbrains.jet.ConfigurationKind; import org.jetbrains.jet.lang.parsing.JetParserDefinition; import org.jetbrains.jet.lang.parsing.JetScriptDefinition; +import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; import java.lang.reflect.Constructor; @@ -32,6 +34,9 @@ import java.util.List; */ public class ScriptGenTest extends CodegenTestCase { + public static final JetScriptDefinition FIB_SCRIPT_DEFINITION = + new JetScriptDefinition(".lang.kt", new AnalyzerScriptParameter("num", "jet.Int")); + @Override protected void setUp() throws Exception { super.setUp(); @@ -94,7 +99,7 @@ public class ScriptGenTest extends CodegenTestCase { } public void testLanguage() { - JetParserDefinition.getInstance().addScriptDefinition(new JetScriptDefinition(".lang.kt", new AnalyzerScriptParameter("num","jet.Int"))); + JetScriptDefinitionProvider.getInstance(myEnvironment.getProject()).addScriptDefinition(FIB_SCRIPT_DEFINITION); loadFile("script/fib.lang.kt"); final Class aClass = loadClass("Fib", generateClassesInFile()); try { @@ -109,7 +114,7 @@ public class ScriptGenTest extends CodegenTestCase { } public void testLanguageWithPackage() { - JetParserDefinition.getInstance().addScriptDefinition(new JetScriptDefinition(".lang.kt", new AnalyzerScriptParameter("num","jet.Int"))); + JetScriptDefinitionProvider.getInstance(myEnvironment.getProject()).addScriptDefinition(FIB_SCRIPT_DEFINITION); loadFile("script/fibWithPackage.lang.kt"); final Class aClass = loadClass("test.FibWithPackage", generateClassesInFile()); try { diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 0dffbb202bf..ffb9ca5dbfc 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -77,6 +77,9 @@ + +