Merge remote-tracking branch 'origin/master'

This commit is contained in:
Ekaterina Tuzova
2014-11-05 15:40:23 +03:00
61 changed files with 413 additions and 162 deletions
@@ -355,29 +355,31 @@ public class Java15APIUsageInspectionBase extends BaseJavaBatchLocalInspectionTo
}
@Nullable
public static String getSignature(PsiMember member) {
private static String getSignature(@Nullable PsiMember member) {
if (member instanceof PsiClass) {
return ((PsiClass)member).getQualifiedName();
}
if (member instanceof PsiField) {
return getSignature(member.getContainingClass()) + "#" + member.getName();
String containingClass = getSignature(member.getContainingClass());
return containingClass == null ? null : containingClass + "#" + member.getName();
}
if (member instanceof PsiMethod) {
final PsiMethod method = (PsiMethod)member;
String containingClass = getSignature(member.getContainingClass());
if (containingClass == null) return null;
StringBuilder buf = new StringBuilder();
buf.append(getSignature(method.getContainingClass()));
buf.append(containingClass);
buf.append('#');
buf.append(method.getName());
buf.append('(');
final PsiType[] params = method.getSignature(PsiSubstitutor.EMPTY).getParameterTypes();
for (PsiType type : params) {
for (PsiType type : method.getSignature(PsiSubstitutor.EMPTY).getParameterTypes()) {
buf.append(type.getCanonicalText());
buf.append(";");
}
buf.append(')');
return buf.toString();
}
assert false;
return null;
}
}
@@ -134,6 +134,10 @@ public class JavaClassNameCompletionContributor extends CompletionContributor {
});
}
static LookupElement highlightIfNeeded(JavaPsiClassReferenceElement element, CompletionParameters parameters) {
return JavaCompletionUtil.highlightIfNeeded(null, element, element.getObject(), parameters.getPosition());
}
public static JavaPsiClassReferenceElement createClassLookupItem(final PsiClass psiClass, final boolean inJavaContext) {
return AllClassesGetter.createLookupItem(psiClass, inJavaContext ? JavaClassNameInsertHandler.JAVA_CLASS_INSERT_HANDLER
: AllClassesGetter.TRY_SHORTENING);
@@ -264,7 +264,7 @@ public class JavaCompletionContributor extends CompletionContributor {
return PsiUtilCore.findLanguageFromElement(position).isKindOf(JavaLanguage.INSTANCE);
}
public static void addAllClasses(CompletionParameters parameters,
public static void addAllClasses(final CompletionParameters parameters,
final CompletionResultSet result,
final InheritorsHolder inheritors) {
if (!isClassNamePossible(parameters) || !mayStartClassName(result)) {
@@ -276,7 +276,7 @@ public class JavaCompletionContributor extends CompletionContributor {
@Override
public void consume(LookupElement element) {
if (!inheritors.alreadyProcessed(element)) {
result.addElement(element);
result.addElement(JavaClassNameCompletionContributor.highlightIfNeeded((JavaPsiClassReferenceElement)element, parameters));
}
}
});
@@ -22,6 +22,7 @@ import com.intellij.codeInsight.completion.scope.JavaCompletionProcessor;
import com.intellij.codeInsight.completion.util.ParenthesesInsertHandler;
import com.intellij.codeInsight.guess.GuessManager;
import com.intellij.codeInsight.lookup.*;
import com.intellij.codeInspection.java15api.Java15APIUsageInspectionBase;
import com.intellij.lang.StdLanguages;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.diagnostic.Logger;
@@ -50,6 +51,7 @@ import com.intellij.psi.util.PsiFormatUtil;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.psi.util.TypeConversionUtil;
import com.intellij.ui.JBColor;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.NullableFunction;
import com.intellij.util.PairConsumer;
@@ -60,7 +62,9 @@ import gnu.trove.THashSet;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.awt.*;
import java.util.*;
import java.util.List;
import static com.intellij.patterns.PlatformPatterns.psiElement;
@@ -383,7 +387,7 @@ public class JavaCompletionUtil {
}
mentioned.add(CompletionUtil.getOriginalOrSelf((PsiMember)o));
}
set.add(highlightIfNeeded(qualifierType, castQualifier(item, castItem, plainQualifier, processor), o));
set.add(highlightIfNeeded(qualifierType, castQualifier(item, castItem, plainQualifier, processor), o, element));
}
}
@@ -503,11 +507,37 @@ public class JavaCompletionUtil {
return type instanceof PsiClassType ? ((PsiClassType)type).rawType() : type;
}
public static LookupElement highlightIfNeeded(PsiType qualifierType, LookupElement item, Object object) {
return containsMember(qualifierType, object) ? highlight(item) : item;
@NotNull
public static LookupElement highlightIfNeeded(@Nullable PsiType qualifierType,
@NotNull LookupElement item,
@NotNull Object object,
@NotNull PsiElement place) {
final boolean bold = containsMember(qualifierType, object);
boolean red = false;
if (object instanceof PsiMember) {
red = Java15APIUsageInspectionBase.isForbiddenApiUsage((PsiMember)object, PsiUtil.getLanguageLevel(place));
}
LookupElement result = item;
if (bold || red) {
final Color fg = red ? JBColor.RED : null;
result = LookupElementDecorator.withRenderer(result, new LookupElementRenderer<LookupElementDecorator<LookupElement>>() {
@Override
public void renderElement(LookupElementDecorator<LookupElement> element, LookupElementPresentation presentation) {
element.getDelegate().renderElement(presentation);
presentation.setItemTextBold(bold);
if (fg != null) {
presentation.setItemTextForeground(fg);
}
}
});
}
if (bold) {
result = PrioritizedLookupElement.withExplicitProximity(result, 1);
}
return result;
}
public static boolean containsMember(PsiType qualifierType, Object object) {
public static boolean containsMember(@Nullable PsiType qualifierType, @NotNull Object object) {
if (qualifierType instanceof PsiArrayType && object instanceof PsiMember) { //length and clone()
PsiFile file = ((PsiMember)object).getContainingFile();
if (file == null || file.getVirtualFile() == null) { //yes, they're a bit dummy
@@ -20,7 +20,6 @@ import com.intellij.codeInsight.completion.impl.BetterPrefixMatcher;
import com.intellij.codeInsight.completion.impl.CamelHumpMatcher;
import com.intellij.codeInsight.lookup.AutoCompletionPolicy;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
@@ -93,7 +92,7 @@ public class JavaNoVariantsDelegator extends CompletionContributor {
suggestCollectionUtilities(parameters, result, position);
if (parameters.getInvocationCount() <= 1 &&
JavaCompletionContributor.mayStartClassName(result) &&
(JavaCompletionContributor.mayStartClassName(result) || suggestMetaAnnotations(parameters)) &&
JavaCompletionContributor.isClassNamePossible(parameters)) {
suggestNonImportedClasses(parameters, result, null);
return;
@@ -145,7 +144,7 @@ public class JavaNoVariantsDelegator extends CompletionContributor {
if (ref != null) {
for (final LookupElement item : JavaSmartCompletionContributor.completeReference(position, ref, filter, true, true, parameters,
result.getPrefixMatcher())) {
qualifiedCollector.addElement(new JavaChainLookupElement(base, item));
qualifiedCollector.addElement(JavaCompletionUtil.highlightIfNeeded(null, new JavaChainLookupElement(base, item), item.getObject(), position));
}
}
}
@@ -178,7 +177,7 @@ public class JavaNoVariantsDelegator extends CompletionContributor {
return allClasses;
}
private static void suggestNonImportedClasses(CompletionParameters parameters, final CompletionResultSet result, @Nullable final InheritorsHolder inheritorsHolder) {
private static void suggestNonImportedClasses(final CompletionParameters parameters, final CompletionResultSet result, @Nullable final InheritorsHolder inheritorsHolder) {
JavaClassNameCompletionContributor.addAllClasses(parameters,
true, result.getPrefixMatcher(), new Consumer<LookupElement>() {
@Override
@@ -189,6 +188,7 @@ public class JavaNoVariantsDelegator extends CompletionContributor {
JavaPsiClassReferenceElement classElement = element.as(JavaPsiClassReferenceElement.CLASS_CONDITION_KEY);
if (classElement != null) {
classElement.setAutoCompletionPolicy(AutoCompletionPolicy.NEVER_AUTOCOMPLETE);
element = JavaClassNameCompletionContributor.highlightIfNeeded(classElement, parameters);
}
result.addElement(element);
@@ -6,6 +6,7 @@ package com.intellij.codeInsight.completion
import com.intellij.JavaTestUtil
import com.intellij.codeInsight.generation.OverrideImplementExploreUtil
import com.intellij.codeInsight.lookup.LookupElement
import com.intellij.codeInsight.lookup.LookupElementPresentation
import com.intellij.codeInsight.lookup.LookupManager
import com.intellij.codeInsight.lookup.impl.LookupImpl
import com.intellij.openapi.application.ApplicationManager
@@ -18,14 +19,17 @@ import com.intellij.openapi.roots.ModuleRootManager
import com.intellij.openapi.roots.SourceFolder
import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.pom.java.LanguageLevel
import com.intellij.psi.JavaPsiFacade
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.PsiManager
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.testFramework.IdeaTestUtil
import com.intellij.testFramework.PsiTestUtil
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase
import com.intellij.ui.JBColor
import org.jetbrains.annotations.NotNull
/**
@@ -171,4 +175,33 @@ public class Test {
assert oldCount == tracker.javaStructureModificationCount
}
public void testForbiddenApiVariants() {
IdeaTestUtil.setModuleLanguageLevel(myModule, LanguageLevel.JDK_1_4)
myFixture.addClass("""\
package java.nio.channels;
public class SocketChannel {
public SocketChannel shutdownInput() {}
public boolean isConnected();
}""")
myFixture.addClass("package java.nio.channels; public class AsynchronousServerSocketChannel { }")
myFixture.configureByText 'a.java', 'class Foo {{ new SocketChanne<caret>x }}'
myFixture.completeBasic()
def p = LookupElementPresentation.renderElement(myFixture.lookup.items[0])
assert p.itemText == 'SocketChannel'
assert p.itemTextForeground == JBColor.foreground()
p = LookupElementPresentation.renderElement(myFixture.lookup.items.find { it.lookupString == 'AsynchronousServerSocketChannel' })
assert p.itemTextForeground == JBColor.RED
myFixture.type('\n.s')
myFixture.completeBasic()
p = LookupElementPresentation.renderElement(myFixture.lookup.items[0])
assert p.itemText == 'shutdownInput'
assert p.itemTextForeground == JBColor.RED
p = LookupElementPresentation.renderElement(myFixture.lookup.items.find { it.lookupString == 'isConnected' })
assert p.itemTextForeground == JBColor.foreground()
}
}
@@ -1147,6 +1147,12 @@ class XInternalError {}
assertFirstStringItems "XInternalError", "XInternalTimerServiceController"
}
public void testMetaAnnotation() {
myFixture.configureByText "a.java", "@<caret> @interface Anno {}"
myFixture.complete(CompletionType.BASIC)
assert myFixture.lookup.items.find { it.lookupString == 'Retention' }
}
public void testAnnotationClassFromWithinAnnotation() { doTest() }
public void testStaticallyImportedFieldsTwice() {
@@ -24,7 +24,7 @@ import javax.swing.*;
public abstract class PushTargetPanel<T extends PushTarget> extends JPanel {
abstract public void render(@NotNull ColoredTreeCellRenderer renderer);
abstract public void render(@NotNull ColoredTreeCellRenderer renderer, boolean isSelected);
@NotNull
abstract public T getValue();
@@ -41,6 +41,8 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
@@ -366,7 +368,7 @@ public class PushController implements Disposable {
public DefaultMutableTreeNode fun(final VcsError error) {
VcsLinkedText errorLinkText = new VcsLinkedText(error.getText(), new VcsLinkListener() {
@Override
public void hyperlinkActivated(@NotNull DefaultMutableTreeNode sourceNode) {
public void hyperlinkActivated(@NotNull DefaultMutableTreeNode sourceNode, @NotNull MouseEvent event) {
error.handleError(new CommitLoader() {
@Override
public void reloadCommits() {
@@ -509,8 +511,11 @@ public class PushController implements Disposable {
if (i >= commitsNum) {
final VcsLinkedText moreCommitsLink = new VcsLinkedText("<a href='loadMore'>...</a>", new VcsLinkListener() {
@Override
public void hyperlinkActivated(@NotNull DefaultMutableTreeNode sourceNode) {
addMoreCommits((RepositoryNode)sourceNode);
public void hyperlinkActivated(@NotNull DefaultMutableTreeNode sourceNode, @NotNull MouseEvent event) {
TreeNode parent = sourceNode.getParent();
if (parent instanceof RepositoryNode) {
addMoreCommits((RepositoryNode)parent);
}
}
});
childrenToShown.add(new TextWithLinkNode(moreCommitsLink));
@@ -15,7 +15,6 @@
*/
package com.intellij.dvcs.push.ui;
import com.intellij.dvcs.push.PushTargetPanel;
import com.intellij.icons.AllIcons;
import com.intellij.ide.actions.EditSourceAction;
import com.intellij.idea.ActionsBundle;
@@ -337,7 +336,7 @@ public class PushLog extends JPanel implements TypeSafeDataProvider {
Object tag = me.getClickCount() >= 1
? PushLogTreeUtil.getTagAtForRenderer(myTreeCellRenderer, me)
: null;
return tag instanceof PushTargetPanel;
return tag instanceof VcsEditableComponent;
}
//if keyboard event - then anEvent will be null =( See BasicTreeUi
TreePath treePath = myTree.getAnchorSelectionPath();
@@ -22,6 +22,7 @@ import com.intellij.ui.ColoredTreeCellRenderer;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.util.ui.GraphicsUtil;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -95,7 +96,7 @@ public class RepositoryNode extends CheckedTreeNode implements EditableTreeNode,
renderer
.append(myRepositoryPanel.getArrow(), isChecked() ? SimpleTextAttributes.REGULAR_ATTRIBUTES : SimpleTextAttributes.GRAY_ATTRIBUTES);
PushTargetPanel pushTargetPanel = myRepositoryPanel.getTargetPanel();
pushTargetPanel.render(renderer);
pushTargetPanel.render(renderer, renderer.getTree().isPathSelected(TreeUtil.getPathFromRoot(this)));
int maxSize = Math.max(myRepositoryPanel.getCheckBoxHeight(), myLoadingIcon.getIconHeight());
int rendererHeight = renderer.getPreferredSize().height;
@@ -18,6 +18,7 @@ package com.intellij.dvcs.push.ui;
import com.intellij.dvcs.push.PushTargetPanel;
import com.intellij.ui.ColoredTreeCellRenderer;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.util.ui.tree.TreeUtil;
import org.jetbrains.annotations.NotNull;
public class SingleRepositoryNode extends RepositoryNode {
@@ -52,6 +53,6 @@ public class SingleRepositoryNode extends RepositoryNode {
renderer.append(myRepositoryPanel.getSourceName(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
renderer.append(myRepositoryPanel.getArrow(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
PushTargetPanel pushTargetPanel = myRepositoryPanel.getTargetPanel();
pushTargetPanel.render(renderer);
pushTargetPanel.render(renderer, renderer.getTree().isPathSelected(TreeUtil.getPathFromRoot(this)));
}
}
@@ -16,13 +16,11 @@
package com.intellij.dvcs.push.ui;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.ui.ColoredTreeCellRenderer;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.util.ui.tree.TreeUtil;
import org.jetbrains.annotations.NotNull;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeNode;
public class TextWithLinkNode extends DefaultMutableTreeNode implements CustomRenderedTreeNode {
@@ -32,21 +30,10 @@ public class TextWithLinkNode extends DefaultMutableTreeNode implements CustomRe
myLinkedText = linkedText;
}
public void fireOnClick(@NotNull TextWithLinkNode relatedNode) {
TreeNode parent = relatedNode.getParent();
if (parent instanceof RepositoryNode) {
myLinkedText.hyperLinkActivate((RepositoryNode)parent);
}
}
@Override
public void render(@NotNull ColoredTreeCellRenderer renderer) {
renderer.append(myLinkedText.getTextBefore(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
String linkedText = myLinkedText.getLinkText();
if (!StringUtil.isEmptyOrSpaces(linkedText)) {
renderer.append(" ");
renderer.append(myLinkedText.getLinkText(), SimpleTextAttributes.SYNTHETIC_ATTRIBUTES, this);
}
renderer.append(myLinkedText.getTextAfter(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
renderer.append(" ");
myLinkedText.setSelected(renderer.getTree().isPathSelected(TreeUtil.getPathFromRoot(this)));
myLinkedText.render(renderer);
}
}
@@ -20,15 +20,43 @@ import com.intellij.ui.CheckboxTree;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import java.awt.*;
import java.awt.event.MouseEvent;
public class VcsBranchEditorListener extends LinkMouseListenerBase {
private final CheckboxTree.CheckboxTreeCellRenderer myRenderer;
private VcsLinkedText underlined;
public VcsBranchEditorListener(final CheckboxTree.CheckboxTreeCellRenderer renderer) {
myRenderer = renderer;
}
@Override
public void mouseMoved(MouseEvent e) {
Component component = (Component)e.getSource();
Object tag = getTagAt(e);
boolean shouldRepaint = false;
if (underlined != null) {
underlined.setUnderlined(false);
shouldRepaint = true;
}
if (tag != null && tag instanceof VcsLinkedText) {
component.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
VcsLinkedText linkedText = (VcsLinkedText)tag;
linkedText.setUnderlined(true);
underlined = linkedText;
shouldRepaint = true;
}
else {
super.mouseMoved(e);
}
if (shouldRepaint) {
myRenderer.getTextRenderer().getTree().repaint();
}
}
@Nullable
@Override
protected Object getTagAt(@NotNull final MouseEvent e) {
@@ -36,12 +64,13 @@ public class VcsBranchEditorListener extends LinkMouseListenerBase {
}
protected void handleTagClick(@Nullable final Object tag, @NotNull MouseEvent event) {
if (tag instanceof TextWithLinkNode) {
TextWithLinkNode textWithLink = (TextWithLinkNode)tag;
textWithLink.fireOnClick(textWithLink);
}
if (tag instanceof ExtraEditControl) {
((ExtraEditControl)tag).click(event);
if (tag instanceof VcsLinkedText) {
VcsLinkedText textWithLink = (VcsLinkedText)tag;
final TreePath path = myRenderer.getTextRenderer().getTree().getPathForLocation(event.getX(), event.getY());
if (path == null) return;
Object node = path.getLastPathComponent();
if (node == null || (!(node instanceof DefaultMutableTreeNode))) return;
textWithLink.fireOnClick((DefaultMutableTreeNode)node, event);
}
if (tag instanceof Runnable) {
((Runnable)tag).run();
@@ -15,15 +15,11 @@
*/
package com.intellij.dvcs.push.ui;
import org.jetbrains.annotations.NotNull;
import java.awt.event.MouseEvent;
/**
* Event on this component should start edit mode for appropriate path in JTree
*
* @see com.intellij.dvcs.push.ui.PushLog
*/
public interface ExtraEditControl {
void click(@NotNull MouseEvent event);
public interface VcsEditableComponent {
}
@@ -0,0 +1,26 @@
/*
* 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 com.intellij.dvcs.push.ui;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class VcsEditableTextComponent extends VcsLinkedText implements VcsEditableComponent {
public VcsEditableTextComponent(@NotNull String text, @Nullable VcsLinkListener listener) {
super(text, listener);
}
}
@@ -18,7 +18,8 @@ package com.intellij.dvcs.push.ui;
import org.jetbrains.annotations.NotNull;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.event.MouseEvent;
public interface VcsLinkListener {
void hyperlinkActivated(@NotNull DefaultMutableTreeNode sourceNode);
void hyperlinkActivated(@NotNull DefaultMutableTreeNode sourceNode, @NotNull MouseEvent event);
}
@@ -15,15 +15,18 @@
*/
package com.intellij.dvcs.push.ui;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.ui.ColoredTreeCellRenderer;
import com.intellij.ui.SimpleTextAttributes;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.event.MouseEvent;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class VcsLinkedText {
private static final Pattern HREF_PATTERN = Pattern.compile("<a(?:\\s+href\\s*=\\s*[\"']([^\"']*)[\"'])?\\s*>([^<]*)</a>");
@NotNull private String myTextBefore;
@@ -31,6 +34,8 @@ public class VcsLinkedText {
@NotNull private String myHandledLink;
@Nullable private final VcsLinkListener myLinkListener;
private boolean mySelected;
private boolean myUnderlined;
public VcsLinkedText(@NotNull String text, @Nullable VcsLinkListener listener) {
Matcher aMatcher = HREF_PATTERN.matcher(text);
@@ -47,24 +52,38 @@ public class VcsLinkedText {
myLinkListener = listener;
}
@NotNull
public String getTextBefore() {
return myTextBefore;
public void updateLinkText(@NotNull String text) {
myHandledLink = text;
}
@NotNull
public String getTextAfter() {
return myTextAfter;
}
@NotNull
public String getLinkText() {
return myHandledLink;
}
public void hyperLinkActivate(@NotNull DefaultMutableTreeNode relatedNode) {
public void fireOnClick(@NotNull DefaultMutableTreeNode relatedNode, @NotNull MouseEvent event) {
if (myLinkListener != null) {
myLinkListener.hyperlinkActivated(relatedNode);
myLinkListener.hyperlinkActivated(relatedNode, event);
}
}
public void render(@NotNull ColoredTreeCellRenderer renderer) {
if (!StringUtil.isEmptyOrSpaces(myTextBefore)) {
renderer.append(myTextBefore, SimpleTextAttributes.REGULAR_ATTRIBUTES);
renderer.append(" ");
}
if (!StringUtil.isEmptyOrSpaces(myHandledLink)) {
renderer.append(myHandledLink,
myUnderlined || mySelected ? SimpleTextAttributes.LINK_ATTRIBUTES : SimpleTextAttributes.SYNTHETIC_ATTRIBUTES, this);
}
renderer.append(myTextAfter, SimpleTextAttributes.REGULAR_ATTRIBUTES);
}
public void setUnderlined(boolean underlined) {
myUnderlined = underlined;
}
public void setSelected(boolean selected) {
mySelected = selected;
}
@NotNull
public String getText() {
return myTextBefore + myHandledLink + myTextAfter;
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 868 B

@@ -28,6 +28,7 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.fileEditor.*;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.WriteExternalException;
import com.intellij.openapi.vfs.VirtualFile;
@@ -61,6 +62,9 @@ public class PsiAwareTextEditorProvider extends TextEditorProvider implements As
state = CodeFoldingManager.getInstance(project).buildInitialFoldings(document);
}
}
catch (ProcessCanceledException e) {
throw e;
}
catch (Exception e) {
LOG.error("Error building initial foldings", e);
}
@@ -43,6 +43,7 @@ import com.intellij.openapi.fileTypes.FileTypeEvent;
import com.intellij.openapi.fileTypes.FileTypeListener;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.preview.PreviewManager;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.project.DumbAwareRunnable;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.PossiblyDumbAware;
@@ -782,6 +783,9 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Projec
}
});
}
catch (ProcessCanceledException e) {
throw e;
}
catch (Exception e) {
LOG.error(e);
}
@@ -31,6 +31,6 @@ public class FlatWelcomeFrameProvider implements WelcomeFrameProvider {
public static boolean isAvailable() {
return Registry.is("ide.new.welcome.screen")
&& (PlatformUtils.isIntelliJ() || PlatformUtils.isCidr());
&& (PlatformUtils.isIntelliJ() || PlatformUtils.isCidr() || PlatformUtils.isWebStorm());
}
}
@@ -15,6 +15,7 @@
*/
package com.intellij.platform;
import com.intellij.icons.AllIcons;
import com.intellij.ide.RecentProjectsManager;
import com.intellij.idea.ActionsBundle;
import com.intellij.internal.statistic.UsageTrigger;
@@ -33,6 +34,7 @@ import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.impl.welcomeScreen.NewWelcomeScreen;
import com.intellij.projectImport.ProjectOpenedCallback;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -111,4 +113,11 @@ public class NewDirectoryProjectAction extends AnAction implements DumbAware {
protected Object showSettings(DirectoryProjectGenerator generator, VirtualFile baseDir) throws ProcessCanceledException {
return generator.showGenerationSettings(baseDir);
}
@Override
public void update(@NotNull AnActionEvent e) {
if (NewWelcomeScreen.isNewWelcomeScreen(e)) {
e.getPresentation().setIcon(AllIcons.Welcome.CreateNewProject);
}
}
}
@@ -1173,6 +1173,7 @@ public class AllIcons {
public static class Welcome {
public static final Icon CreateDesktopEntry = IconLoader.getIcon("/welcome/createDesktopEntry.png"); // 32x32
public static final Icon CreateNewProject = IconLoader.getIcon("/welcome/createNewProject.png"); // 16x16
public static final Icon CreateNewProjectfromExistingFiles = IconLoader.getIcon("/welcome/CreateNewProjectfromExistingFiles.png"); // 16x16
public static final Icon FromVCS = IconLoader.getIcon("/welcome/fromVCS.png"); // 16x16
public static final Icon ImportProject = IconLoader.getIcon("/welcome/importProject.png"); // 16x16
public static final Icon OpenProject = IconLoader.getIcon("/welcome/openProject.png"); // 16x16
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2009 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.
@@ -15,13 +15,14 @@
*/
package com.intellij.xdebugger.impl.actions;
import org.jetbrains.annotations.NotNull;
import com.intellij.openapi.project.DumbAware;
import com.intellij.xdebugger.impl.DebuggerSupport;
import org.jetbrains.annotations.NotNull;
/**
* @author nik
*/
public class StepOverAction extends XDebuggerActionBase {
public class StepOverAction extends XDebuggerActionBase implements DumbAware {
@NotNull
protected DebuggerActionHandler getHandler(@NotNull final DebuggerSupport debuggerSupport) {
return debuggerSupport.getStepOverHandler();
@@ -16,8 +16,10 @@
package git4idea.push;
import com.intellij.dvcs.push.PushTargetPanel;
import com.intellij.dvcs.push.ui.ExtraEditControl;
import com.intellij.dvcs.push.ui.PushTargetTextField;
import com.intellij.dvcs.push.ui.VcsEditableTextComponent;
import com.intellij.dvcs.push.ui.VcsLinkListener;
import com.intellij.dvcs.push.ui.VcsLinkedText;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.ui.ValidationInfo;
import com.intellij.openapi.ui.popup.JBPopupFactory;
@@ -38,6 +40,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.text.ParseException;
@@ -52,9 +55,9 @@ public class GitPushTargetPanel extends PushTargetPanel<GitPushTarget> {
private static final String SEPARATOR = " : ";
@NotNull private final GitRepository myRepository;
@NotNull private final VcsEditableTextComponent myTargetRenderedComponent;
@NotNull private final PushTargetTextField myTargetTextField;
@NotNull private final JLabel myRemoteLabel;
@NotNull private final ExtraEditControl myEditRemoteControl;
@NotNull private final VcsLinkedText myRemoteRenderedComponent;
@Nullable private GitPushTarget myCurrentTarget;
@Nullable private String myError;
@@ -85,22 +88,20 @@ public class GitPushTargetPanel extends PushTargetPanel<GitPushTarget> {
initialBranch = getTextFieldText(defaultTarget);
initialRemote = defaultTarget.getBranch().getRemote().getName();
}
myEditRemoteControl = new ExtraEditControl() {
myTargetRenderedComponent = new VcsEditableTextComponent("<a href=''>" + initialBranch + "</a>", null);
myTargetTextField = new PushTargetTextField(repository.getProject(), getTargetNames(myRepository), initialBranch);
myRemoteRenderedComponent = new VcsLinkedText("<a href=''>" + initialRemote + "</a>", new VcsLinkListener() {
@Override
public void click(@NotNull MouseEvent event) {
public void hyperlinkActivated(@NotNull DefaultMutableTreeNode sourceNode, @NotNull MouseEvent event) {
showRemoteSelector(event);
}
};
myTargetTextField = new PushTargetTextField(repository.getProject(), getTargetNames(myRepository), initialBranch);
myRemoteLabel = new JBLabel(initialRemote);
});
setLayout(new BorderLayout());
setOpaque(false);
JPanel remoteAndSeparator = new JPanel(new BorderLayout());
remoteAndSeparator.setOpaque(false);
remoteAndSeparator.add(myRemoteLabel, BorderLayout.CENTER);
remoteAndSeparator.add(new JBLabel(myRemoteRenderedComponent.getText()), BorderLayout.CENTER);
remoteAndSeparator.add(new JBLabel(SEPARATOR), BorderLayout.EAST);
add(remoteAndSeparator, BorderLayout.WEST);
@@ -121,7 +122,7 @@ public class GitPushTargetPanel extends PushTargetPanel<GitPushTarget> {
ListPopup popup = JBPopupFactory.getInstance().createListPopup(new BaseListPopupStep<String>(null, remotes) {
@Override
public PopupStep onChosen(String selectedValue, boolean finalChoice) {
myRemoteLabel.setText(selectedValue);
myRemoteRenderedComponent.updateLinkText(selectedValue);
if (myFireOnChangeAction != null) {
myFireOnChangeAction.run();
}
@@ -142,14 +143,15 @@ public class GitPushTargetPanel extends PushTargetPanel<GitPushTarget> {
}
@Override
public void render(@NotNull final ColoredTreeCellRenderer renderer) {
public void render(@NotNull ColoredTreeCellRenderer renderer, boolean isSelected) {
if (myError != null) {
renderer.append(myError, SimpleTextAttributes.ERROR_ATTRIBUTES);
}
else {
String currentRemote = myRemoteLabel.getText();
String currentRemote = myRemoteRenderedComponent.getText();
if (getRemotes().size() > 1) {
renderer.append(currentRemote, SimpleTextAttributes.SYNTHETIC_ATTRIBUTES, myEditRemoteControl);
myRemoteRenderedComponent.setSelected(isSelected);
myRemoteRenderedComponent.render(renderer);
}
else {
renderer.append(currentRemote, SimpleTextAttributes.REGULAR_ATTRIBUTES);
@@ -160,7 +162,8 @@ public class GitPushTargetPanel extends PushTargetPanel<GitPushTarget> {
if (target.isNewBranchCreated()) {
renderer.append("+", SimpleTextAttributes.SYNTHETIC_ATTRIBUTES, this);
}
renderer.append(target.getBranch().getNameForRemoteOperations(), SimpleTextAttributes.SYNTHETIC_ATTRIBUTES, this);
myTargetRenderedComponent.setSelected(isSelected);
myTargetRenderedComponent.render(renderer);
}
}
@@ -185,10 +188,11 @@ public class GitPushTargetPanel extends PushTargetPanel<GitPushTarget> {
if (myError != null) {
return;
}
String remoteName = myRemoteLabel.getText();
String remoteName = myRemoteRenderedComponent.getText();
String branchName = myTargetTextField.getText();
try {
myCurrentTarget = GitPushTarget.parse(myRepository, remoteName, branchName);
myTargetRenderedComponent.updateLinkText(branchName);
}
catch (ParseException e) {
LOG.error("Invalid remote name shouldn't be allowed. [" + remoteName + ", " + branchName + "]", e);
@@ -202,7 +206,7 @@ public class GitPushTargetPanel extends PushTargetPanel<GitPushTarget> {
return new ValidationInfo(myError, myTargetTextField);
}
try {
GitPushTarget.parse(myRepository, myRemoteLabel.getText(), myTargetTextField.getText());
GitPushTarget.parse(myRepository, myRemoteRenderedComponent.getText(), myTargetTextField.getText());
return null;
}
catch (ParseException e) {
@@ -252,7 +252,7 @@ public class GrMainCompletionProvider extends CompletionProvider<CompletionParam
if (!(object instanceof PsiClass)) {
int priority = assignPriority(lookupElement, qualifierType);
lookupElement = JavaCompletionUtil.highlightIfNeeded(qualifierType,
PrioritizedLookupElement.withPriority(lookupElement, priority), object);
PrioritizedLookupElement.withPriority(lookupElement, priority), object, reference);
}
if ((object instanceof PsiMethod || object instanceof PsiField) &&
@@ -74,7 +74,7 @@ public class GroovyNoVariantsDelegator extends CompletionContributor {
private static void delegate(CompletionParameters parameters, CompletionResultSet result) {
if (parameters.getCompletionType() == CompletionType.BASIC) {
if (parameters.getInvocationCount() <= 1 &&
JavaCompletionContributor.mayStartClassName(result) &&
(JavaCompletionContributor.mayStartClassName(result) || suggestMetaAnnotations(parameters)) &&
GrMainCompletionProvider.isClassNamePossible(parameters.getPosition()) &&
!MapArgumentCompletionProvider.isMapKeyCompletion(parameters)) {
suggestNonImportedClasses(parameters, result);
@@ -19,6 +19,7 @@ import com.intellij.dvcs.DvcsUtil;
import com.intellij.dvcs.push.PushTargetPanel;
import com.intellij.dvcs.push.VcsError;
import com.intellij.dvcs.push.ui.PushTargetTextField;
import com.intellij.dvcs.push.ui.VcsEditableTextComponent;
import com.intellij.openapi.ui.ValidationInfo;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.ui.ColoredTreeCellRenderer;
@@ -37,25 +38,27 @@ public class HgPushTargetPanel extends PushTargetPanel<HgTarget> {
private final static String ENTER_REMOTE = "Enter Remote";
private final HgRepository myRepository;
private final TextFieldWithAutoCompletion<String> myDestTargetPanel;
private String myOldText;
private final VcsEditableTextComponent myTargetRenderedComponent;
public HgPushTargetPanel(@NotNull HgRepository repository, @Nullable HgTarget defaultTarget) {
setLayout(new BorderLayout());
setOpaque(false);
myRepository = repository;
final List<String> targetVariants = HgUtil.getTargetNames(repository);
myOldText = defaultTarget != null ? defaultTarget.getPresentation() : "";
myDestTargetPanel = new PushTargetTextField(repository.getProject(), targetVariants, myOldText);
String defaultText = defaultTarget != null ? defaultTarget.getPresentation() : "";
myTargetRenderedComponent = new VcsEditableTextComponent("<a href=''>" + defaultText + "</a>", null);
myDestTargetPanel = new PushTargetTextField(repository.getProject(), targetVariants, defaultText);
add(myDestTargetPanel, BorderLayout.CENTER);
}
@Override
public void render(@NotNull ColoredTreeCellRenderer renderer) {
public void render(@NotNull ColoredTreeCellRenderer renderer, boolean isSelected) {
String targetText = myDestTargetPanel.getText();
if (StringUtil.isEmptyOrSpaces(targetText)) {
renderer.append(ENTER_REMOTE, SimpleTextAttributes.GRAY_ITALIC_ATTRIBUTES, this);
}
renderer.append(targetText, SimpleTextAttributes.SYNTHETIC_ATTRIBUTES, this);
myTargetRenderedComponent.setSelected(isSelected);
myTargetRenderedComponent.render(renderer);
}
@Override
@@ -71,12 +74,12 @@ public class HgPushTargetPanel extends PushTargetPanel<HgTarget> {
@Override
public void fireOnCancel() {
myDestTargetPanel.setText(myOldText);
myDestTargetPanel.setText(myTargetRenderedComponent.getText());
}
@Override
public void fireOnChange() {
myOldText = myDestTargetPanel.getText();
myTargetRenderedComponent.updateLinkText(myDestTargetPanel.getText());
}
@Nullable
@@ -101,7 +101,7 @@ import java.util.concurrent.atomic.AtomicReference;
*/
public class Maven3ServerEmbedderImpl extends MavenRemoteObject implements MavenServerEmbedder {
private final static boolean USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING = System.getProperty("maven3.use.compat.resolver") != null;
private final static boolean USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING = System.getProperty("idea.maven3.use.compat.resolver") != null;
@NotNull private final DefaultPlexusContainer myContainer;
@NotNull private final Settings myMavenSettings;
@@ -15,16 +15,17 @@
*/
package org.jetbrains.idea.maven.navigator.actions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
public class AlwaysShowArtifactIdAction extends MavenProjectsNavigatorAction {
@Override
public boolean isSelected(MavenProjectsNavigator navigator) {
public boolean isSelected(@NotNull MavenProjectsNavigator navigator) {
return navigator.getAlwaysShowArtifactId();
}
@Override
public void setSelected(MavenProjectsNavigator navigator, boolean value) {
public void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value) {
navigator.setAlwaysShowArtifactId(value);
}
}
@@ -15,16 +15,17 @@
*/
package org.jetbrains.idea.maven.navigator.actions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
public class GroupProjectsAction extends MavenProjectsNavigatorAction {
@Override
public boolean isSelected(MavenProjectsNavigator navigator) {
public boolean isSelected(@NotNull MavenProjectsNavigator navigator) {
return navigator.getGroupModules();
}
@Override
public void setSelected(MavenProjectsNavigator navigator, boolean value) {
public void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value) {
navigator.setGroupModules(value);
}
}
@@ -16,6 +16,8 @@
package org.jetbrains.idea.maven.navigator.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
import org.jetbrains.idea.maven.utils.actions.MavenToggleAction;
@@ -23,19 +25,24 @@ import org.jetbrains.idea.maven.utils.actions.MavenToggleAction;
public abstract class MavenProjectsNavigatorAction extends MavenToggleAction {
@Override
protected boolean doIsSelected(AnActionEvent e) {
return isSelected(getNavigator(e));
final MavenProjectsNavigator navigator = getNavigator(e);
return navigator!= null && isSelected(navigator);
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
setSelected(getNavigator(e), state);
final MavenProjectsNavigator navigator = getNavigator(e);
if (navigator != null) {
setSelected(navigator, state);
}
}
private MavenProjectsNavigator getNavigator(AnActionEvent e) {
@Nullable
private static MavenProjectsNavigator getNavigator(AnActionEvent e) {
return MavenProjectsNavigator.getInstance(MavenActionUtil.getProject(e.getDataContext()));
}
protected abstract boolean isSelected(MavenProjectsNavigator navigator);
protected abstract boolean isSelected(@NotNull MavenProjectsNavigator navigator);
protected abstract void setSelected(MavenProjectsNavigator navigator, boolean value);
protected abstract void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value);
}
@@ -15,16 +15,17 @@
*/
package org.jetbrains.idea.maven.navigator.actions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
public class ShowBasicPhasesOnlyAction extends MavenProjectsNavigatorAction {
@Override
public boolean isSelected(MavenProjectsNavigator navigator) {
public boolean isSelected(@NotNull MavenProjectsNavigator navigator) {
return navigator.getShowBasicPhasesOnly();
}
@Override
public void setSelected(MavenProjectsNavigator navigator, boolean value) {
public void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value) {
navigator.setShowBasicPhasesOnly(value);
}
}
@@ -15,16 +15,17 @@
*/
package org.jetbrains.idea.maven.navigator.actions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
public class ShowIgnoredProjectsAction extends MavenProjectsNavigatorAction {
@Override
public boolean isSelected(MavenProjectsNavigator navigator) {
public boolean isSelected(@NotNull MavenProjectsNavigator navigator) {
return navigator.getShowIgnored();
}
@Override
public void setSelected(MavenProjectsNavigator navigator, boolean value) {
public void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value) {
navigator.setShowIgnored(value);
}
}
@@ -15,16 +15,17 @@
*/
package org.jetbrains.idea.maven.navigator.actions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
public class ShowVersionsAction extends MavenProjectsNavigatorAction {
@Override
public boolean isSelected(MavenProjectsNavigator navigator) {
public boolean isSelected(@NotNull MavenProjectsNavigator navigator) {
return navigator.getShowVersions();
}
@Override
public void setSelected(MavenProjectsNavigator navigator, boolean value) {
public void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value) {
navigator.setShowVersions(value);
}
}
@@ -18,7 +18,6 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
@@ -32,7 +31,9 @@ public class AddFileAsMavenProjectAction extends MavenAction {
public void actionPerformed(AnActionEvent e) {
final DataContext context = e.getDataContext();
MavenProjectsManager manager = MavenActionUtil.getProjectsManager(context);
manager.addManagedFilesOrUnignore(Collections.singletonList(getSelectedFile(context)));
if (manager != null) {
manager.addManagedFilesOrUnignore(Collections.singletonList(getSelectedFile(context)));
}
}
@Override
@@ -51,7 +52,7 @@ public class AddFileAsMavenProjectAction extends MavenAction {
private static boolean isExistingProjectFile(DataContext context, VirtualFile file) {
MavenProjectsManager manager = MavenActionUtil.getProjectsManager(context);
return manager.findProject(file) != null;
return manager != null && manager.findProject(file) != null;
}
@Nullable
@@ -32,6 +32,7 @@ public class AddManagedFilesAction extends MavenAction {
@Override
public void actionPerformed(AnActionEvent e) {
final MavenProjectsManager manager = MavenActionUtil.getProjectsManager(e.getDataContext());
if(manager == null) return;
FileChooserDescriptor singlePomSelection = new FileChooserDescriptor(true, false, false, false, false, true) {
@Override
public boolean isFileSelectable(VirtualFile file) {
@@ -18,6 +18,7 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.project.DumbAware;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
public class DownloadActionGroup extends DefaultActionGroup implements DumbAware {
@@ -28,7 +29,8 @@ public class DownloadActionGroup extends DefaultActionGroup implements DumbAware
}
private static boolean isEnabled(AnActionEvent e) {
return MavenActionUtil.hasProject(e.getDataContext())
&& MavenActionUtil.getProjectsManager(e.getDataContext()).isMavenizedProject();
if(!MavenActionUtil.hasProject(e.getDataContext())) return false;
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
return projectsManager != null && projectsManager.isMavenizedProject();
}
}
@@ -16,6 +16,7 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.model.MavenArtifact;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
@@ -49,7 +50,7 @@ public class DownloadSelectedSourcesAndDocsAction extends MavenProjectsAction {
return result == null ? Collections.<MavenArtifact>emptyList() : result;
}
protected void perform(MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
protected void perform(@NotNull MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
manager.scheduleArtifactsDownloading(mavenProjects, getDependencies(e), mySources, myDocs, null);
}
}
@@ -18,6 +18,7 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.utils.MavenSettings;
import org.jetbrains.idea.maven.utils.actions.MavenAction;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
@@ -28,7 +29,7 @@ public class EditSettingsAction extends MavenAction {
showSettingsFor(MavenActionUtil.getProject(e.getDataContext()));
}
protected static void showSettingsFor(Project project) {
protected static void showSettingsFor(@Nullable Project project) {
ShowSettingsUtil.getInstance().showSettingsDialog(project, MavenSettings.DISPLAY_NAME);
}
}
@@ -17,6 +17,7 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.actions.MavenAction;
@@ -33,8 +34,10 @@ public abstract class MavenProjectsAction extends MavenAction {
@Override
public void actionPerformed(AnActionEvent e) {
final DataContext context = e.getDataContext();
perform(MavenActionUtil.getProjectsManager(context), MavenActionUtil.getMavenProjects(context), e);
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return;
perform(projectsManager, MavenActionUtil.getMavenProjects(context), e);
}
protected abstract void perform(MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e);
protected abstract void perform(@NotNull MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e);
}
@@ -28,7 +28,9 @@ public abstract class MavenProjectsManagerAction extends MavenAction {
@Override
protected boolean isAvailable(AnActionEvent e) {
return super.isAvailable(e) && MavenActionUtil.getProjectsManager(e.getDataContext()).isMavenizedProject();
if(!super.isAvailable(e)) return false;
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
return projectsManager != null && projectsManager.isMavenizedProject();
}
protected abstract void perform(MavenProjectsManager manager);
@@ -101,7 +101,7 @@ public class MavenShowEffectivePom extends AnAction implements DumbAware {
}
MavenProjectsManager manager = MavenActionUtil.getProjectsManager(dataContext);
if(manager == null) return null;
MavenProject mavenProject = manager.findProject(file);
if (mavenProject == null) return null;
@@ -111,6 +111,7 @@ public class MavenShowEffectivePom extends AnAction implements DumbAware {
@Override
public void actionPerformed(AnActionEvent event) {
final Project project = MavenActionUtil.getProject(event.getDataContext());
if(project == null) return;
final VirtualFile file = findPomXml(event.getDataContext());
if (file == null) return;
@@ -16,6 +16,7 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.MavenFileTemplateGroupFactory;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
@@ -25,7 +26,9 @@ import java.util.List;
public class OpenOrCreateSettingsXmlAction extends MavenOpenOrCreateFilesAction {
protected List<File> getFiles(AnActionEvent e) {
File file = MavenActionUtil.getProjectsManager(e.getDataContext()).getGeneralSettings().getEffectiveUserSettingsIoFile();
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
if(projectsManager == null) return Collections.<File>emptyList();
File file = projectsManager.getGeneralSettings().getEffectiveUserSettingsIoFile();
return file != null ? Collections.singletonList(file) : Collections.<File>emptyList();
}
@@ -16,13 +16,14 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import java.util.List;
public class ReimportProjectAction extends MavenProjectsAction {
protected void perform(MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
protected void perform(@NotNull MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
manager.forceUpdateProjects(mavenProjects);
}
}
@@ -41,6 +41,7 @@ public class RemoveManagedFilesAction extends MavenAction {
final DataContext context = e.getDataContext();
MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return;
List<VirtualFile> selectedFiles = MavenActionUtil.getMavenProjectsFiles(context);
List<VirtualFile> removableFiles = new ArrayList<VirtualFile>();
@@ -17,10 +17,12 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.project.Project;
import org.jetbrains.idea.maven.execution.MavenRunConfigurationType;
import org.jetbrains.idea.maven.execution.MavenRunnerParameters;
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.MavenDataKeys;
import org.jetbrains.idea.maven.utils.actions.MavenAction;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
@@ -42,18 +44,22 @@ public class RunBuildAction extends MavenAction {
final List<String> goals = MavenDataKeys.MAVEN_GOALS.getData(context);
if (goals == null || goals.isEmpty()) return false;
final MavenProject project = MavenActionUtil.getMavenProject(context);
if (project == null) return false;
final Project project = MavenActionUtil.getProject(context);
if(project == null) return false;
final MavenProject mavenProject = MavenActionUtil.getMavenProject(context);
if (mavenProject == null) return false;
if (!perform) return true;
MavenExplicitProfiles explicitProfiles = MavenActionUtil.getProjectsManager(context).getExplicitProfiles();
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return false;
MavenExplicitProfiles explicitProfiles = projectsManager.getExplicitProfiles();
final MavenRunnerParameters params = new MavenRunnerParameters(true,
project.getDirectory(),
mavenProject.getDirectory(),
goals,
explicitProfiles.getEnabledProfiles(),
explicitProfiles.getDisabledProfiles());
MavenRunConfigurationType.runConfiguration(MavenActionUtil.getProject(context), params, null);
MavenRunConfigurationType.runConfiguration(project, params, null);
return true;
}
@@ -18,6 +18,8 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.project.MavenIgnoredFilesConfigurable;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
@@ -35,6 +37,7 @@ public class ToggleIgnoredProjectsAction extends MavenAction {
final DataContext context = e.getDataContext();
MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return;
List<MavenProject> projects = MavenActionUtil.getMavenProjects(context);
if (isIgnoredInSettings(projectsManager, projects)) {
@@ -54,6 +57,7 @@ public class ToggleIgnoredProjectsAction extends MavenAction {
final DataContext context = e.getDataContext();
MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return false;
List<MavenProject> projects = MavenActionUtil.getMavenProjects(context);
if (projects == null || projects.isEmpty()) return false;
@@ -74,11 +78,11 @@ public class ToggleIgnoredProjectsAction extends MavenAction {
(ignoredStatesCount == 0 || ignoredStatesCount == projects.size());
}
private static boolean isIgnored(MavenProjectsManager projectsManager, List<MavenProject> projects) {
private static boolean isIgnored(@NotNull MavenProjectsManager projectsManager, List<MavenProject> projects) {
return projectsManager.getIgnoredState(projects.get(0));
}
private static boolean isIgnoredInSettings(MavenProjectsManager projectsManager, List<MavenProject> projects) {
private static boolean isIgnoredInSettings(@NotNull MavenProjectsManager projectsManager, List<MavenProject> projects) {
return projectsManager.isIgnored(projects.get(0)) && !isIgnored(projectsManager, projects);
}
@@ -86,11 +90,15 @@ public class ToggleIgnoredProjectsAction extends MavenAction {
public void actionPerformed(AnActionEvent e) {
final DataContext context = e.getDataContext();
MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return;
List<MavenProject> projects = MavenActionUtil.getMavenProjects(context);
final Project project = MavenActionUtil.getProject(context);
if(project == null) return;
if (isIgnoredInSettings(projectsManager, projects)) {
ShowSettingsUtil.getInstance()
.editConfigurable(MavenActionUtil.getProject(context), new MavenIgnoredFilesConfigurable(MavenActionUtil.getProject(context)));
.editConfigurable(project, new MavenIgnoredFilesConfigurable(project));
}
else {
projectsManager.setIgnoredState(projects, !isIgnored(projectsManager, projects));
@@ -16,17 +16,22 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
import org.jetbrains.idea.maven.utils.actions.MavenToggleAction;
public class ToggleOfflineAction extends MavenToggleAction {
@Override
protected boolean doIsSelected(AnActionEvent e) {
return MavenActionUtil.getProjectsManager(e.getDataContext()).getGeneralSettings().isWorkOffline();
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
return projectsManager != null && projectsManager.getGeneralSettings().isWorkOffline();
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
MavenActionUtil.getProjectsManager(e.getDataContext()).getGeneralSettings().setWorkOffline(state);
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
if (projectsManager != null) {
projectsManager.getGeneralSettings().setWorkOffline(state);
}
}
}
@@ -16,6 +16,7 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
import org.jetbrains.idea.maven.model.MavenProfileKind;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
@@ -61,10 +62,11 @@ public class ToggleProfileAction extends MavenAction {
if (selectedProfiles == null || selectedProfiles.isEmpty()) return null;
MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
if(projectsManager == null) return null;
return getTargetState(projectsManager, selectedProfiles);
}
private static MavenProfileKind getTargetState(MavenProjectsManager projectsManager, Map<String, MavenProfileKind> profiles) {
private static MavenProfileKind getTargetState(@NotNull MavenProjectsManager projectsManager, Map<String, MavenProfileKind> profiles) {
MavenExplicitProfiles explicitProfiles = projectsManager.getExplicitProfiles();
MavenProfileKind targetState = null;
// all profiles should target to the same state
@@ -108,6 +110,7 @@ public class ToggleProfileAction extends MavenAction {
@Override
public void actionPerformed(AnActionEvent e) {
MavenProjectsManager manager = MavenActionUtil.getProjectsManager(e.getDataContext());
if(manager == null) return;
Map<String, MavenProfileKind> selectedProfiles = e.getData(MavenDataKeys.MAVEN_PROFILES);
Set<String> selectedProfileIds = selectedProfiles.keySet();
@@ -16,6 +16,7 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import org.jetbrains.idea.maven.execution.MavenRunner;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
import org.jetbrains.idea.maven.utils.actions.MavenToggleAction;
@@ -23,11 +24,15 @@ import org.jetbrains.idea.maven.utils.actions.MavenToggleAction;
public class ToggleSkipTestsAction extends MavenToggleAction {
@Override
protected boolean doIsSelected(AnActionEvent e) {
return MavenRunner.getInstance(MavenActionUtil.getProject(e.getDataContext())).getState().isSkipTests();
final Project project = MavenActionUtil.getProject(e.getDataContext());
if(project == null) return false;
return MavenRunner.getInstance(project).getState().isSkipTests();
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
final Project project = MavenActionUtil.getProject(e.getDataContext());
if(project == null) return;
MavenRunner.getInstance(MavenActionUtil.getProject(e.getDataContext())).getState().setSkipTests(state);
}
}
@@ -16,13 +16,14 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import java.util.List;
public class UpdateFoldersForProjectAction extends MavenProjectsAction {
protected void perform(MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
protected void perform(@NotNull MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
manager.scheduleFoldersResolve(mavenProjects);
}
}
@@ -30,6 +30,7 @@ import org.jetbrains.idea.maven.model.MavenConstants;
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
import org.jetbrains.idea.maven.model.MavenPlugin;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.MavenArtifactUtil;
import org.jetbrains.idea.maven.utils.MavenPluginInfo;
import org.jetbrains.idea.maven.utils.actions.MavenAction;
@@ -177,13 +178,18 @@ public class MavenKeymapExtension implements KeymapExtension {
public void actionPerformed(AnActionEvent e) {
final DataContext context = e.getDataContext();
MavenExplicitProfiles explicitProfiles = MavenActionUtil.getProjectsManager(context).getExplicitProfiles();
final Project project = MavenActionUtil.getProject(context);
if (project == null) return;
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return;
MavenExplicitProfiles explicitProfiles = projectsManager.getExplicitProfiles();
MavenRunnerParameters params = new MavenRunnerParameters(true,
myMavenProject.getDirectory(),
Arrays.asList(myGoal),
explicitProfiles.getEnabledProfiles(),
explicitProfiles.getDisabledProfiles());
MavenRunConfigurationType.runConfiguration(MavenActionUtil.getProject(context), params, null);
MavenRunConfigurationType.runConfiguration(project, params, null);
}
public MavenProject getMavenProject() {
@@ -18,8 +18,10 @@ package org.jetbrains.idea.maven.tasks.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.keymap.impl.ui.EditKeymapsDialog;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.tasks.MavenShortcutsManager;
import org.jetbrains.idea.maven.utils.MavenDataKeys;
import org.jetbrains.idea.maven.utils.actions.MavenAction;
@@ -37,7 +39,8 @@ public class AssignShortcutAction extends MavenAction {
private static boolean isIgnoredProject(DataContext context) {
final MavenProject project = MavenActionUtil.getMavenProject(context);
if (project == null) return false;
return MavenActionUtil.getProjectsManager(context).isIgnored(project);
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
return projectsManager != null && projectsManager.isIgnored(project);
}
public void actionPerformed(AnActionEvent e) {
@@ -60,11 +63,15 @@ public class AssignShortcutAction extends MavenAction {
String goal = goals.get(0);
return getShortcutsManager(context).getActionId(project.getPath(), goal);
final MavenShortcutsManager shortcutsManager = getShortcutsManager(context);
return shortcutsManager != null ? shortcutsManager.getActionId(project.getPath(), goal) : null;
}
@Nullable
protected static MavenShortcutsManager getShortcutsManager(DataContext context) {
return MavenShortcutsManager.getInstance(MavenActionUtil.getProject(context));
final Project project = MavenActionUtil.getProject(context);
if(project == null) return null;
return MavenShortcutsManager.getInstance(project);
}
}
@@ -18,6 +18,7 @@ package org.jetbrains.idea.maven.tasks.actions;
import com.intellij.execution.RunManagerEx;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Pair;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.project.MavenProject;
@@ -40,7 +41,9 @@ public class ToggleBeforeRunTaskAction extends MavenToggleAction {
final DataContext context = e.getDataContext();
final Pair<MavenProject, String> desc = getTaskDesc(context);
if (desc != null) {
for (MavenBeforeRunTask each : getRunManager(context).getBeforeRunTasks(MavenBeforeRunTasksProvider.ID)) {
final RunManagerEx runManager = getRunManager(context);
if(runManager == null) return false;
for (MavenBeforeRunTask each : runManager.getBeforeRunTasks(MavenBeforeRunTasksProvider.ID)) {
if (each.isFor(desc.first, desc.second)) return true;
}
}
@@ -68,7 +71,10 @@ public class ToggleBeforeRunTaskAction extends MavenToggleAction {
return Pair.create(mavenProject, goals.get(0));
}
@Nullable
private static RunManagerEx getRunManager(DataContext context) {
return RunManagerEx.getInstanceEx(MavenActionUtil.getProject(context));
final Project project = MavenActionUtil.getProject(context);
if(project == null) return null;
return RunManagerEx.getInstanceEx(project);
}
}
@@ -17,6 +17,8 @@ package org.jetbrains.idea.maven.tasks.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.tasks.MavenCompilerTask;
import org.jetbrains.idea.maven.tasks.MavenTasksManager;
@@ -50,12 +52,14 @@ public abstract class ToggleCompilerTasksAction extends MavenToggleAction {
@Override
public void setSelected(AnActionEvent e, boolean state) {
final DataContext context = e.getDataContext();
final MavenTasksManager tasksManager = getTasksManager(context);
List<MavenCompilerTask> tasks = getTasks(context);
if(tasksManager == null) return;
if (state) {
addTasks(getTasksManager(context), tasks);
addTasks(tasksManager, tasks);
}
else {
removeTasks(getTasksManager(context), tasks);
removeTasks(tasksManager, tasks);
}
}
@@ -73,7 +77,8 @@ public abstract class ToggleCompilerTasksAction extends MavenToggleAction {
return result;
}
protected boolean hasTask(MavenTasksManager manager, MavenCompilerTask task) {
protected boolean hasTask(@Nullable MavenTasksManager manager, MavenCompilerTask task) {
if(manager == null) return false;
return manager.isCompileTaskOfPhase(task, myPhase);
}
@@ -85,7 +90,10 @@ public abstract class ToggleCompilerTasksAction extends MavenToggleAction {
manager.removeCompileTasks(tasks, myPhase);
}
@Nullable
private static MavenTasksManager getTasksManager(DataContext context) {
return MavenTasksManager.getInstance(MavenActionUtil.getProject(context));
final Project project = MavenActionUtil.getProject(context);
if(project == null) return null;
return MavenTasksManager.getInstance(project);
}
}
@@ -41,7 +41,7 @@ public class MavenActionUtil {
return CommonDataKeys.PROJECT.getData(context) != null;
}
@NotNull
@Nullable
public static Project getProject(DataContext context) {
return CommonDataKeys.PROJECT.getData(context);
}
@@ -55,6 +55,7 @@ public class MavenActionUtil {
public static MavenProject getMavenProject(DataContext context) {
MavenProject result;
final MavenProjectsManager manager = getProjectsManager(context);
if(manager == null) return null;
final VirtualFile file = CommonDataKeys.VIRTUAL_FILE.getData(context);
if (file != null) {
@@ -77,9 +78,11 @@ public class MavenActionUtil {
return module != null ? module : DataKeys.MODULE_CONTEXT.getData(context);
}
@NotNull
@Nullable
public static MavenProjectsManager getProjectsManager(DataContext context) {
return MavenProjectsManager.getInstance(getProject(context));
final Project project = getProject(context);
if(project == null) return null;
return MavenProjectsManager.getInstance(project);
}
public static boolean isMavenProjectFile(VirtualFile file) {
+2 -2
View File
@@ -1858,7 +1858,7 @@ def _locked_settrace(
#Suspend as the last thing after all tracing is in place.
if suspend:
debugger.setSuspend(t, CMD_SET_BREAK)
debugger.setSuspend(t, CMD_THREAD_SUSPEND)
PyDBCommandThread(debugger).start()
PyDBCheckAliveThread(debugger).start()
@@ -1884,7 +1884,7 @@ def _locked_settrace(
if suspend:
debugger.setSuspend(t, CMD_SET_BREAK)
debugger.setSuspend(t, CMD_THREAD_SUSPEND)
def stoptrace():
@@ -27,7 +27,6 @@ import com.intellij.psi.PsiFile;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.QualifiedName;
import com.intellij.util.containers.ContainerUtil;
import com.jetbrains.python.PyNames;
import com.jetbrains.python.codeInsight.controlflow.ControlFlowCache;
import com.jetbrains.python.codeInsight.dataflow.scope.Scope;
import com.jetbrains.python.inspections.quickfix.PyRenameElementQuickFix;
@@ -126,7 +125,7 @@ public class PyPep8NamingInspection extends PyInspection {
public boolean value(PyClass ancestor) {
final PsiFile ancestorsModule = ancestor.getContainingFile();
final Sdk sdk = PyBuiltinCache.findSdkForFile(ancestorsModule);
if (PythonSdkType.isStdLib(ancestorsModule.getVirtualFile(), sdk) && !PyUtil.isObjectClass(cls)) {
if (PythonSdkType.isStdLib(ancestorsModule.getVirtualFile(), sdk) && !PyUtil.isObjectClass(ancestor)) {
return true;
}
return false;