diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerExpressionComboBox.java b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerExpressionComboBox.java index f14587391352..5cce68db4767 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerExpressionComboBox.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerExpressionComboBox.java @@ -81,6 +81,7 @@ public class DebuggerExpressionComboBox extends DebuggerEditorImpl { myComboBox.setSelectedIndex(0); } + myComboBox.getEditor().setItem(item); myItem = item; } @@ -158,6 +159,7 @@ public class DebuggerExpressionComboBox extends DebuggerEditorImpl { setText(new TextWithImportsImpl(CodeFragmentKind.EXPRESSION, "")); myItem = createText(""); + setEnabled(true); } public JComponent getPreferredFocusedComponent() { diff --git a/java/java-impl/src/com/intellij/refactoring/actions/AnonymousToInnerAction.java b/java/java-impl/src/com/intellij/refactoring/actions/AnonymousToInnerAction.java index eb86ca9eff1b..ef797c391279 100644 --- a/java/java-impl/src/com/intellij/refactoring/actions/AnonymousToInnerAction.java +++ b/java/java-impl/src/com/intellij/refactoring/actions/AnonymousToInnerAction.java @@ -34,7 +34,7 @@ public class AnonymousToInnerAction extends BaseRefactoringAction { return false; } - protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file) { + protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file, DataContext context) { final PsiElement targetElement = file.findElementAt(editor.getCaretModel().getOffset()); if (PsiTreeUtil.getParentOfType(targetElement, PsiAnonymousClass.class) != null) { return true; @@ -49,4 +49,4 @@ public class AnonymousToInnerAction extends BaseRefactoringAction { public RefactoringActionHandler getHandler(DataContext dataContext) { return new AnonymousToInnerHandler(); } -} \ No newline at end of file +} diff --git a/java/java-impl/src/com/intellij/refactoring/actions/ChangeSignatureAction.java b/java/java-impl/src/com/intellij/refactoring/actions/ChangeSignatureAction.java index a0612a770ea5..8e07299a687f 100644 --- a/java/java-impl/src/com/intellij/refactoring/actions/ChangeSignatureAction.java +++ b/java/java-impl/src/com/intellij/refactoring/actions/ChangeSignatureAction.java @@ -37,7 +37,7 @@ public class ChangeSignatureAction extends BaseRefactoringAction { return elements.length == 1 && (elements[0] instanceof PsiMethod || elements[0] instanceof PsiClass); } - protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file) { + protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file, DataContext context) { PsiElement targetMember = findTargetMember(file, editor); if (targetMember == null) return false; final ChangeSignatureHandler targetHandler = getChangeSignatureHandler(targetMember.getLanguage()); diff --git a/java/java-impl/src/com/intellij/refactoring/actions/ConvertToInstanceMethodAction.java b/java/java-impl/src/com/intellij/refactoring/actions/ConvertToInstanceMethodAction.java index 1374d091578d..d0f11ebc6a75 100644 --- a/java/java-impl/src/com/intellij/refactoring/actions/ConvertToInstanceMethodAction.java +++ b/java/java-impl/src/com/intellij/refactoring/actions/ConvertToInstanceMethodAction.java @@ -33,7 +33,7 @@ public class ConvertToInstanceMethodAction extends BaseRefactoringAction { return elements.length == 1 && elements[0] instanceof PsiMethod; } - protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, final Editor editor, PsiFile file) { + protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, final Editor editor, PsiFile file, DataContext context) { if (element instanceof PsiIdentifier) element = element.getParent(); return element instanceof PsiMethod && ((PsiMethod) element).hasModifierProperty(PsiModifier.STATIC); } diff --git a/java/java-impl/src/com/intellij/refactoring/actions/InvertBooleanAction.java b/java/java-impl/src/com/intellij/refactoring/actions/InvertBooleanAction.java index bbff15e1893a..7ad4645837d5 100644 --- a/java/java-impl/src/com/intellij/refactoring/actions/InvertBooleanAction.java +++ b/java/java-impl/src/com/intellij/refactoring/actions/InvertBooleanAction.java @@ -33,7 +33,7 @@ public class InvertBooleanAction extends BaseRefactoringAction { return elements.length == 1 && (elements[0] instanceof PsiMethod || elements[0] instanceof PsiVariable); } - protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file) { + protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file, DataContext context) { if (element instanceof PsiVariable) { return PsiType.BOOLEAN.equals(((PsiVariable) element).getType()); } diff --git a/java/java-impl/src/com/intellij/refactoring/actions/MakeStaticAction.java b/java/java-impl/src/com/intellij/refactoring/actions/MakeStaticAction.java index 78d52d95d12e..4514b13c2eab 100644 --- a/java/java-impl/src/com/intellij/refactoring/actions/MakeStaticAction.java +++ b/java/java-impl/src/com/intellij/refactoring/actions/MakeStaticAction.java @@ -39,7 +39,7 @@ public class MakeStaticAction extends BaseRefactoringAction { return (elements.length == 1) && (elements[0] instanceof PsiMethod) && !((PsiMethod)elements[0]).isConstructor(); } - protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, final Editor editor, PsiFile file) { + protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, final Editor editor, PsiFile file, DataContext context) { if (element instanceof PsiIdentifier) { element = element.getParent(); } diff --git a/java/java-impl/src/com/intellij/refactoring/actions/TempWithQueryAction.java b/java/java-impl/src/com/intellij/refactoring/actions/TempWithQueryAction.java index 85128310f0b7..6717bc14dd56 100644 --- a/java/java-impl/src/com/intellij/refactoring/actions/TempWithQueryAction.java +++ b/java/java-impl/src/com/intellij/refactoring/actions/TempWithQueryAction.java @@ -37,7 +37,7 @@ public class TempWithQueryAction extends BaseRefactoringAction{ return new TempWithQueryHandler(); } - protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file) { + protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file, DataContext context) { return element instanceof PsiLocalVariable && ((PsiLocalVariable) element).getInitializer() != null; } } \ No newline at end of file diff --git a/java/java-impl/src/com/intellij/refactoring/typeMigration/actions/ChangeTypeSignatureAction.java b/java/java-impl/src/com/intellij/refactoring/typeMigration/actions/ChangeTypeSignatureAction.java index d17f82a69a08..7c03209ab5e3 100644 --- a/java/java-impl/src/com/intellij/refactoring/typeMigration/actions/ChangeTypeSignatureAction.java +++ b/java/java-impl/src/com/intellij/refactoring/typeMigration/actions/ChangeTypeSignatureAction.java @@ -34,7 +34,7 @@ public class ChangeTypeSignatureAction extends BaseRefactoringAction { return true; } - protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file) { + protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file, DataContext context) { final PsiElement psiElement = file.findElementAt(editor.getCaretModel().getOffset()); final PsiReferenceParameterList referenceParameterList = PsiTreeUtil.getParentOfType(psiElement, PsiReferenceParameterList.class); if (referenceParameterList != null) { @@ -46,4 +46,4 @@ public class ChangeTypeSignatureAction extends BaseRefactoringAction { public RefactoringActionHandler getHandler(DataContext dataContext) { return new ChangeTypeSignatureHandler(); } -} \ No newline at end of file +} diff --git a/platform/lang-api/src/com/intellij/psi/PsiIncludeManager.java b/platform/lang-api/src/com/intellij/psi/PsiIncludeManager.java index 259a70814e6a..df4075c67a3b 100644 --- a/platform/lang-api/src/com/intellij/psi/PsiIncludeManager.java +++ b/platform/lang-api/src/com/intellij/psi/PsiIncludeManager.java @@ -24,6 +24,8 @@ import org.jetbrains.annotations.Nullable; /** * @author mike + * + * @deprecated use {@link com.intellij.psi.impl.include.FileIncludeManager} instead */ public interface PsiIncludeManager { ExtensionPointName EP_NAME = new ExtensionPointName("com.intellij.psi.includeHandler"); diff --git a/platform/lang-impl/src/com/intellij/injected/editor/DocumentWindowImpl.java b/platform/lang-impl/src/com/intellij/injected/editor/DocumentWindowImpl.java index 960741983379..fea09517897f 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/DocumentWindowImpl.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/DocumentWindowImpl.java @@ -207,8 +207,8 @@ public class DocumentWindowImpl extends UserDataHolderBase implements Disposable } public void insertString(final int offset, @NotNull CharSequence s) { - LOG.assertTrue(offset >= myShreds.get(0).prefix.length()); - LOG.assertTrue(offset <= getTextLength() - myShreds.get(myShreds.size() - 1).suffix.length()); + LOG.assertTrue(offset >= myShreds.get(0).prefix.length(), myShreds.get(0).prefix); + LOG.assertTrue(offset <= getTextLength() - myShreds.get(myShreds.size() - 1).suffix.length(), myShreds.get(myShreds.size() - 1).suffix); if (isOneLine()) { s = StringUtil.replace(s.toString(), "\n", ""); } diff --git a/platform/lang-impl/src/com/intellij/refactoring/actions/BasePlatformRefactoringAction.java b/platform/lang-impl/src/com/intellij/refactoring/actions/BasePlatformRefactoringAction.java index f006c5ec48c2..6ca1dcb2434b 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/actions/BasePlatformRefactoringAction.java +++ b/platform/lang-impl/src/com/intellij/refactoring/actions/BasePlatformRefactoringAction.java @@ -20,10 +20,12 @@ import com.intellij.lang.LanguageRefactoringSupport; import com.intellij.lang.refactoring.RefactoringSupportProvider; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.LangDataKeys; +import com.intellij.openapi.editor.Editor; import com.intellij.openapi.extensions.ExtensionPointListener; import com.intellij.openapi.extensions.PluginDescriptor; import com.intellij.openapi.util.Condition; import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; import com.intellij.refactoring.RefactoringActionHandler; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; @@ -77,6 +79,11 @@ public abstract class BasePlatformRefactoringAction extends BaseRefactoringActio return null; } + @Override + protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file, DataContext context) { + return getHandler(context) != null; + } + protected boolean isAvailableForLanguage(final Language language) { List providers = LanguageRefactoringSupport.INSTANCE.allForLanguage(language); return ContainerUtil.find(providers, myCondition) != null; diff --git a/platform/lang-impl/src/com/intellij/refactoring/actions/BaseRefactoringAction.java b/platform/lang-impl/src/com/intellij/refactoring/actions/BaseRefactoringAction.java index 8c4f104a413e..5490debbab4c 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/actions/BaseRefactoringAction.java +++ b/platform/lang-impl/src/com/intellij/refactoring/actions/BaseRefactoringAction.java @@ -48,7 +48,7 @@ public abstract class BaseRefactoringAction extends AnAction { protected abstract boolean isEnabledOnElements(PsiElement[] elements); - protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file) { + protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file, DataContext context) { return true; } @@ -133,7 +133,7 @@ public abstract class BaseRefactoringAction extends AnAction { boolean isVisible = ContainerUtil.find(languages, myLanguageCondition) != null; if (isVisible) { - boolean isEnabled = isAvailableOnElementInEditorAndFile(element, editor, file); + boolean isEnabled = isAvailableOnElementInEditorAndFile(element, editor, file, dataContext); if (!isEnabled) { disableAction(e); } @@ -211,4 +211,4 @@ public abstract class BaseRefactoringAction extends AnAction { return filtered == null ? psiElements : filtered.toArray(new PsiElement[filtered.size()]); } -} \ No newline at end of file +} diff --git a/platform/lang-impl/src/com/intellij/refactoring/actions/InlineAction.java b/platform/lang-impl/src/com/intellij/refactoring/actions/InlineAction.java index 4c1293ae7b5e..cd9b9958e3d1 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/actions/InlineAction.java +++ b/platform/lang-impl/src/com/intellij/refactoring/actions/InlineAction.java @@ -25,6 +25,7 @@ import com.intellij.lang.Language; import com.intellij.lang.refactoring.InlineActionHandler; import com.intellij.lang.refactoring.InlineHandlers; import com.intellij.lang.refactoring.RefactoringSupportProvider; +import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.extensions.Extensions; import com.intellij.psi.PsiElement; @@ -46,7 +47,7 @@ public class InlineAction extends BasePlatformRefactoringAction { } @Override - protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file) { + protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file, DataContext context) { return hasInlineActionHandler(element, PsiUtilBase.getLanguageInEditor(editor, element.getProject()), editor); } diff --git a/platform/lang-impl/src/com/intellij/refactoring/actions/SafeDeleteAction.java b/platform/lang-impl/src/com/intellij/refactoring/actions/SafeDeleteAction.java index a78daf61ee3c..c701e7c66b99 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/actions/SafeDeleteAction.java +++ b/platform/lang-impl/src/com/intellij/refactoring/actions/SafeDeleteAction.java @@ -45,7 +45,7 @@ public class SafeDeleteAction extends BaseRefactoringAction { return true; } - protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file) { + protected boolean isAvailableOnElementInEditorAndFile(final PsiElement element, final Editor editor, PsiFile file, DataContext context) { return SafeDeleteProcessor.validElement(element); } @@ -53,4 +53,4 @@ public class SafeDeleteAction extends BaseRefactoringAction { return new SafeDeleteHandler(); } -} \ No newline at end of file +} diff --git a/platform/platform-api/src/com/intellij/openapi/editor/markup/EffectType.java b/platform/platform-api/src/com/intellij/openapi/editor/markup/EffectType.java index 48c48d122f82..eaf8ef34428a 100644 --- a/platform/platform-api/src/com/intellij/openapi/editor/markup/EffectType.java +++ b/platform/platform-api/src/com/intellij/openapi/editor/markup/EffectType.java @@ -21,5 +21,6 @@ public enum EffectType { BOXED, STRIKEOUT, BOLD_LINE_UNDERSCORE, - BOLD_DOTTED_LINE + BOLD_DOTTED_LINE, + SEARCH_MATCH } diff --git a/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java b/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java index df3dfab3fe58..6b2ffa474ebc 100644 --- a/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java +++ b/platform/platform-api/src/com/intellij/ui/SimpleColoredComponent.java @@ -31,6 +31,7 @@ import javax.swing.*; import javax.swing.border.Border; import java.awt.*; import java.util.ArrayList; +import java.util.List; import java.util.Locale; import java.util.Map; @@ -284,8 +285,8 @@ public class SimpleColoredComponent extends JComponent implements Accessible { for (int i = 0; i < myAttributes.size(); i++) { SimpleTextAttributes attributes = myAttributes.get(i); - if (font.getStyle() != attributes.getStyle()) { // derive font only if it is necessary - font = font.deriveFont(attributes.getStyle()); + if (font.getStyle() != attributes.getFontStyle()) { // derive font only if it is necessary + font = font.deriveFont(attributes.getFontStyle()); } final FontMetrics metrics = getFontMetrics(font); width += metrics.stringWidth(myFragments.get(i)); @@ -332,8 +333,8 @@ public class SimpleColoredComponent extends JComponent implements Accessible { for (int i = 0; i < myAttributes.size(); i++) { SimpleTextAttributes attributes = myAttributes.get(i); - if (font.getStyle() != attributes.getStyle()) { // derive font only if it is necessary - font = font.deriveFont(attributes.getStyle()); + if (font.getStyle() != attributes.getFontStyle()) { // derive font only if it is necessary + font = font.deriveFont(attributes.getFontStyle()); } final FontMetrics metrics = getFontMetrics(font); final int curWidth = metrics.stringWidth(myFragments.get(i)); @@ -401,16 +402,18 @@ public class SimpleColoredComponent extends JComponent implements Accessible { int textStart = xOffset; xOffset += myBorder.getBorderInsets(this).left; + final List searchMatches = new ArrayList(); + // Paint text UIUtil.applyRenderingHints(g); for (int i = 0; i < myFragments.size(); i++) { final SimpleTextAttributes attributes = myAttributes.get(i); - Font font = getFont(); - if (font.getStyle() != attributes.getStyle()) { // derive font only if it is necessary - font = font.deriveFont(attributes.getStyle()); + Font font = g.getFont(); + if (font.getStyle() != attributes.getFontStyle()) { // derive font only if it is necessary + font = font.deriveFont(attributes.getFontStyle()); } g.setFont(font); - final FontMetrics metrics = getFontMetrics(font); + final FontMetrics metrics = g.getFontMetrics(font); final String fragment = myFragments.get(i); final int fragmentWidth = metrics.stringWidth(fragment); @@ -431,7 +434,8 @@ public class SimpleColoredComponent extends JComponent implements Accessible { g.setColor(color); final int textBaseline = (getHeight() - metrics.getHeight()) / 2 + metrics.getAscent(); - g.drawString(fragment, xOffset, textBaseline); + + if (!attributes.isSearchMatch()) g.drawString(fragment, xOffset, textBaseline); // 1. Strikeout effect if (attributes.isStrikeout()) { @@ -461,6 +465,10 @@ public class SimpleColoredComponent extends JComponent implements Accessible { UIUtil.drawBoldDottedLine((Graphics2D)g, xOffset, xOffset + fragmentWidth, dottedAt, bgColor, lineColor, isOpaque()); } + if (attributes.isSearchMatch()) { + searchMatches.add(new Object[] {xOffset, xOffset + fragmentWidth, textBaseline, fragment, g.getFont()}); + } + final Integer fixedWidth = myAligns.get(i); if (fixedWidth != null && fragmentWidth < fixedWidth.intValue()) { //if (fixedWidth != null) { @@ -479,6 +487,14 @@ public class SimpleColoredComponent extends JComponent implements Accessible { myBorder.paintBorder(this, g, textStart, 0, getWidth() - textStart, getHeight()); } } + + // draw search matches after all + for (final Object[] info: searchMatches) { + UIUtil.drawSearchMatch((Graphics2D)g, (Integer) info[0], (Integer) info[1], getHeight()); + g.setFont((Font) info[4]); + g.setColor(new Color(50, 50, 50)); + g.drawString((String) info[3], (Integer) info[0], (Integer) info[2]); + } } private static void checkCanPaint(Graphics g) { diff --git a/platform/platform-api/src/com/intellij/ui/SimpleTextAttributes.java b/platform/platform-api/src/com/intellij/ui/SimpleTextAttributes.java index d0c8368d9964..b0c8596518ae 100644 --- a/platform/platform-api/src/com/intellij/ui/SimpleTextAttributes.java +++ b/platform/platform-api/src/com/intellij/ui/SimpleTextAttributes.java @@ -34,6 +34,7 @@ public final class SimpleTextAttributes { public static final int STYLE_WAVED = STYLE_STRIKEOUT << 1; public static final int STYLE_UNDERLINE = STYLE_WAVED << 1; public static final int STYLE_BOLD_DOTTED_LINE = STYLE_UNDERLINE << 1; + public static final int STYLE_SEARCH_MATCH = STYLE_BOLD_DOTTED_LINE << 1; private final Color myBgColor; private final Color myFgColor; @@ -68,9 +69,10 @@ public final class SimpleTextAttributes { } public SimpleTextAttributes(final Color bgColor, final Color fgColor, final Color waveColor, final int style) { - if((~(STYLE_PLAIN | STYLE_BOLD | STYLE_ITALIC | STYLE_STRIKEOUT | STYLE_WAVED | STYLE_UNDERLINE | STYLE_BOLD_DOTTED_LINE) & style) != 0){ + if((~(STYLE_PLAIN | STYLE_BOLD | STYLE_ITALIC | STYLE_STRIKEOUT | STYLE_WAVED | STYLE_UNDERLINE | STYLE_BOLD_DOTTED_LINE | STYLE_SEARCH_MATCH) & style) != 0){ throw new IllegalArgumentException("wrong style: "+style); } + myFgColor = fgColor; myWaveColor = waveColor; myStyle = style; @@ -130,6 +132,10 @@ public final class SimpleTextAttributes { return (myStyle & STYLE_BOLD_DOTTED_LINE) != 0; } + public boolean isSearchMatch() { + return (myStyle & STYLE_SEARCH_MATCH) != 0; + } + public static SimpleTextAttributes fromTextAttributes(TextAttributes attributes) { if (attributes == null) return REGULAR_ATTRIBUTES; @@ -151,6 +157,9 @@ public final class SimpleTextAttributes { else if (effectType == EffectType.BOLD_DOTTED_LINE) { style |= STYLE_UNDERLINE; } + else if (effectType == EffectType.SEARCH_MATCH) { + style |= STYLE_SEARCH_MATCH; + } else{ // not supported } @@ -158,6 +167,10 @@ public final class SimpleTextAttributes { return new SimpleTextAttributes(attributes.getBackgroundColor(), foregroundColor, attributes.getEffectColor(), style); } + public int getFontStyle() { + return myStyle & FONT_MASK; + } + public TextAttributes toTextAttributes() { Color effectColor; EffectType effectType; @@ -176,6 +189,10 @@ public final class SimpleTextAttributes { effectColor = myWaveColor; effectType = EffectType.BOLD_DOTTED_LINE; } + else if (isSearchMatch()) { + effectColor = myWaveColor; + effectType = EffectType.SEARCH_MATCH; + } else{ effectColor = null; effectType = null; diff --git a/platform/platform-impl/src/com/intellij/ide/ui/search/SearchUtil.java b/platform/platform-impl/src/com/intellij/ide/ui/search/SearchUtil.java index 5d21a20cd18c..9f4c225b4c8f 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/search/SearchUtil.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/search/SearchUtil.java @@ -32,7 +32,6 @@ import com.intellij.ui.components.JBList; import com.intellij.util.Alarm; import com.intellij.util.Consumer; import com.intellij.util.containers.ContainerUtil; -import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -408,13 +407,15 @@ public class SearchUtil { int idx = 0; for (String word : selectedWords) { text = text.substring(idx); - textRenderer.append(text.substring(0, text.indexOf(word)), new SimpleTextAttributes(background, foreground, null, style)); + final String before = text.substring(0, text.indexOf(word)); + if (before.length() > 0) textRenderer.append(before, new SimpleTextAttributes(background, foreground, null, style)); idx = text.indexOf(word) + word.length(); - textRenderer.append(text.substring(idx - word.length(), idx), new SimpleTextAttributes(UIUtil.getTreeSelectionBackground(), - UIUtil.getTreeSelectionForeground(), null, - style)); + textRenderer.append(text.substring(idx - word.length(), idx), new SimpleTextAttributes(background, + foreground, null, + style | SimpleTextAttributes.STYLE_SEARCH_MATCH)); } - textRenderer.append(text.substring(idx, text.length()), new SimpleTextAttributes(background, foreground, null, style)); + final String after = text.substring(idx, text.length()); + if (after.length() > 0) textRenderer.append(after, new SimpleTextAttributes(background, foreground, null, style)); } } diff --git a/platform/platform-resources/src/META-INF/LangExtensionPoints.xml b/platform/platform-resources/src/META-INF/LangExtensionPoints.xml index 2ed07e36870f..f590d90b873f 100644 --- a/platform/platform-resources/src/META-INF/LangExtensionPoints.xml +++ b/platform/platform-resources/src/META-INF/LangExtensionPoints.xml @@ -250,7 +250,7 @@ - + @@ -260,9 +260,9 @@ - - - + + + @@ -277,7 +277,6 @@ beanClass="com.intellij.lang.LanguageExtensionPoint"/> - @@ -304,7 +303,7 @@ - + @@ -343,7 +342,7 @@ - + @@ -380,9 +379,9 @@ interface="com.intellij.openapi.roots.ui.configuration.ModuleConfigurationEditorProvider" area="IDEA_MODULE"/> - - - + + + diff --git a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml index 2faa663043a6..9a0c7693a1ec 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml @@ -60,7 +60,7 @@ interface="com.intellij.projectImport.ProjectOpenProcessor"/> + beanClass="com.intellij.codeInsight.hint.TooltipLinkHandlerEP"/> diff --git a/platform/platform-resources/src/META-INF/XmlPlugin.xml b/platform/platform-resources/src/META-INF/XmlPlugin.xml index 836f090855fa..d3033bc7c2b6 100644 --- a/platform/platform-resources/src/META-INF/XmlPlugin.xml +++ b/platform/platform-resources/src/META-INF/XmlPlugin.xml @@ -233,8 +233,6 @@ - - - + diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/formatter/GroovyCodeStyleFormatterTest.java b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/formatter/GroovyCodeStyleFormatterTest.java index 981311c3407a..06eede2b3675 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/formatter/GroovyCodeStyleFormatterTest.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/formatter/GroovyCodeStyleFormatterTest.java @@ -46,7 +46,7 @@ public class GroovyCodeStyleFormatterTest extends GroovyFormatterTestCase { final String[] strings = matcher.group(1).split("="); String name = strings[0]; final CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(getProject()); - final Field field = CodeStyleSettings.class.getDeclaredField(name); + final Field field = CodeStyleSettings.class.getField(name); final String value = strings[1]; if ("true".equals(value) || "false".equals(value)) { field.set(settings, Boolean.parseBoolean(value)); @@ -55,7 +55,7 @@ public class GroovyCodeStyleFormatterTest extends GroovyFormatterTestCase { field.set(settings, Integer.parseInt(value)); } catch (NumberFormatException e) { - field.set(settings, CodeStyleSettings.class.getDeclaredField(value).get(value)); + field.set(settings, CodeStyleSettings.class.getField(value).get(value)); } } input = input.substring(matcher.end()); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/refactorings/extract/ExtractManagedDependenciesAction.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/refactorings/extract/ExtractManagedDependenciesAction.java index 809d10c157a4..74a4282b8ea4 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/refactorings/extract/ExtractManagedDependenciesAction.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/refactorings/extract/ExtractManagedDependenciesAction.java @@ -72,8 +72,8 @@ public class ExtractManagedDependenciesAction extends BaseRefactoringAction { } @Override - protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file) { - if (!super.isAvailableOnElementInEditorAndFile(element, editor, file)) return false; + protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file, DataContext context) { + if (!super.isAvailableOnElementInEditorAndFile(element, editor, file, context)) return false; return findDependencyAndParent(file, editor) != null; } @@ -254,4 +254,4 @@ public class ExtractManagedDependenciesAction extends BaseRefactoringAction { myExtractExclusions = extractExclusions; } } -} \ No newline at end of file +} diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/refactorings/introduce/IntroducePropertyAction.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/refactorings/introduce/IntroducePropertyAction.java index 7697257d2dd7..cc72080108da 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/refactorings/introduce/IntroducePropertyAction.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/refactorings/introduce/IntroducePropertyAction.java @@ -75,8 +75,8 @@ public class IntroducePropertyAction extends BaseRefactoringAction { } @Override - protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file) { - if (!super.isAvailableOnElementInEditorAndFile(element, editor, file)) return false; + protected boolean isAvailableOnElementInEditorAndFile(PsiElement element, Editor editor, PsiFile file, DataContext context) { + if (!super.isAvailableOnElementInEditorAndFile(element, editor, file, context)) return false; return getSelectedElementAndTextRange(editor, file) != null; } @@ -359,4 +359,4 @@ public class IntroducePropertyAction extends BaseRefactoringAction { } return isInsideProperty; } -} \ No newline at end of file +} diff --git a/xml/dom-impl/src/META-INF/DomPlugin.xml b/xml/dom-impl/src/META-INF/DomPlugin.xml index d4be4f6708f5..8d2f13e7ee10 100644 --- a/xml/dom-impl/src/META-INF/DomPlugin.xml +++ b/xml/dom-impl/src/META-INF/DomPlugin.xml @@ -4,10 +4,10 @@ interface="com.intellij.util.xml.DomFileDescription"/> + beanClass="com.intellij.util.xml.impl.DomImplementationClassEP"/> + beanClass="com.intellij.util.xml.reflect.DomExtenderEP"/>