From ca3c43ced5825c53f54ed7fec8891a2a3f5866a7 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Wed, 24 Apr 2013 17:27:00 +0400 Subject: [PATCH] do not invert boolean in builtins --- .../invertBoolean/PyInvertBooleanAction.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/python/src/com/jetbrains/python/refactoring/invertBoolean/PyInvertBooleanAction.java b/python/src/com/jetbrains/python/refactoring/invertBoolean/PyInvertBooleanAction.java index 7b2e7e42057d..796406ae9f59 100644 --- a/python/src/com/jetbrains/python/refactoring/invertBoolean/PyInvertBooleanAction.java +++ b/python/src/com/jetbrains/python/refactoring/invertBoolean/PyInvertBooleanAction.java @@ -3,6 +3,8 @@ package com.jetbrains.python.refactoring.invertBoolean; import com.intellij.lang.Language; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.roots.ProjectRootManager; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.util.PsiTreeUtil; @@ -25,12 +27,14 @@ public class PyInvertBooleanAction extends BaseRefactoringAction { @Override protected boolean isEnabledOnElements(@NotNull PsiElement[] elements) { if (elements.length == 1) { - return isApplicable(elements[0]); + return isApplicable(elements[0], elements[0].getContainingFile()); } return false; } - private static boolean isApplicable(@NotNull final PsiElement element) { + private static boolean isApplicable(@NotNull final PsiElement element, @NotNull final PsiFile file) { + final VirtualFile virtualFile = file.getVirtualFile(); + if (virtualFile != null && ProjectRootManager.getInstance(element.getProject()).getFileIndex().isInLibraryClasses(virtualFile)) return false; if (element instanceof PyTargetExpression) { final PyAssignmentStatement assignmentStatement = PsiTreeUtil.getParentOfType(element, PyAssignmentStatement.class); if (assignmentStatement != null) { @@ -49,7 +53,7 @@ public class PyInvertBooleanAction extends BaseRefactoringAction { @Override protected boolean isAvailableOnElementInEditorAndFile(@NotNull final PsiElement element, @NotNull final Editor editor, @NotNull PsiFile file, @NotNull DataContext context) { - return isApplicable(element); + return isApplicable(element, element.getContainingFile()); } @Override