From aff62ffd8c2db73cb9be861c52532476e2b64d1f Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Fri, 16 Nov 2012 17:05:59 +0400 Subject: [PATCH] [by: cdr] IDEA-95143 Code Style | Arrangement: 'Rearrange code' action should not be shown in 'Code' menu if it is not available in current context --- .../arrangement/action/RearrangeCodeAction.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/action/RearrangeCodeAction.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/action/RearrangeCodeAction.java index e9e8d5b867df..e0085ba12e77 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/action/RearrangeCodeAction.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/arrangement/action/RearrangeCodeAction.java @@ -15,8 +15,10 @@ */ package com.intellij.application.options.codeStyle.arrangement.action; +import com.intellij.lang.Language; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.components.ServiceManager; @@ -27,6 +29,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiFile; +import com.intellij.psi.codeStyle.arrangement.Rearranger; import com.intellij.psi.codeStyle.arrangement.engine.ArrangementEngine; import java.util.ArrayList; @@ -40,6 +43,16 @@ import java.util.List; */ public class RearrangeCodeAction extends AnAction { + @Override + public void update(AnActionEvent e) { + Language language = LangDataKeys.LANGUAGE.getData(e.getDataContext()); + boolean enabled = false; + if (language != null) { + enabled = Rearranger.EXTENSION.forLanguage(language) != null; + } + e.getPresentation().setEnabled(enabled); + } + @Override public void actionPerformed(AnActionEvent e) { final Project project = PlatformDataKeys.PROJECT.getData(e.getDataContext());