@Override protected boolean isAvailable(PsiElement element, Editor editor, PsiFile file) { PsiElement nameSuggestionContext = file.findElementAt(editor.getCaretModel().getOffset()); if (nameSuggestionContext == null && editor.getCaretModel().getOffset() > 0) { nameSuggestionContext = file.findElementAt(editor.getCaretModel().getOffset() - 1); } if (element == null && LookupManager.getActiveLookup(editor) != null) { element = PsiTreeUtil.getParentOfType(nameSuggestionContext, PsiNamedElement.class); } final RefactoringSupportProvider supportProvider = element == null ? null : LanguageRefactoringSupport.INSTANCE.forLanguage(element.getLanguage()); return editor.getSettings().isVariableInplaceRenameEnabled() && supportProvider != null && supportProvider.isMemberInplaceRenameAvailable(element, nameSuggestionContext); }
private void doTest(String newName) { final String testName = getTestName(false); final String beforeName = testName + ".before.py"; final String afterName = testName + ".after.py"; final String dir = "refactoring/extractmethod/"; myFixture.configureByFile(dir + beforeName); final RefactoringSupportProvider provider = LanguageRefactoringSupport.INSTANCE.forLanguage(PythonLanguage.getInstance()); assertNotNull(provider); final RefactoringActionHandler handler = provider.getExtractMethodHandler(); assertNotNull(handler); System.setProperty(PyExtractMethodUtil.NAME, newName); try { refactorUsingHandler(handler); } finally { System.clearProperty(PyExtractMethodUtil.NAME); } myFixture.checkResultByFile(dir + afterName); }
protected boolean isAvailable(PsiElement element, Editor editor, PsiFile file) { final PsiElement nameSuggestionContext = file.findElementAt(editor.getCaretModel().getOffset()); RefactoringSupportProvider supportProvider = element == null ? null : LanguageRefactoringSupport.INSTANCE.forLanguage(element.getLanguage()); return supportProvider != null && editor.getSettings().isVariableInplaceRenameEnabled() && supportProvider.isInplaceRenameAvailable(element, nameSuggestionContext); }
@Nullable protected RefactoringActionHandler getHandler(@NotNull Language language, PsiElement element) { List<RefactoringSupportProvider> providers = LanguageRefactoringSupport.INSTANCE.allForLanguage(language); if (providers.isEmpty()) return null; if (element == null) return getRefactoringHandler(providers.get(0)); for (RefactoringSupportProvider provider : providers) { if (provider.isAvailable(element)) { return getRefactoringHandler(provider, element); } } return null; }
public static boolean isInplace(@NotNull Editor editor, @NotNull PsiElement place) { final RefactoringSupportProvider supportProvider = LanguageRefactoringSupport.INSTANCE.forLanguage(place.getLanguage()); return supportProvider != null && (editor.getUserData(InplaceRefactoring.INTRODUCE_RESTART) == null || !editor.getUserData(InplaceRefactoring.INTRODUCE_RESTART)) && editor.getUserData(AbstractInplaceIntroducer.ACTIVE_INTRODUCE) == null && editor.getSettings().isVariableInplaceRenameEnabled() && supportProvider.isInplaceIntroduceAvailable(place, place) && !ApplicationManager.getApplication().isUnitTestMode(); }
protected boolean isAvailable(PsiElement element, Editor editor, PsiFile file) { final PsiElement nameSuggestionContext = file.findElementAt(editor.getCaretModel().getOffset()); final RefactoringSupportProvider supportProvider = element != null ? LanguageRefactoringSupport.INSTANCE.forLanguage(element.getLanguage()):null; return supportProvider != null && editor.getSettings().isVariableInplaceRenameEnabled() && supportProvider.isInplaceRenameAvailable(element, nameSuggestionContext); }
@Override protected boolean isAvailable(PsiElement element, Editor editor, PsiFile file) { final PsiElement nameSuggestionContext = file.findElementAt(editor.getCaretModel().getOffset()); if (element == null && LookupManager.getActiveLookup(editor) != null) { element = PsiTreeUtil.getParentOfType(nameSuggestionContext, PsiNamedElement.class); } final RefactoringSupportProvider supportProvider = element != null ? LanguageRefactoringSupport.INSTANCE.forLanguage(element.getLanguage()) : null; return editor.getSettings().isVariableInplaceRenameEnabled() && supportProvider != null && supportProvider.isMemberInplaceRenameAvailable(element, nameSuggestionContext); }
@Nullable protected RefactoringActionHandler getHandler(@NotNull Language language, PsiElement element) { List<RefactoringSupportProvider> providers = LanguageRefactoringSupport.INSTANCE.allForLanguage(language); if (providers.isEmpty()) return null; if (element == null && !providers.isEmpty()) return getRefactoringHandler(providers.get(0)); if (element != null) { for (RefactoringSupportProvider provider : providers) { if (provider.isAvailable(element)) { return getRefactoringHandler(provider); } } } return null; }
protected boolean isInplace(GrIntroduceContext context) { final RefactoringSupportProvider supportProvider = LanguageRefactoringSupport.INSTANCE.forLanguage(context.getPlace().getLanguage()); return supportProvider != null && context.getEditor().getSettings().isVariableInplaceRenameEnabled() && supportProvider.isInplaceIntroduceAvailable(context.getPlace(), context.getPlace()) && !ApplicationManager.getApplication().isUnitTestMode(); }
@Override @RequiredReadAction protected boolean isAvailable(PsiElement element, Editor editor, PsiFile file) { final PsiElement nameSuggestionContext = file.findElementAt(editor.getCaretModel().getOffset()); if(element == null && LookupManager.getActiveLookup(editor) != null) { element = PsiTreeUtil.getParentOfType(nameSuggestionContext, PsiNamedElement.class); } final RefactoringSupportProvider supportProvider = element != null ? LanguageRefactoringSupport.INSTANCE.forLanguage(element.getLanguage()) : null; return editor.getSettings().isVariableInplaceRenameEnabled() && supportProvider != null && supportProvider.isMemberInplaceRenameAvailable(element, nameSuggestionContext) && element instanceof CSharpNamedElement; }
@Nullable protected RefactoringActionHandler getHandler(@Nonnull Language language, PsiElement element) { List<RefactoringSupportProvider> providers = LanguageRefactoringSupport.INSTANCE.allForLanguage(language); if (providers.isEmpty()) return null; if (element == null) return getRefactoringHandler(providers.get(0)); for (RefactoringSupportProvider provider : providers) { if (provider.isAvailable(element)) { return getRefactoringHandler(provider, element); } } return null; }
public static void invokeChangeSignatureOn(PsiMethod method, Project project) { ChangeSignatureHandler handler = LanguageRefactoringSupport.INSTANCE.forLanguage(method.getLanguage()).getChangeSignatureHandler(); if (handler != null) { handler.invoke(project, new PsiElement[]{method}, null); } }
@Nullable private static ChangeSignatureHandler getChangeSignatureHandler(Language language) { return LanguageRefactoringSupport.INSTANCE.forLanguage(language).getChangeSignatureHandler(); }
@Override protected boolean isAvailableForLanguage(final Language language) { List<RefactoringSupportProvider> providers = LanguageRefactoringSupport.INSTANCE.allForLanguage(language); return ContainerUtil.find(providers, myCondition) != null; }
public static boolean validElement(@NotNull PsiElement element) { if (element instanceof PsiFile) return true; if (!element.isPhysical()) return false; final RefactoringSupportProvider provider = LanguageRefactoringSupport.INSTANCE.forLanguage(element.getLanguage()); return provider.isSafeDeleteAvailable(element); }
public static void invokeChangeSignatureOn(PsiMethod method, Project project) { final ChangeSignatureHandler handler = LanguageRefactoringSupport.INSTANCE.forLanguage(method.getLanguage()).getChangeSignatureHandler(); handler.invoke(project, new PsiElement[]{method}, null); }
public static boolean validElement(PsiElement element) { if (element instanceof PsiFile) return true; if (!element.isPhysical()) return false; final RefactoringSupportProvider provider = LanguageRefactoringSupport.INSTANCE.forLanguage(element.getLanguage()); return provider.isSafeDeleteAvailable(element); }
public static boolean validElement(@Nonnull PsiElement element) { if (element instanceof PsiFile) return true; if (!element.isPhysical()) return false; final RefactoringSupportProvider provider = LanguageRefactoringSupport.INSTANCE.forLanguage(element.getLanguage()); return provider.isSafeDeleteAvailable(element); }