diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/FileIndentOptionsProvider.java b/platform/lang-api/src/com/intellij/psi/codeStyle/FileIndentOptionsProvider.java index bc4d6cf63065..3003d23e4f06 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/FileIndentOptionsProvider.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/FileIndentOptionsProvider.java @@ -22,6 +22,8 @@ import com.intellij.psi.PsiFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import javax.swing.*; + /** * @author Rustam Vishnyakov */ @@ -54,6 +56,14 @@ public abstract class FileIndentOptionsProvider { return null; } + /** + * @return The icon to be displayed in a notification message, can be null (no icon). + */ + @Nullable + public Icon getIcon() { + return null; + } + /** * @return True if the provider can be disabled (default is false). */ diff --git a/platform/lang-impl/src/com/intellij/psi/codeStyle/autodetect/DetectedIndentOptionsNotificationProvider.java b/platform/lang-impl/src/com/intellij/psi/codeStyle/autodetect/DetectedIndentOptionsNotificationProvider.java index 9514d4c3bb8b..1a9f18571ae3 100644 --- a/platform/lang-impl/src/com/intellij/psi/codeStyle/autodetect/DetectedIndentOptionsNotificationProvider.java +++ b/platform/lang-impl/src/com/intellij/psi/codeStyle/autodetect/DetectedIndentOptionsNotificationProvider.java @@ -80,6 +80,9 @@ public class DetectedIndentOptionsNotificationProvider extends EditorNotificatio final EditorNotificationPanel panel = new EditorNotificationPanel() .text(ApplicationBundle.message("code.style.indents.detector.message", provider.getDisplayName())); + if (provider.getIcon() != null) { + panel.icon(provider.getIcon()); + } panel.createActionLabel( ApplicationBundle.message("code.style.indents.detector.accept"), new Runnable() { diff --git a/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java b/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java index 2ce4252445a7..c178bbd99ab5 100644 --- a/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java @@ -195,6 +195,7 @@ public class BalloonImpl implements Balloon, IdeTooltip.Ui { @Override public boolean isInside(@NotNull RelativePoint target) { + if (myComp == null) return false; Component cmp = target.getOriginalComponent(); if (!cmp.isShowing()) return true; diff --git a/platform/platform-impl/src/org/jetbrains/io/JsonUtil.java b/platform/platform-impl/src/org/jetbrains/io/JsonUtil.java index ebc46a882d57..04f5e1406d01 100644 --- a/platform/platform-impl/src/org/jetbrains/io/JsonUtil.java +++ b/platform/platform-impl/src/org/jetbrains/io/JsonUtil.java @@ -1,5 +1,6 @@ package org.jetbrains.io; +import com.intellij.util.ArrayUtil; import com.intellij.util.SmartList; import gnu.trove.THashMap; import org.jetbrains.annotations.NotNull; @@ -76,7 +77,7 @@ public class JsonUtil { public static Object[] nextArray(JsonReaderEx reader) { List list = nextList(reader); - return list.toArray(new Object[list.size()]); + return ArrayUtil.toObjectArray(list); } public static Map nextObject(JsonReaderEx reader) { diff --git a/platform/platform-impl/src/org/jetbrains/io/jsonRpc/JsonRpcServer.java b/platform/platform-impl/src/org/jetbrains/io/jsonRpc/JsonRpcServer.java index f1fb05038398..73dee8c76ad6 100644 --- a/platform/platform-impl/src/org/jetbrains/io/jsonRpc/JsonRpcServer.java +++ b/platform/platform-impl/src/org/jetbrains/io/jsonRpc/JsonRpcServer.java @@ -135,7 +135,7 @@ public class JsonRpcServer implements MessageServer { if (reader.hasNext()) { List list = new SmartList(); JsonUtil.readListBody(reader, list); - parameters = list.toArray(new Object[list.size()]); + parameters = ArrayUtil.toObjectArray(list); } else { parameters = ArrayUtilRt.EMPTY_OBJECT_ARRAY; @@ -360,7 +360,7 @@ public class JsonRpcServer implements MessageServer { } @Override - public T read(@SuppressWarnings("UnnecessaryFullyQualifiedName") com.google.gson.stream.JsonReader in) throws IOException { + public T read(com.google.gson.stream.JsonReader in) throws IOException { throw new UnsupportedOperationException(); } } diff --git a/platform/script-debugger/backend/src/org/jetbrains/concurrency/Promise.java b/platform/script-debugger/backend/src/org/jetbrains/concurrency/Promise.java index 221ee48fe4a6..a8d99229e738 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/concurrency/Promise.java +++ b/platform/script-debugger/backend/src/org/jetbrains/concurrency/Promise.java @@ -14,7 +14,7 @@ public abstract class Promise { public static final Promise REJECTED = new RejectedPromise(createError("rejected")); @NotNull - public static Throwable createError(@NotNull String error) { + public static RuntimeException createError(@NotNull String error) { return new MessageError(error); } @@ -173,7 +173,8 @@ public abstract class Promise { }); } - public static class MessageError extends Throwable { + @SuppressWarnings("ExceptionClassNameDoesntEndWithException") + public static class MessageError extends RuntimeException { public MessageError(@NotNull String error) { super(error); } diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManagerBase.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManagerBase.java index 87d374204439..c738035e4dd3 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManagerBase.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManagerBase.java @@ -110,6 +110,7 @@ public abstract class BreakpointManagerBase> impleme return Promise.all(promises); } + @NotNull protected abstract Promise doClearBreakpoint(@NotNull T breakpoint); @Override diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/Script.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/Script.java index e44d308977d3..fd09ff059e37 100755 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/Script.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/Script.java @@ -25,6 +25,7 @@ public interface Script extends UserDataHolderEx, HasUrl { @Nullable SourceMap getSourceMap(); + @Override @NotNull Url getUrl(); diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptManager.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptManager.java index 982e0d58f849..1132b284e16d 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptManager.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptManager.java @@ -1,7 +1,5 @@ package org.jetbrains.debugger; -import com.intellij.openapi.util.ActionCallback; -import com.intellij.openapi.util.AsyncResult; import com.intellij.util.CommonProcessors; import com.intellij.util.Processor; import org.jetbrains.annotations.NotNull; @@ -43,5 +41,5 @@ public interface ScriptManager { Script findScriptById(@NotNull String id); @Nullable - ActionCallback getScriptSourceMapLoadCallback(@NotNull Script script); + Promise getScriptSourceMapPromise(@NotNull Script script); } \ No newline at end of file diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptManagerBase.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptManagerBase.java index 9b3a225e4272..ceb019afb41d 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptManagerBase.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/ScriptManagerBase.java @@ -1,6 +1,5 @@ package org.jetbrains.debugger; -import com.intellij.openapi.util.ActionCallback; import com.intellij.util.CommonProcessors; import com.intellij.util.Processor; import com.intellij.util.Url; @@ -44,7 +43,7 @@ public abstract class ScriptManagerBase