summaryrefslogtreecommitdiff
path: root/plugins/groovy/src/org
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/groovy/src/org')
-rw-r--r--plugins/groovy/src/org/intellij/plugins/intelliLang/inject/groovy/GrLanguageReferenceProvider.java2
-rw-r--r--plugins/groovy/src/org/intellij/plugins/intelliLang/inject/groovy/PatternEditorContextMembersProvider.java2
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/GroovyGenerationInfo.java4
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/CreateFieldFromUsageFix.java4
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/CreateMethodFromUsageFix.java4
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GrCreateFromUsageBaseFix.java4
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/navigation/actions/GroovyGotoSuperHandler.java8
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/GroovyInspectionSuppressor.java34
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/ClashingTraitMethodsInspection.java2
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/spellchecker/GroovySpellcheckingStrategy.java16
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/config/ConfigureGroovyLibraryNotificationProvider.java6
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyShellCompletionContributor.java2
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyPositionManager.java14
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/dgm/DGMReferenceContributor.java4
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/gant/GantScriptType.java14
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/grape/GrabDependencies.java3
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/CompleteReferenceExpression.java16
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GdslClosureCompleter.java4
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GrMethodMergingContributor.java3
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyCompletionContributor.java2
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyNoVariantsDelegator.java2
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovySmartCompletionContributor.java2
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcCliCommandExecutor.java46
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcCommandExecutor.java69
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.form2
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.java18
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTarget.java8
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTargetDialog.form2
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTargetDialog.java16
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/util/ModuleCellRenderer.java39
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java7
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameAliasImportedFieldProcessor.java40
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameGrFieldProcessor.java107
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/runner/DefaultGroovyScriptRunner.java5
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.form2
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.java44
-rw-r--r--plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyScriptRunner.java5
37 files changed, 319 insertions, 243 deletions
diff --git a/plugins/groovy/src/org/intellij/plugins/intelliLang/inject/groovy/GrLanguageReferenceProvider.java b/plugins/groovy/src/org/intellij/plugins/intelliLang/inject/groovy/GrLanguageReferenceProvider.java
index 401f20edc06e..f4094b2d665f 100644
--- a/plugins/groovy/src/org/intellij/plugins/intelliLang/inject/groovy/GrLanguageReferenceProvider.java
+++ b/plugins/groovy/src/org/intellij/plugins/intelliLang/inject/groovy/GrLanguageReferenceProvider.java
@@ -32,7 +32,7 @@ import org.jetbrains.plugins.groovy.lang.psi.patterns.GroovyPatterns;
*/
public class GrLanguageReferenceProvider extends PsiReferenceContributor {
@Override
- public void registerReferenceProviders(PsiReferenceRegistrar registrar) {
+ public void registerReferenceProviders(@NotNull PsiReferenceRegistrar registrar) {
final Configuration configuration = Configuration.getInstance();
registrar.registerReferenceProvider(
GroovyPatterns.groovyLiteralExpression().annotationParam(StandardPatterns.string().with(isLanguageAnnotation(configuration)), "value").and(
diff --git a/plugins/groovy/src/org/intellij/plugins/intelliLang/inject/groovy/PatternEditorContextMembersProvider.java b/plugins/groovy/src/org/intellij/plugins/intelliLang/inject/groovy/PatternEditorContextMembersProvider.java
index 0e9a216c441b..e23254da8d1a 100644
--- a/plugins/groovy/src/org/intellij/plugins/intelliLang/inject/groovy/PatternEditorContextMembersProvider.java
+++ b/plugins/groovy/src/org/intellij/plugins/intelliLang/inject/groovy/PatternEditorContextMembersProvider.java
@@ -146,7 +146,7 @@ public class PatternEditorContextMembersProvider extends NonCodeMembersContribut
GlobalSearchScope.getScopeRestrictedByFileTypes(GlobalSearchScope.allScope(project), StdFileTypes.XML);
final TextOccurenceProcessor occurenceProcessor = new TextOccurenceProcessor() {
@Override
- public boolean execute(PsiElement element, int offsetInElement) {
+ public boolean execute(@NotNull PsiElement element, int offsetInElement) {
final XmlTag tag = PsiTreeUtil.getParentOfType(element, XmlTag.class);
final String className = tag == null ? null : tag.getAttributeValue("className");
if (className != null && tag.getLocalName().endsWith("patternClass")) {
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/GroovyGenerationInfo.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/GroovyGenerationInfo.java
index 068e96dd4cd0..00068d82237d 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/GroovyGenerationInfo.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/GroovyGenerationInfo.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2014 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.
@@ -71,7 +71,7 @@ public class GroovyGenerationInfo<T extends PsiMember> extends PsiGenerationInfo
final T member = getPsiMember();
if (member == null) return;
- LOG.assertTrue(member instanceof GroovyPsiElement);
+ LOG.assertTrue(member instanceof GroovyPsiElement, member);
final GroovyPsiElementFactory factory = GroovyPsiElementFactory.getInstance(member.getProject());
final PsiElement prev = member.getPrevSibling();
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/CreateFieldFromUsageFix.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/CreateFieldFromUsageFix.java
index 7f4f40fe94aa..ef19899ba5df 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/CreateFieldFromUsageFix.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/CreateFieldFromUsageFix.java
@@ -25,7 +25,7 @@ import org.jetbrains.plugins.groovy.GroovyBundle;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression;
import org.jetbrains.plugins.groovy.lang.psi.expectedTypes.GroovyExpectedTypesProvider;
import org.jetbrains.plugins.groovy.lang.psi.expectedTypes.TypeConstraint;
-import org.jetbrains.plugins.groovy.lang.psi.util.StaticChecker;
+import org.jetbrains.plugins.groovy.lang.psi.util.GrStaticChecker;
/**
* @author ven
@@ -49,7 +49,7 @@ public class CreateFieldFromUsageFix extends GrCreateFromUsageBaseFix {
private String[] generateModifiers(@NotNull PsiClass targetClass) {
final GrReferenceExpression myRefExpression = getRefExpr();
- if (myRefExpression != null && StaticChecker.isInStaticContext(myRefExpression, targetClass)) {
+ if (myRefExpression != null && GrStaticChecker.isInStaticContext(myRefExpression, targetClass)) {
return new String[]{PsiModifier.STATIC};
}
return ArrayUtil.EMPTY_STRING_ARRAY;
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/CreateMethodFromUsageFix.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/CreateMethodFromUsageFix.java
index a1f356cdf4bb..881e823285c9 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/CreateMethodFromUsageFix.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/CreateMethodFromUsageFix.java
@@ -33,9 +33,9 @@ import org.jetbrains.plugins.groovy.lang.psi.expectedTypes.SupertypeConstraint;
import org.jetbrains.plugins.groovy.lang.psi.expectedTypes.TypeConstraint;
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GroovyScriptClass;
+import org.jetbrains.plugins.groovy.lang.psi.util.GrStaticChecker;
import org.jetbrains.plugins.groovy.lang.psi.util.GrTraitUtil;
import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil;
-import org.jetbrains.plugins.groovy.lang.psi.util.StaticChecker;
import org.jetbrains.plugins.groovy.template.expressions.ChooseTypeExpression;
/**
@@ -60,7 +60,7 @@ public class CreateMethodFromUsageFix extends GrCreateFromUsageBaseFix implement
PsiMethod method = factory.createMethod(getMethodName(), PsiType.VOID);
final GrReferenceExpression ref = getRefExpr();
- if (StaticChecker.isInStaticContext(ref, targetClass)) {
+ if (GrStaticChecker.isInStaticContext(ref, targetClass)) {
method.getModifierList().setModifierProperty(PsiModifier.STATIC, true);
}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GrCreateFromUsageBaseFix.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GrCreateFromUsageBaseFix.java
index 2fd5dc753988..16100550885d 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GrCreateFromUsageBaseFix.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GrCreateFromUsageBaseFix.java
@@ -31,7 +31,7 @@ import org.jetbrains.plugins.groovy.GroovyBundle;
import org.jetbrains.plugins.groovy.intentions.base.Intention;
import org.jetbrains.plugins.groovy.intentions.base.PsiElementPredicate;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression;
-import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.GrReferenceResolveUtil;
+import org.jetbrains.plugins.groovy.lang.psi.util.GrStaticChecker;
import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil;
import javax.swing.*;
@@ -139,7 +139,7 @@ public abstract class GrCreateFromUsageBaseFix extends Intention {
private List<PsiClass> getTargetClasses() {
final GrReferenceExpression ref = getRefExpr();
- final boolean compileStatic = PsiUtil.isCompileStatic(ref) || GrReferenceResolveUtil.isPropertyAccessInStaticMethod(ref);
+ final boolean compileStatic = PsiUtil.isCompileStatic(ref) || GrStaticChecker.isPropertyAccessInStaticMethod(ref);
final PsiClass targetClass = QuickfixUtil.findTargetClass(ref, compileStatic);
if (targetClass == null || !canBeTargetClass(targetClass)) return Collections.emptyList();
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/navigation/actions/GroovyGotoSuperHandler.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/navigation/actions/GroovyGotoSuperHandler.java
index 0aa67f28969b..d2d4a1bc6161 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/navigation/actions/GroovyGotoSuperHandler.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInsight/navigation/actions/GroovyGotoSuperHandler.java
@@ -56,18 +56,21 @@ public class GroovyGotoSuperHandler extends GotoTargetHandler implements Languag
return new GotoData(e, findTargets(e), Collections.<AdditionalAction>emptyList());
}
+ @NotNull
@Override
protected String getChooserTitle(PsiElement sourceElement, String name, int length) {
return CodeInsightBundle.message("goto.super.method.chooser.title");
}
+ @NotNull
@Override
protected String getFindUsagesTitle(PsiElement sourceElement, String name, int length) {
return CodeInsightBundle.message("goto.super.method.findUsages.title", name);
}
+ @NotNull
@Override
- protected String getNotFoundMessage(Project project, Editor editor, PsiFile file) {
+ protected String getNotFoundMessage(@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file) {
final PsiMember source = findSource(editor, file);
if (source instanceof PsiClass) {
return GroovyBundle.message("no.super.classes.found");
@@ -87,7 +90,8 @@ public class GroovyGotoSuperHandler extends GotoTargetHandler implements Languag
return PsiTreeUtil.getParentOfType(element, PsiMethod.class, GrField.class, PsiClass.class);
}
- private static PsiElement[] findTargets(PsiMember e) {
+ @NotNull
+ private static PsiElement[] findTargets(@NotNull PsiMember e) {
if (e instanceof PsiClass) {
PsiClass aClass = (PsiClass)e;
List<PsiClass> allSupers = new ArrayList<PsiClass>(Arrays.asList(aClass.getSupers()));
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/GroovyInspectionSuppressor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/GroovyInspectionSuppressor.java
new file mode 100644
index 000000000000..df2288a5159b
--- /dev/null
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/GroovyInspectionSuppressor.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2000-2014 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.plugins.groovy.codeInspection;
+
+import com.intellij.codeInspection.InspectionSuppressor;
+import com.intellij.codeInspection.SuppressQuickFix;
+import com.intellij.psi.PsiElement;
+import org.jetbrains.annotations.NotNull;
+
+public class GroovyInspectionSuppressor implements InspectionSuppressor {
+ @Override
+ public boolean isSuppressedFor(@NotNull PsiElement element, @NotNull String name) {
+ return GroovySuppressableInspectionTool.getElementToolSuppressedIn(element, name) != null;
+ }
+
+ @Override
+ public SuppressQuickFix[] getSuppressActions(@NotNull PsiElement element, String toolShortName) {
+ return GroovySuppressableInspectionTool.getSuppressActions(toolShortName);
+ }
+}
+
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/ClashingTraitMethodsInspection.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/ClashingTraitMethodsInspection.java
index a446f3821b5c..b5579e186613 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/ClashingTraitMethodsInspection.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/ClashingTraitMethodsInspection.java
@@ -30,7 +30,7 @@ import java.util.List;
* Created by Max Medvedev on 03/06/14
*/
public class ClashingTraitMethodsInspection extends BaseInspection {
- private static final Logger LOG = Logger.getInstance(MyQuickFix.class);
+ private static final Logger LOG = Logger.getInstance(ClashingTraitMethodsInspection.class);
@NotNull
@Override
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/spellchecker/GroovySpellcheckingStrategy.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/spellchecker/GroovySpellcheckingStrategy.java
index f252ee8869ef..9bc67a4355d0 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/spellchecker/GroovySpellcheckingStrategy.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/spellchecker/GroovySpellcheckingStrategy.java
@@ -15,16 +15,14 @@
*/
package org.jetbrains.plugins.groovy.codeInspection.spellchecker;
-import com.intellij.codeInspection.SuppressQuickFix;
import com.intellij.psi.PsiElement;
import com.intellij.psi.javadoc.PsiDocComment;
import com.intellij.spellchecker.inspections.PlainTextSplitter;
import com.intellij.spellchecker.tokenizer.EscapeSequenceTokenizer;
-import com.intellij.spellchecker.tokenizer.SuppressibleSpellcheckingStrategy;
+import com.intellij.spellchecker.tokenizer.SpellcheckingStrategy;
import com.intellij.spellchecker.tokenizer.TokenConsumer;
import com.intellij.spellchecker.tokenizer.Tokenizer;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.plugins.groovy.codeInspection.GroovySuppressableInspectionTool;
import org.jetbrains.plugins.groovy.lang.lexer.TokenSets;
import org.jetbrains.plugins.groovy.lang.psi.GrNamedElement;
import org.jetbrains.plugins.groovy.lang.psi.util.GrStringUtil;
@@ -32,7 +30,7 @@ import org.jetbrains.plugins.groovy.lang.psi.util.GrStringUtil;
/**
* @author peter
*/
-public class GroovySpellcheckingStrategy extends SuppressibleSpellcheckingStrategy {
+public class GroovySpellcheckingStrategy extends SpellcheckingStrategy {
private final GrDocCommentTokenizer myDocCommentTokenizer = new GrDocCommentTokenizer();
private final Tokenizer<PsiElement> myStringTokenizer = new Tokenizer<PsiElement>() {
@Override
@@ -66,14 +64,4 @@ public class GroovySpellcheckingStrategy extends SuppressibleSpellcheckingStrate
//if (element instanceof GrLiteralImpl && ((GrLiteralImpl)element).isStringLiteral()) return myStringTokenizer;
return super.getTokenizer(element);
}
-
- @Override
- public boolean isSuppressedFor(@NotNull PsiElement element, @NotNull String name) {
- return GroovySuppressableInspectionTool.getElementToolSuppressedIn(element, name) != null;
- }
-
- @Override
- public SuppressQuickFix[] getSuppressActions(@NotNull PsiElement element, @NotNull String name) {
- return GroovySuppressableInspectionTool.getSuppressActions(name);
- }
}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/config/ConfigureGroovyLibraryNotificationProvider.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/config/ConfigureGroovyLibraryNotificationProvider.java
index 911451e55e2d..1b2f82fe186b 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/config/ConfigureGroovyLibraryNotificationProvider.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/config/ConfigureGroovyLibraryNotificationProvider.java
@@ -21,6 +21,7 @@ import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtil;
+import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.project.IndexNotReadyException;
import com.intellij.openapi.project.Project;
@@ -67,13 +68,14 @@ public class ConfigureGroovyLibraryNotificationProvider extends EditorNotificati
}
}
+ @NotNull
@Override
public Key<EditorNotificationPanel> getKey() {
return KEY;
}
@Override
- public EditorNotificationPanel createNotificationPanel(VirtualFile file, FileEditor fileEditor) {
+ public EditorNotificationPanel createNotificationPanel(@NotNull VirtualFile file, @NotNull FileEditor fileEditor) {
try {
if (!supportedFileTypes.contains(file.getFileType())) return null;
// do not show the panel for Gradle build scripts
@@ -81,7 +83,7 @@ public class ConfigureGroovyLibraryNotificationProvider extends EditorNotificati
if (StringUtil.endsWith(file.getName(), ".gradle")) return null;
if (CompilerManager.getInstance(myProject).isExcludedFromCompilation(file)) return null;
- final Module module = ModuleUtil.findModuleForFile(file, myProject);
+ final Module module = ModuleUtilCore.findModuleForFile(file, myProject);
if (module == null) return null;
if (isMavenModule(module)) return null;
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyShellCompletionContributor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyShellCompletionContributor.java
index 709c5e396483..b1a3a00418fd 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyShellCompletionContributor.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyShellCompletionContributor.java
@@ -34,7 +34,7 @@ import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil;
*/
public class GroovyShellCompletionContributor extends CompletionContributor {
@Override
- public void fillCompletionVariants(CompletionParameters parameters, CompletionResultSet result) {
+ public void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull CompletionResultSet result) {
PsiFile file = parameters.getOriginalFile();
if (!(file instanceof GroovyShellCodeFragment)) return;
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyPositionManager.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyPositionManager.java
index 48e98a45206b..73e3b27afcf9 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyPositionManager.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/debugger/GroovyPositionManager.java
@@ -27,6 +27,7 @@ import com.intellij.debugger.requests.ClassPrepareRequestor;
import com.intellij.openapi.application.AccessToken;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.impl.scopes.ModuleWithDependenciesScope;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.project.IndexNotReadyException;
@@ -109,9 +110,16 @@ public class GroovyPositionManager implements PositionManager {
}
}
+ private static void checkGroovyFile(@NotNull SourcePosition position) throws NoDataException {
+ if (!(position.getFile() instanceof GroovyFileBase)) {
+ throw new NoDataException();
+ }
+ }
+
@Override
public ClassPrepareRequest createPrepareRequest(@NotNull final ClassPrepareRequestor requestor, @NotNull final SourcePosition position)
throws NoDataException {
+ checkGroovyFile(position);
String qName = getOuterClassName(position);
if (qName != null) {
return myDebugProcess.getRequestsManager().createClassPrepareRequest(requestor, qName);
@@ -260,7 +268,10 @@ public class GroovyPositionManager implements PositionManager {
private static GlobalSearchScope addModuleContent(GlobalSearchScope scope) {
if (scope instanceof ModuleWithDependenciesScope) {
- return scope.uniteWith(((ModuleWithDependenciesScope)scope).getModule().getModuleContentWithDependenciesScope());
+ Module module = ((ModuleWithDependenciesScope)scope).getModule();
+ if (!module.isDisposed()) {
+ return scope.uniteWith(module.getModuleContentWithDependenciesScope());
+ }
}
return scope;
}
@@ -277,6 +288,7 @@ public class GroovyPositionManager implements PositionManager {
@Override
@NotNull
public List<ReferenceType> getAllClasses(@NotNull final SourcePosition position) throws NoDataException {
+ checkGroovyFile(position);
List<ReferenceType> result = ApplicationManager.getApplication().runReadAction(new Computable<List<ReferenceType>>() {
@Override
public List<ReferenceType> compute() {
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/dgm/DGMReferenceContributor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/dgm/DGMReferenceContributor.java
index 2dd7f99dd95c..d5f6e0f3c5c2 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/dgm/DGMReferenceContributor.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/dgm/DGMReferenceContributor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2014 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.
@@ -35,7 +35,7 @@ public class DGMReferenceContributor extends PsiReferenceContributor {
private final JavaClassReferenceProvider myProvider = new JavaClassReferenceProvider();
@Override
- public void registerReferenceProviders(PsiReferenceRegistrar registrar) {
+ public void registerReferenceProviders(@NotNull PsiReferenceRegistrar registrar) {
registrar.registerReferenceProvider(PlatformPatterns.psiElement(PropertiesTokenTypes.VALUE_CHARACTERS), new PsiReferenceProvider() {
@NotNull
@Override
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/gant/GantScriptType.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/gant/GantScriptType.java
index adda0faf476f..56d51c6d7e7d 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/gant/GantScriptType.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/gant/GantScriptType.java
@@ -20,12 +20,12 @@ import com.intellij.compiler.options.CompileStepBeforeRunNoErrorCheck;
import com.intellij.execution.Location;
import com.intellij.execution.RunManagerEx;
import com.intellij.openapi.module.Module;
-import com.intellij.openapi.module.ModuleUtil;
+import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.search.GlobalSearchScope;
-import com.intellij.psi.search.NonClasspathDirectoryScope;
+import com.intellij.psi.search.NonClasspathDirectoriesScope;
import icons.JetgroovyIcons;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -84,7 +84,7 @@ public class GantScriptType extends GroovyRunnableScriptType {
final GrNamedArgument[] args = ((GrMethodCallExpression)parent).getNamedArguments();
if (args.length == 1) {
final GrArgumentLabel label = args[0].getLabel();
- if (label != null && GantUtils.isPlainIdentifier(label)) {
+ if (label != null) {
return label.getName();
}
}
@@ -104,7 +104,7 @@ public class GantScriptType extends GroovyRunnableScriptType {
}
public static List<VirtualFile> additionalScopeFiles(@NotNull GroovyFile file) {
- final Module module = ModuleUtil.findModuleForPsiElement(file);
+ final Module module = ModuleUtilCore.findModuleForPsiElement(file);
if (module != null) {
final String sdkHome = GantUtils.getSdkHomeFromClasspath(module);
if (sdkHome != null) {
@@ -123,10 +123,6 @@ public class GantScriptType extends GroovyRunnableScriptType {
@Override
public GlobalSearchScope patchResolveScope(@NotNull GroovyFile file, @NotNull GlobalSearchScope baseScope) {
- GlobalSearchScope result = baseScope;
- for (final VirtualFile root : additionalScopeFiles(file)) {
- result = result.uniteWith(new NonClasspathDirectoryScope(root));
- }
- return result;
+ return baseScope.uniteWith(new NonClasspathDirectoriesScope(additionalScopeFiles(file)));
}
}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/grape/GrabDependencies.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/grape/GrabDependencies.java
index 5c1c824fb580..11a0c2b9ccd6 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/grape/GrabDependencies.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/grape/GrabDependencies.java
@@ -82,6 +82,7 @@ public class GrabDependencies implements IntentionAction {
private static final Logger LOG = Logger.getInstance("#org.jetbrains.plugins.groovy.grape.GrabDependencies");
private static final NotificationGroup NOTIFICATION_GROUP = new NotificationGroup("Grape", NotificationDisplayType.BALLOON, true);
+ public static final String GRAPE_RUNNER = "org.jetbrains.plugins.groovy.grape.GrapeRunner";
@Override
@NotNull
@@ -195,7 +196,7 @@ public class GrabDependencies implements IntentionAction {
//javaParameters.getVMParametersList().add("-Xdebug"); javaParameters.getVMParametersList().add("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5239");
try {
- DefaultGroovyScriptRunner.configureGenericGroovyRunner(javaParameters, module, "org.jetbrains.plugins.groovy.grape.GrapeRunner", false, true);
+ DefaultGroovyScriptRunner.configureGenericGroovyRunner(javaParameters, module, GRAPE_RUNNER, false, true);
}
catch (CantRunException e) {
NOTIFICATION_GROUP.createNotification("Can't run @Grab: " + ExceptionUtil.getMessage(e), ExceptionUtil.getThrowableText(e), NotificationType.ERROR, null).notify(project);
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/CompleteReferenceExpression.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/CompleteReferenceExpression.java
index e23b5976d3fa..91a8c6f1fac3 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/CompleteReferenceExpression.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/CompleteReferenceExpression.java
@@ -43,7 +43,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.annotation.
import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.annotation.GrAnnotationNameValuePair;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrVariable;
-import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrAssignmentExpression;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression;
@@ -55,7 +54,6 @@ import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager;
import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyResolveResultImpl;
import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.GrReferenceExpressionImpl;
-import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.GrReferenceResolveUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrBindingVariable;
import org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.ClosureParameterEnhancer;
@@ -63,7 +61,6 @@ import org.jetbrains.plugins.groovy.lang.psi.util.GroovyPropertyUtils;
import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil;
import org.jetbrains.plugins.groovy.lang.resolve.ClosureMissingMethodContributor;
import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil;
-import org.jetbrains.plugins.groovy.lang.resolve.processors.ClassHint;
import org.jetbrains.plugins.groovy.lang.resolve.processors.ResolverProcessor;
import org.jetbrains.plugins.groovy.lang.resolve.processors.SubstitutorComputer;
@@ -157,14 +154,7 @@ public class CompleteReferenceExpression {
if (qualifier == null) {
ResolveUtil.treeWalkUp(myRefExpr, myProcessor, true);
- for (PsiElement e = myRefExpr.getParent(); e != null; e = e.getParent()) {
- if (e instanceof GrClosableBlock) {
- ResolveState state = ResolveState.initial().put(ClassHint.RESOLVE_CONTEXT, e);
- for (ClosureMissingMethodContributor contributor : ClosureMissingMethodContributor.EP_NAME.getExtensions()) {
- contributor.processMembers((GrClosableBlock)e, myProcessor, myRefExpr, state);
- }
- }
- }
+ ClosureMissingMethodContributor.processMethodsFromClosures(myRefExpr, myProcessor);
GrExpression runtimeQualifier = PsiImplUtil.getRuntimeQualifier(myRefExpr);
if (runtimeQualifier != null) {
@@ -394,7 +384,7 @@ public class CompleteReferenceExpression {
}
private boolean isMap() {
- final PsiType qType = GrReferenceResolveUtil.getQualifierType(myRefExpr);
+ final PsiType qType = PsiImplUtil.getQualifierType(myRefExpr);
return InheritanceUtil.isInheritor(qType, CommonClassNames.JAVA_UTIL_MAP);
}
@@ -436,7 +426,7 @@ public class CompleteReferenceExpression {
myFieldPointerOperator = myRefExpr.hasAt();
myMethodPointerOperator = myRefExpr.getDotTokenType() == GroovyTokenTypes.mMEMBER_POINTER;
myIsMap = isMap();
- final PsiType thisType = GrReferenceResolveUtil.getQualifierType(myRefExpr);
+ final PsiType thisType = PsiImplUtil.getQualifierType(myRefExpr);
mySubstitutorComputer = new SubstitutorComputer(thisType, PsiType.EMPTY_ARRAY, PsiType.EMPTY_ARRAY, myRefExpr, myRefExpr.getParent());
}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GdslClosureCompleter.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GdslClosureCompleter.java
index 47ebb661c960..3227ff76e01e 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GdslClosureCompleter.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GdslClosureCompleter.java
@@ -26,7 +26,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlo
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition;
-import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.GrReferenceResolveUtil;
+import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames;
@@ -44,7 +44,7 @@ public class GdslClosureCompleter extends ClosureCompleter {
PsiElement place) {
final ArrayList<ClosureDescriptor> descriptors = new ArrayList<ClosureDescriptor>();
GrReferenceExpression ref = (GrReferenceExpression)place;
- PsiType qtype = GrReferenceResolveUtil.getQualifierType(ref);
+ PsiType qtype = PsiImplUtil.getQualifierType(ref);
if (qtype == null) return null;
GrExpression qualifier = ref.getQualifier();
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GrMethodMergingContributor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GrMethodMergingContributor.java
index 9fced9dac8bd..e84361b0f57d 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GrMethodMergingContributor.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GrMethodMergingContributor.java
@@ -22,6 +22,7 @@ import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiParameter;
import com.intellij.psi.PsiType;
import com.intellij.psi.ResolveResult;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames;
@@ -32,7 +33,7 @@ import java.util.ArrayList;
*/
public class GrMethodMergingContributor extends CompletionContributor {
@Override
- public AutoCompletionDecision handleAutoCompletionPossibility(AutoCompletionContext context) {
+ public AutoCompletionDecision handleAutoCompletionPossibility(@NotNull AutoCompletionContext context) {
final CompletionParameters parameters = context.getParameters();
if (parameters.getCompletionType() != CompletionType.SMART && parameters.getCompletionType() != CompletionType.BASIC) {
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyCompletionContributor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyCompletionContributor.java
index e02f73314eb5..4c0c342030fb 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyCompletionContributor.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyCompletionContributor.java
@@ -73,7 +73,7 @@ public class GroovyCompletionContributor extends CompletionContributor {
}
@Override
- public void fillCompletionVariants(CompletionParameters parameters, CompletionResultSet result) {
+ public void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull CompletionResultSet result) {
if (!AFTER_NUMBER_LITERAL.accepts(parameters.getPosition())) {
super.fillCompletionVariants(parameters, result);
}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyNoVariantsDelegator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyNoVariantsDelegator.java
index 6985f16cbc31..745f353ccf5b 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyNoVariantsDelegator.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovyNoVariantsDelegator.java
@@ -48,7 +48,7 @@ public class GroovyNoVariantsDelegator extends CompletionContributor {
}
@Override
- public void fillCompletionVariants(final CompletionParameters parameters, CompletionResultSet result) {
+ public void fillCompletionVariants(@NotNull final CompletionParameters parameters, @NotNull CompletionResultSet result) {
LinkedHashSet<CompletionResult> plainResults = result.runRemainingContributors(parameters, true);
final boolean empty = JavaNoVariantsDelegator.containsOnlyPackages(plainResults) || suggestMetaAnnotations(parameters);
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovySmartCompletionContributor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovySmartCompletionContributor.java
index 68d418c1f381..4b5459ff432e 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovySmartCompletionContributor.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/GroovySmartCompletionContributor.java
@@ -377,7 +377,7 @@ public class GroovySmartCompletionContributor extends CompletionContributor {
}
@Override
- public void fillCompletionVariants(CompletionParameters parameters, CompletionResultSet result) {
+ public void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull CompletionResultSet result) {
super.fillCompletionVariants(parameters, result);
}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcCliCommandExecutor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcCliCommandExecutor.java
new file mode 100644
index 000000000000..120c5abf189b
--- /dev/null
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcCliCommandExecutor.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2000-2014 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.plugins.groovy.mvc;
+
+import com.intellij.execution.configurations.GeneralCommandLine;
+import com.intellij.openapi.module.Module;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * @author Vladislav.Soroka
+ * @since 6/19/2014
+ */
+public class MvcCliCommandExecutor extends MvcCommandExecutor {
+ @Override
+ protected boolean isApplicable(Module module) {
+ return true;
+ }
+
+ @Nullable
+ @Override
+ protected ConsoleProcessDescriptor doRun(@NotNull Module module,
+ @NotNull MvcFramework framework,
+ @NotNull MvcCommand mvcCommand,
+ @Nullable Runnable onDone,
+ boolean showConsole,
+ boolean closeOnDone,
+ String... input) {
+ final GeneralCommandLine commandLine = framework.createCommandAndShowErrors(null, module, mvcCommand);
+ if (commandLine == null) return null;
+ return MvcConsole.executeProcess(module, commandLine, onDone, closeOnDone, input);
+ }
+}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcCommandExecutor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcCommandExecutor.java
new file mode 100644
index 000000000000..c4c791ba0042
--- /dev/null
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcCommandExecutor.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2000-2014 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.plugins.groovy.mvc;
+
+import com.intellij.openapi.extensions.ExtensionPointName;
+import com.intellij.openapi.module.Module;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * @author Vladislav.Soroka
+ * @since 6/19/2014
+ */
+public abstract class MvcCommandExecutor {
+ private static final ExtensionPointName<MvcCommandExecutor> EP_NAME =
+ ExtensionPointName.create("org.intellij.groovy.mvc.command.executor");
+
+ @Nullable
+ public static ConsoleProcessDescriptor run(@NotNull Module module,
+ @NotNull MvcFramework framework,
+ @NotNull MvcCommand mvcCommand,
+ @Nullable Runnable onDone,
+ boolean closeOnDone,
+ String... input) {
+ return run(module, framework, mvcCommand, onDone, true, closeOnDone, input);
+ }
+
+ @Nullable
+ public static ConsoleProcessDescriptor run(@NotNull Module module,
+ @NotNull MvcFramework framework,
+ @NotNull MvcCommand mvcCommand,
+ @Nullable Runnable onDone,
+ boolean showConsole,
+ boolean closeOnDone,
+ String... input) {
+ for (MvcCommandExecutor executor : EP_NAME.getExtensions()) {
+ if (executor.isApplicable(module)) {
+ return executor.doRun(module, framework, mvcCommand, onDone, showConsole, closeOnDone, input);
+ }
+ }
+
+ // fallback to default CLI implementation
+ return new MvcCliCommandExecutor().doRun(module, framework, mvcCommand, onDone, showConsole, closeOnDone, input);
+ }
+
+ protected abstract boolean isApplicable(Module module);
+
+ @Nullable
+ protected abstract ConsoleProcessDescriptor doRun(@NotNull Module module,
+ @NotNull MvcFramework framework,
+ @NotNull MvcCommand mvcCommand,
+ @Nullable Runnable onDone,
+ boolean showConsole,
+ boolean closeOnDone,
+ String... input);
+}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.form b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.form
index 688fe451db4c..a86aade6a66f 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.form
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.form
@@ -39,7 +39,7 @@
</constraints>
<properties/>
</component>
- <component id="d1e7d" class="javax.swing.JComboBox" binding="myModulesBox">
+ <component id="d1e7d" class="com.intellij.application.options.ModulesComboBox" binding="myModulesBox">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.java
index 68f6d50ae80d..d81ce98ffec6 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfigurationEditor.java
@@ -20,13 +20,13 @@ import com.intellij.execution.configuration.EnvironmentVariablesComponent;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.SettingsEditor;
+import com.intellij.application.options.ModulesComboBox;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.ui.DocumentAdapter;
import com.intellij.ui.PanelWithAnchor;
import com.intellij.ui.RawCommandLineEditor;
import com.intellij.ui.components.JBLabel;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.plugins.groovy.mvc.util.ModuleCellRenderer;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
@@ -35,8 +35,7 @@ import java.io.File;
import java.util.HashMap;
public class MvcRunConfigurationEditor<T extends MvcRunConfiguration> extends SettingsEditor<T> implements PanelWithAnchor {
- private DefaultComboBoxModel myModulesModel;
- protected JComboBox myModulesBox;
+ protected ModulesComboBox myModulesBox;
private JPanel myMainPanel;
private RawCommandLineEditor myVMParameters;
private JTextField myCommandLine;
@@ -67,11 +66,8 @@ public class MvcRunConfigurationEditor<T extends MvcRunConfiguration> extends Se
myCommandLine.setText(configuration.cmdLine);
- myModulesModel.removeAllElements();
- for (Module module : configuration.getValidModules()) {
- myModulesModel.addElement(module);
- }
- myModulesModel.setSelectedItem(configuration.getModule());
+ myModulesBox.setModules(configuration.getValidModules());
+ myModulesBox.setSelectedModule(configuration.getModule());
commandLineChanged(getCommandLine());
@@ -142,7 +138,7 @@ public class MvcRunConfigurationEditor<T extends MvcRunConfiguration> extends Se
}
protected Module getSelectedModule() {
- return (Module)myModulesBox.getSelectedItem();
+ return myModulesBox.getSelectedModule();
}
public void addExtension(JComponent component) {
@@ -152,10 +148,6 @@ public class MvcRunConfigurationEditor<T extends MvcRunConfiguration> extends Se
@Override
@NotNull
protected JComponent createEditor() {
- myModulesModel = new DefaultComboBoxModel();
- myModulesBox.setModel(myModulesModel);
- myModulesBox.setRenderer(new ModuleCellRenderer(myModulesBox.getRenderer()));
-
return myMainPanel;
}
}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTarget.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTarget.java
index 6efc6665504e..ad856e862223 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTarget.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTarget.java
@@ -15,7 +15,6 @@
*/
package org.jetbrains.plugins.groovy.mvc;
-import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.module.Module;
import org.jetbrains.annotations.NotNull;
@@ -34,13 +33,8 @@ public class MvcRunTarget extends MvcActionBase {
}
Module selectedModule = dialog.getSelectedModule();
-
MvcCommand cmd = MvcCommand.parse(dialog.getTargetArguments());
-
- final GeneralCommandLine commandLine = framework.createCommandAndShowErrors(dialog.getVmOptions(), selectedModule, cmd);
- if (commandLine == null) return;
-
- MvcConsole.executeProcess(selectedModule, commandLine, null, false);
+ MvcCommandExecutor.run(selectedModule, framework, cmd, null, false);
}
}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTargetDialog.form b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTargetDialog.form
index 3d086ca296b6..cafff50f6c2a 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTargetDialog.form
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTargetDialog.form
@@ -69,7 +69,7 @@
<text value="&amp;Module:"/>
</properties>
</component>
- <component id="cf36f" class="javax.swing.JComboBox" binding="myModuleBox">
+ <component id="cf36f" class="com.intellij.application.options.ModulesComboBox" binding="myModuleBox">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTargetDialog.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTargetDialog.java
index 2b629bb668a1..65c6b4be97b4 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTargetDialog.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunTargetDialog.java
@@ -22,14 +22,17 @@ import com.intellij.openapi.editor.event.DocumentEvent;
import com.intellij.openapi.fileTypes.PlainTextFileType;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
+import com.intellij.application.options.ModulesComboBox;
import com.intellij.openapi.ui.ComboBox;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.util.text.StringUtil;
-import com.intellij.ui.*;
+import com.intellij.ui.EditorComboBoxEditor;
+import com.intellij.ui.EditorComboBoxRenderer;
+import com.intellij.ui.EditorTextField;
+import com.intellij.ui.StringComboboxEditor;
import com.intellij.util.TextFieldCompletionProvider;
import com.intellij.util.TextFieldCompletionProviderDumbAware;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.plugins.groovy.mvc.util.ModuleCellRenderer;
import org.jetbrains.plugins.groovy.mvc.util.MvcTargetDialogCompletionUtils;
import javax.swing.*;
@@ -47,7 +50,7 @@ public class MvcRunTargetDialog extends DialogWrapper {
private JLabel myTargetLabel;
private JPanel myFakePanel;
private EditorTextField myVmOptionsField;
- private JComboBox myModuleBox;
+ private ModulesComboBox myModuleBox;
private JLabel myModuleLabel;
private JLabel myVmOptionLabel;
private ComboBox myTargetField;
@@ -114,18 +117,17 @@ public class MvcRunTargetDialog extends DialogWrapper {
assert mvcModules.contains(myModule);
myModuleLabel.setLabelFor(myModuleBox);
- myModuleBox.setModel(new CollectionComboBoxModel(mvcModules, myModule));
+ myModuleBox.setModules(mvcModules);
+ myModuleBox.setSelectedModule(myModule);
myModuleBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- myModule = (Module)myModuleBox.getSelectedItem();
+ myModule = myModuleBox.getSelectedModule();
if (myInteractiveRunAction != null) {
myInteractiveRunAction.setEnabled(myFramework.isInteractiveConsoleSupported(myModule));
}
}
});
-
- myModuleBox.setRenderer(new ModuleCellRenderer(myModuleBox.getRenderer()));
}
@NotNull
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/util/ModuleCellRenderer.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/util/ModuleCellRenderer.java
deleted file mode 100644
index 208de7bbcfbc..000000000000
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/util/ModuleCellRenderer.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2000-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.plugins.groovy.mvc.util;
-
-import com.intellij.openapi.module.Module;
-import com.intellij.openapi.module.ModuleType;
-import com.intellij.ui.ListCellRendererWrapper;
-
-import javax.swing.*;
-
-/**
- * @author Sergey Evdokimov
- */
-public class ModuleCellRenderer extends ListCellRendererWrapper<Module> {
- public ModuleCellRenderer(ListCellRenderer renderer) {
- super();
- }
-
- @Override
- public void customize(JList list, Module module, int index, boolean selected, boolean hasFocus) {
- if (module != null) {
- setIcon(ModuleType.get(module).getIcon());
- setText(module.getName());
- }
- }
-}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java
index 615a2dac667a..aceef3c34b84 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/convertToJava/ExpressionGenerator.java
@@ -69,7 +69,6 @@ import org.jetbrains.plugins.groovy.lang.psi.impl.GrLiteralClassType;
import org.jetbrains.plugins.groovy.lang.psi.impl.GrRangeType;
import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.signatures.GrClosureSignatureUtil;
-import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.GrReferenceResolveUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.ClosureSyntheticParameter;
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrBindingVariable;
@@ -447,7 +446,7 @@ public class ExpressionGenerator extends Generator {
else if (resolved == null || resolved instanceof GrBindingVariable) {
//write unresolved reference assignment via setter GroovyObject.setProperty(String name, Object value)
final GrExpression qualifier = ((GrReferenceExpression)realLValue).getQualifier();
- final PsiType type = GrReferenceResolveUtil.getQualifierType((GrReferenceExpression)realLValue);
+ final PsiType type = PsiImplUtil.getQualifierType((GrReferenceExpression)realLValue);
final GrExpression[] args = {
factory.createExpressionFromText("\"" + ((GrReferenceExpression)realLValue).getReferenceName() + "\""),
@@ -952,7 +951,7 @@ public class ExpressionGenerator extends Generator {
return;
}
- if (GrReferenceResolveUtil.isClassReference(referenceExpression)) {
+ if (ResolveUtil.isClassReference(referenceExpression)) {
LOG.assertTrue(qualifier != null);
qualifier.accept(this);
builder.append(".class");
@@ -1052,7 +1051,7 @@ public class ExpressionGenerator extends Generator {
}
else {
PsiType stringType = PsiType.getJavaLangString(referenceExpression.getManager(), referenceExpression.getResolveScope());
- PsiType qualifierType = GrReferenceResolveUtil.getQualifierType(referenceExpression);
+ PsiType qualifierType = PsiImplUtil.getQualifierType(referenceExpression);
GroovyResolveResult[] candidates = qualifierType != null
? ResolveUtil.getMethodCandidates(qualifierType, "getProperty", referenceExpression,
stringType)
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameAliasImportedFieldProcessor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameAliasImportedFieldProcessor.java
deleted file mode 100644
index 3cd416459bd3..000000000000
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameAliasImportedFieldProcessor.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2000-2010 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.plugins.groovy.refactoring.rename;
-
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiReference;
-import com.intellij.refactoring.rename.RenameJavaVariableProcessor;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField;
-
-import java.util.Collection;
-
-/**
- * @author Maxim.Medvedev
- */
-public class RenameAliasImportedFieldProcessor extends RenameJavaVariableProcessor{
- @Override
- public boolean canProcessElement(@NotNull PsiElement element) {
- return element instanceof GrField && !((GrField)element).isProperty();
- }
-
- @NotNull
- @Override
- public Collection<PsiReference> findReferences(PsiElement element) {
- return RenameAliasedUsagesUtil.filterAliasedRefs(super.findReferences(element), element);
- }
-}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameGrFieldProcessor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameGrFieldProcessor.java
index 8bccb8073874..9e90ac2326a0 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameGrFieldProcessor.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/rename/RenameGrFieldProcessor.java
@@ -15,6 +15,7 @@
*/
package org.jetbrains.plugins.groovy.refactoring.rename;
+import com.intellij.openapi.diagnostic.Logger;
import com.intellij.psi.*;
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
import com.intellij.psi.search.GlobalSearchScope;
@@ -30,8 +31,8 @@ import com.intellij.refactoring.rename.UnresolvableCollisionUsageInfo;
import com.intellij.refactoring.util.MoveRenameUsageInfo;
import com.intellij.usageView.UsageInfo;
import com.intellij.util.IncorrectOperationException;
+import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.MultiMap;
-import com.intellij.util.containers.hash.HashMap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory;
@@ -40,6 +41,8 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrCall;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrAccessorMethod;
+import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrTraitField;
+import org.jetbrains.plugins.groovy.lang.psi.util.GrTraitUtil;
import org.jetbrains.plugins.groovy.lang.psi.util.GroovyPropertyUtils;
import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil;
import org.jetbrains.plugins.groovy.lang.resolve.ResolveUtil;
@@ -56,6 +59,8 @@ import java.util.Map;
*/
public class RenameGrFieldProcessor extends RenameJavaVariableProcessor {
+ private static final Logger LOG = Logger.getInstance(RenameGrFieldProcessor.class);
+
@NotNull
@Override
public Collection<PsiReference> findReferences(PsiElement element) {
@@ -84,16 +89,8 @@ public class RenameGrFieldProcessor extends RenameJavaVariableProcessor {
@Nullable RefactoringElementListener listener) throws IncorrectOperationException {
final GrField field = (GrField)psiElement;
String fieldName = field.getName();
- Map<PsiElement, String> renames = new HashMap<PsiElement, String>();
- renames.put(field, newName);
- for (GrAccessorMethod getter : field.getGetters()) {
- renames.put(getter, RenamePropertyUtil.getGetterNameByOldName(newName, getter.getName()));
- }
- final GrAccessorMethod setter = field.getSetter();
- if (setter != null) {
- renames.put(setter, GroovyPropertyUtils.getSetterName(newName));
- }
+ NameProvider nameProvider = new NameProvider(field, newName);
MultiMap<PsiNamedElement, UsageInfo> propertyUsages = MultiMap.createLinked();
MultiMap<PsiNamedElement, UsageInfo> simpleUsages = MultiMap.createLinked();
@@ -106,12 +103,7 @@ public class RenameGrFieldProcessor extends RenameJavaVariableProcessor {
final GroovyResolveResult resolveResult = ((GrReferenceExpression)ref).advancedResolve();
final PsiElement element = resolveResult.getElement();
if (resolveResult.isInvokedOnProperty()) {
- if (element == null) {
- unknownUsages.add(ref);
- }
- else {
- propertyUsages.putValue((PsiNamedElement)element, usage);
- }
+ propertyUsages.putValue((PsiNamedElement)element, usage);
}
else {
simpleUsages.putValue((PsiNamedElement)element, usage);
@@ -128,22 +120,13 @@ public class RenameGrFieldProcessor extends RenameJavaVariableProcessor {
field.setName(newName);
- final GrAccessorMethod[] newGetters = field.getGetters();
- final GrAccessorMethod newSetter = field.getSetter();
- Map<String, PsiNamedElement> newElements = new HashMap<String, PsiNamedElement>();
- newElements.put(newName, field);
- for (GrAccessorMethod newGetter : newGetters) {
- newElements.put(newGetter.getName(), newGetter);
- }
- if (newSetter != null) {
- newElements.put(newSetter.getName(), newSetter);
- }
+ nameProvider.putNewElements(field);
PsiManager manager = field.getManager();
for (PsiNamedElement element : simpleUsages.keySet()) {
for (UsageInfo info : simpleUsages.get(element)) {
- final String name = renames.get(element);
- rename(newElements.get(name), info, name == null ? newName : name, name != null, manager);
+ final String name = nameProvider.getNewName(element);
+ rename(nameProvider.getNewElement(element), info, name == null ? newName : name, name != null, manager);
}
}
for (PsiNamedElement element : propertyUsages.keySet()) {
@@ -156,6 +139,72 @@ public class RenameGrFieldProcessor extends RenameJavaVariableProcessor {
}
}
+ private static class NameProvider {
+
+ private final Map<PsiElement, String> myNameMap = ContainerUtil.newHashMap();
+ private final Map<String, PsiNamedElement> myNewElements = ContainerUtil.newHashMap();
+
+
+ public NameProvider(GrField field, String newName) {
+ myNameMap.put(field, newName);
+
+ if (field.isProperty()) {
+ for (GrAccessorMethod getter : field.getGetters()) {
+ myNameMap.put(getter, RenamePropertyUtil.getGetterNameByOldName(newName, getter.getName()));
+ }
+ final GrAccessorMethod setter = field.getSetter();
+ if (setter != null) {
+ myNameMap.put(setter, GroovyPropertyUtils.getSetterName(newName));
+ }
+ }
+ }
+
+ String getNewName(@NotNull PsiElement element) {
+ String name = myNameMap.get(element);
+ if (name != null) {
+ return name;
+ }
+
+ if (element instanceof GrTraitField) {
+ PsiField prototype = ((GrTraitField)element).getPrototype();
+ String newPrototypeName = getNewName(prototype);
+ return GrTraitUtil.getTraitFieldPrefix(prototype.getContainingClass()) + newPrototypeName;
+ }
+
+ return null;
+ }
+
+ public void putNewElements(@NotNull GrField field) {
+ myNewElements.put(field.getName(), field);
+
+ if (field.isProperty()) {
+ for (GrAccessorMethod newGetter : field.getGetters()) {
+ myNewElements.put(newGetter.getName(), newGetter);
+ }
+
+ final GrAccessorMethod newSetter = field.getSetter();
+ if (newSetter != null) {
+ myNewElements.put(newSetter.getName(), newSetter);
+ }
+ }
+ }
+
+ public PsiNamedElement getNewElement(PsiNamedElement element) {
+ String newName = getNewName(element);
+ PsiNamedElement newElement = myNewElements.get(newName);
+ if (newElement != null) {
+ return newElement;
+ }
+
+ if (element instanceof GrTraitField) {
+ PsiField prototype = ((GrTraitField)element).getPrototype();
+ return getNewElement(prototype);
+ }
+
+ return null;
+ }
+ }
+
private static void rename(PsiNamedElement element,
UsageInfo info,
String nameToUse,
@@ -241,7 +290,7 @@ public class RenameGrFieldProcessor extends RenameJavaVariableProcessor {
@Override
public boolean canProcessElement(@NotNull final PsiElement element) {
- return element instanceof GrField && ((GrField)element).isProperty() || element instanceof GrAccessorMethod;
+ return element instanceof GrField /*&& ((GrField)element).isProperty()*/ || element instanceof GrAccessorMethod;
}
@Override
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/DefaultGroovyScriptRunner.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/DefaultGroovyScriptRunner.java
index 7676de9fdc3d..90e4131f1ef9 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/DefaultGroovyScriptRunner.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/DefaultGroovyScriptRunner.java
@@ -37,6 +37,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jps.incremental.groovy.GroovycOSProcessHandler;
import org.jetbrains.plugins.groovy.config.GroovyFacetUtil;
+import org.jetbrains.plugins.groovy.grape.GrabDependencies;
import org.jetbrains.plugins.groovy.util.LibrariesUtil;
import java.nio.charset.Charset;
@@ -118,7 +119,9 @@ public class DefaultGroovyScriptRunner extends GroovyScriptRunner {
params.getProgramParametersList().add("--main");
params.getProgramParametersList().add(mainClass);
- addClasspathFromRootModel(module, tests, params, true);
+ if (!GrabDependencies.GRAPE_RUNNER.equals(mainClass)) {
+ addClasspathFromRootModel(module, tests, params, true);
+ }
if (params.getVMParametersList().getPropertyValue(GroovycOSProcessHandler.GRAPE_ROOT) == null) {
String sysRoot = System.getProperty(GroovycOSProcessHandler.GRAPE_ROOT);
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.form b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.form
index 31e26e527258..a5ffd20bd1d2 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.form
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.form
@@ -74,7 +74,7 @@
<text value="Module:"/>
</properties>
</component>
- <component id="d1e7d" class="javax.swing.JComboBox" binding="myModulesBox">
+ <component id="d1e7d" class="com.intellij.application.options.ModulesComboBox" binding="myModulesBox">
<constraints>
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.java
index 46a0d0389f49..e41164f7442d 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyRunConfigurationEditor.java
@@ -19,26 +19,22 @@ package org.jetbrains.plugins.groovy.runner;
import com.intellij.execution.configuration.EnvironmentVariablesComponent;
import com.intellij.ide.util.BrowseFilesListener;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
-import com.intellij.openapi.module.Module;
-import com.intellij.openapi.module.ModuleType;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.SettingsEditor;
-import com.intellij.openapi.roots.ui.configuration.ModulesAlphaComparator;
+import com.intellij.application.options.ModulesComboBox;
import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.ui.*;
+import com.intellij.ui.FieldPanel;
+import com.intellij.ui.PanelWithAnchor;
+import com.intellij.ui.RawCommandLineEditor;
import com.intellij.ui.components.JBLabel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.groovy.GroovyFileType;
import javax.swing.*;
import java.awt.*;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
public class GroovyRunConfigurationEditor extends SettingsEditor<GroovyScriptRunConfiguration> implements PanelWithAnchor {
- private DefaultComboBoxModel myModulesModel;
- private JComboBox myModulesBox;
+ private ModulesComboBox myModulesBox;
private JPanel myMainPanel;
private RawCommandLineEditor myVMParameters;
private RawCommandLineEditor myParameters;
@@ -93,20 +89,15 @@ public class GroovyRunConfigurationEditor extends SettingsEditor<GroovyScriptRun
myDebugCB.setEnabled(true);
myDebugCB.setSelected(configuration.isDebugEnabled());
- myModulesModel.removeAllElements();
- List<Module> modules = new ArrayList<Module>(configuration.getValidModules());
- Collections.sort(modules, ModulesAlphaComparator.INSTANCE);
- for (Module module : modules) {
- myModulesModel.addElement(module);
- }
- myModulesModel.setSelectedItem(configuration.getModule());
+ myModulesBox.setModules(configuration.getValidModules());
+ myModulesBox.setSelectedModule(configuration.getModule());
myEnvVariables.setEnvs(configuration.getEnvs());
}
@Override
public void applyEditorTo(GroovyScriptRunConfiguration configuration) throws ConfigurationException {
- configuration.setModule((Module) myModulesBox.getSelectedItem());
+ configuration.setModule(myModulesBox.getSelectedModule());
configuration.setVMParameters(myVMParameters.getText());
configuration.setDebugEnabled(myDebugCB.isSelected());
configuration.setScriptParameters(myParameters.getText());
@@ -118,27 +109,8 @@ public class GroovyRunConfigurationEditor extends SettingsEditor<GroovyScriptRun
@Override
@NotNull
public JComponent createEditor() {
- myModulesModel = new DefaultComboBoxModel();
- myModulesBox.setModel(myModulesModel);
myDebugCB.setEnabled(true);
myDebugCB.setSelected(false);
-
- myModulesBox.setRenderer(new ListCellRendererWrapper<Module>() {
- @Override
- public void customize(JList list, Module module, int index, boolean selected, boolean hasFocus) {
- if (module != null) {
- setIcon(ModuleType.get(module).getIcon());
- setText(module.getName());
- }
- }
- });
- new ComboboxSpeedSearch(myModulesBox) {
- @Override
- protected String getElementText(Object element) {
- return element instanceof Module ? ((Module)element).getName() : "";
- }
- };
-
return myMainPanel;
}
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyScriptRunner.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyScriptRunner.java
index f4457d9bc8c2..743895151093 100644
--- a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyScriptRunner.java
+++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/GroovyScriptRunner.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2014 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.
@@ -32,6 +32,7 @@ import com.intellij.util.PathUtil;
import com.intellij.util.PathsList;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import org.jetbrains.plugins.groovy.GroovyLanguage;
import org.jetbrains.plugins.groovy.config.GroovyConfigUtils;
import java.io.File;
@@ -66,7 +67,7 @@ public abstract class GroovyScriptRunner {
public static String getPathInConf(String fileName) {
try {
- final String jarPath = PathUtil.getJarPathForClass(GroovyScriptRunner.class);
+ final String jarPath = PathUtil.getJarPathForClass(GroovyLanguage.class);
if (new File(jarPath).isFile()) { //jar; distribution mode
return new File(jarPath, "../" + fileName).getCanonicalPath();
}