summaryrefslogtreecommitdiff
path: root/platform/core-api/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'platform/core-api/src/com')
-rw-r--r--platform/core-api/src/com/intellij/openapi/project/DumbService.java6
-rw-r--r--platform/core-api/src/com/intellij/openapi/util/AsyncValueLoader.java3
-rw-r--r--platform/core-api/src/com/intellij/patterns/ElementPatternCondition.java24
-rw-r--r--platform/core-api/src/com/intellij/patterns/ObjectPattern.java11
-rw-r--r--platform/core-api/src/com/intellij/patterns/StringPattern.java16
-rw-r--r--platform/core-api/src/com/intellij/psi/stubs/DefaultStubBuilder.java5
-rw-r--r--platform/core-api/src/com/intellij/ui/SimpleTextAttributes.java1
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);