diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java index 9dfc0796b55b..f1d1cba26af4 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarListener.java @@ -16,6 +16,8 @@ package com.intellij.ide.navigationToolbar; import com.intellij.ProjectTopics; +import com.intellij.ide.actions.CopyAction; +import com.intellij.ide.actions.CutAction; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.AnActionListener; import com.intellij.openapi.project.Project; @@ -238,15 +240,21 @@ public class NavBarListener extends WolfTheProblemSolver.ProblemListener } @Override public void afterActionPerformed(AnAction action, DataContext dataContext, AnActionEvent event) { - if (!(action instanceof PopupAction)) { - if (myPanel.isInFloatingMode()) { - myPanel.hideHint(); - } else { - myPanel.cancelPopup(); - } + if (shouldSkipAction(action)) return; + + if (myPanel.isInFloatingMode()) { + myPanel.hideHint(); + } else { + myPanel.cancelPopup(); } } + private static boolean shouldSkipAction(AnAction action) { + return action instanceof PopupAction + || action instanceof CopyAction + || action instanceof CutAction; + } + //---- Ignored @Override public void beforeActionPerformed(AnAction action, DataContext dataContext, AnActionEvent event) {} diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/MapArgumentCompletionProvider.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/MapArgumentCompletionProvider.java index d14fe7b9c916..b2300d53107b 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/MapArgumentCompletionProvider.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/MapArgumentCompletionProvider.java @@ -88,10 +88,14 @@ class MapArgumentCompletionProvider extends CompletionProvider inLabel = psiElement(GroovyTokenTypes.mIDENT).withParent(psiElement(GrArgumentLabel.class).withParent( + GroovyPatterns.methodNamedParameter(null))); - contributor.extend(CompletionType.BASIC, psiElement(GroovyTokenTypes.mIDENT).withParent(psiElement(GrArgumentLabel.class).withParent( - GroovyPatterns.methodNamedParameter(null))), instance); + contributor.extend(CompletionType.BASIC, inArgumentListOfCall, instance); + contributor.extend(CompletionType.BASIC, inLabel, instance); + + contributor.extend(CompletionType.SMART, inArgumentListOfCall, instance); + contributor.extend(CompletionType.SMART, inLabel, instance); } @Override @@ -188,11 +192,11 @@ class MapArgumentCompletionProvider extends CompletionProvider) + } +} +""") + myFixture.configureFromExistingVirtualFile file.virtualFile + + def res = myFixture.complete(CompletionType.SMART) + assertNotNull(res) + assertSize(2, res) + } + +}