diff options
Diffstat (limited to 'platform/core-api/src/com')
7 files changed, 43 insertions, 23 deletions
diff --git a/platform/core-api/src/com/intellij/openapi/project/DumbService.java b/platform/core-api/src/com/intellij/openapi/project/DumbService.java index ad5c36a5d3e2..a0f5b43ce308 100644 --- a/platform/core-api/src/com/intellij/openapi/project/DumbService.java +++ b/platform/core-api/src/com/intellij/openapi/project/DumbService.java @@ -87,13 +87,15 @@ public abstract class DumbService { } @Nullable - public <T> T tryRunReadActionInSmartMode(@NotNull Computable<T> task, @NotNull String notification) { + public <T> T tryRunReadActionInSmartMode(@NotNull Computable<T> task, @Nullable String notification) { if (ApplicationManager.getApplication().isReadAccessAllowed()) { try { return task.compute(); } catch (IndexNotReadyException e) { - showDumbModeNotification(notification); + if (notification != null) { + showDumbModeNotification(notification); + } return null; } } diff --git a/platform/core-api/src/com/intellij/openapi/util/AsyncValueLoader.java b/platform/core-api/src/com/intellij/openapi/util/AsyncValueLoader.java index f3b13dc6963c..e5b230788424 100644 --- a/platform/core-api/src/com/intellij/openapi/util/AsyncValueLoader.java +++ b/platform/core-api/src/com/intellij/openapi/util/AsyncValueLoader.java @@ -2,6 +2,7 @@ package com.intellij.openapi.util; import com.intellij.openapi.Disposable; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.io.IOException; import java.util.concurrent.atomic.AtomicReference; @@ -125,7 +126,7 @@ public abstract class AsyncValueLoader<T> { protected abstract void load(@NotNull AsyncResult<T> result) throws IOException; - protected boolean isUpToDate(@NotNull T result) { + protected boolean isUpToDate(@Nullable T result) { return loadedModificationCount == modificationCount; } diff --git a/platform/core-api/src/com/intellij/patterns/ElementPatternCondition.java b/platform/core-api/src/com/intellij/patterns/ElementPatternCondition.java index 45b0a16909ad..c335dd62f716 100644 --- a/platform/core-api/src/com/intellij/patterns/ElementPatternCondition.java +++ b/platform/core-api/src/com/intellij/patterns/ElementPatternCondition.java @@ -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,27 +15,38 @@ */ package com.intellij.patterns; -import com.intellij.util.SmartList; import com.intellij.util.ProcessingContext; +import com.intellij.util.SmartList; import org.jetbrains.annotations.Nullable; +import java.util.Collections; import java.util.List; /** * @author peter */ +@SuppressWarnings("ForLoopReplaceableByForEach") public class ElementPatternCondition<T> { + private final InitialPatternCondition<T> myInitialCondition; - private final List<PatternCondition<? super T>> myConditions = new SmartList<PatternCondition<? super T>>(); + private final List<PatternCondition<? super T>> myConditions; public ElementPatternCondition(final InitialPatternCondition<T> startCondition) { myInitialCondition = startCondition; + myConditions = Collections.emptyList(); + } + + protected ElementPatternCondition(final ElementPatternCondition<T> original, + final PatternCondition<? super T> condition) { + myInitialCondition = original.getInitialCondition(); + myConditions = new SmartList<PatternCondition<? super T>>(original.getConditions()); + myConditions.add(condition); } public boolean accepts(@Nullable Object o, final ProcessingContext context) { if (!myInitialCondition.accepts(o, context)) return false; final int listSize = myConditions.size(); - for (int i=0; i<listSize; i++) { + for (int i = 0; i < listSize; i++) { if (!myConditions.get(i).accepts((T)o, context)) return false; } return true; @@ -66,9 +77,6 @@ public class ElementPatternCondition<T> { } public ElementPatternCondition<T> append(PatternCondition<? super T> condition) { - final ElementPatternCondition<T> copy = new ElementPatternCondition<T>(myInitialCondition); - copy.myConditions.addAll(myConditions); - copy.myConditions.add(condition); - return copy; + return new ElementPatternCondition<T>(this, condition); } } diff --git a/platform/core-api/src/com/intellij/patterns/ObjectPattern.java b/platform/core-api/src/com/intellij/patterns/ObjectPattern.java index cf9f751c9852..5a6a9c62054b 100644 --- a/platform/core-api/src/com/intellij/patterns/ObjectPattern.java +++ b/platform/core-api/src/com/intellij/patterns/ObjectPattern.java @@ -24,7 +24,10 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; /** * @author peter @@ -93,7 +96,11 @@ public abstract class ObjectPattern<T, Self extends ObjectPattern<T, Self>> impl public Self oneOf(final T... values) { final Collection<T> list; - if (values.length >= 11) { + final int length = values.length; + if (length == 1) { + list = Collections.singletonList(values[0]); + } + else if (length >= 11) { list = new HashSet<T>(Arrays.asList(values)); } else { diff --git a/platform/core-api/src/com/intellij/patterns/StringPattern.java b/platform/core-api/src/com/intellij/patterns/StringPattern.java index 13e148d479c1..ad235353ebbc 100644 --- a/platform/core-api/src/com/intellij/patterns/StringPattern.java +++ b/platform/core-api/src/com/intellij/patterns/StringPattern.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 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. @@ -56,7 +56,7 @@ public class StringPattern extends ObjectPattern<String, StringPattern> { return with(new PatternCondition<String>("startsWith") { @Override public boolean accepts(@NotNull final String str, final ProcessingContext context) { - return str.startsWith(s); + return StringUtil.startsWith(str, s); } }); } @@ -66,7 +66,7 @@ public class StringPattern extends ObjectPattern<String, StringPattern> { return with(new PatternCondition<String>("endsWith") { @Override public boolean accepts(@NotNull final String str, final ProcessingContext context) { - return str.endsWith(s); + return StringUtil.endsWith(str, s); } }); } @@ -76,9 +76,8 @@ public class StringPattern extends ObjectPattern<String, StringPattern> { return with(new PatternCondition<String>("contains") { @Override public boolean accepts(@NotNull final String str, final ProcessingContext context) { - return str.contains(s); + return StringUtil.contains(str, s); } - }); } @@ -87,10 +86,7 @@ public class StringPattern extends ObjectPattern<String, StringPattern> { return with(new PatternCondition<String>("containsChars") { @Override public boolean accepts(@NotNull final String str, final ProcessingContext context) { - for (int i=0, len=s.length(); i<len; i++) { - if (str.indexOf(s.charAt(i))>-1) return true; - } - return false; + return StringUtil.containsAnyChar(str, s); } }); } @@ -178,6 +174,7 @@ public class StringPattern extends ObjectPattern<String, StringPattern> { } }); } + public StringPattern shorterThan(final int maxLength) { return with(new PatternCondition<String>("shorterThan") { @Override @@ -186,6 +183,7 @@ public class StringPattern extends ObjectPattern<String, StringPattern> { } }); } + public StringPattern withLength(final int length) { return with(new PatternCondition<String>("withLength") { @Override diff --git a/platform/core-api/src/com/intellij/psi/stubs/DefaultStubBuilder.java b/platform/core-api/src/com/intellij/psi/stubs/DefaultStubBuilder.java index 1a8c2003efea..b4290e83651a 100644 --- a/platform/core-api/src/com/intellij/psi/stubs/DefaultStubBuilder.java +++ b/platform/core-api/src/com/intellij/psi/stubs/DefaultStubBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 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. @@ -36,11 +36,13 @@ public class DefaultStubBuilder implements StubBuilder { return buildStubTreeFor(file, createStubForFile(file)); } + @NotNull protected StubElement createStubForFile(@NotNull PsiFile file) { @SuppressWarnings("unchecked") PsiFileStubImpl stub = new PsiFileStubImpl(file); return stub; } + @NotNull private StubElement buildStubTreeFor(@NotNull PsiElement root, @NotNull StubElement parentStub) { Stack<StubElement> parentStubs = new Stack<StubElement>(); Stack<PsiElement> parentElements = new Stack<PsiElement>(); @@ -84,6 +86,7 @@ public class DefaultStubBuilder implements StubBuilder { return false; } + @NotNull protected StubElement buildStubTreeFor(@NotNull ASTNode root, @NotNull StubElement parentStub) { Stack<StubElement> parentStubs = new Stack<StubElement>(); Stack<ASTNode> parentNodes = new Stack<ASTNode>(); diff --git a/platform/core-api/src/com/intellij/ui/SimpleTextAttributes.java b/platform/core-api/src/com/intellij/ui/SimpleTextAttributes.java index 6046a0ec108c..f56cf7ee36c1 100644 --- a/platform/core-api/src/com/intellij/ui/SimpleTextAttributes.java +++ b/platform/core-api/src/com/intellij/ui/SimpleTextAttributes.java @@ -54,6 +54,7 @@ public final class SimpleTextAttributes { public static final SimpleTextAttributes GRAYED_ATTRIBUTES = new SimpleTextAttributes(STYLE_PLAIN, UIUtil.getInactiveTextColor()); public static final SimpleTextAttributes GRAYED_BOLD_ATTRIBUTES = new SimpleTextAttributes(STYLE_BOLD, UIUtil.getInactiveTextColor()); + public static final SimpleTextAttributes GRAYED_ITALIC_ATTRIBUTES = new SimpleTextAttributes(STYLE_ITALIC, UIUtil.getInactiveTextColor()); public static final SimpleTextAttributes SYNTHETIC_ATTRIBUTES = new SimpleTextAttributes(STYLE_PLAIN, JBColor.blue); public static final SimpleTextAttributes GRAY_ATTRIBUTES = new SimpleTextAttributes(STYLE_PLAIN, Color.GRAY); |