Merge remote-tracking branch 'origin/master'
@@ -1,11 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Netty">
|
||||
<CLASSES>
|
||||
<root url="jar://$PROJECT_DIR$/lib/netty-3.5.1.Final.jar!/" />
|
||||
<root url="jar://$PROJECT_DIR$/lib/netty-3.5.5.Final.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$PROJECT_DIR$/lib/src/netty-3.5.1.Final-sources.jar!/" />
|
||||
<root url="jar://$PROJECT_DIR$/lib/src/netty-3.5.5.Final-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
@@ -234,7 +234,7 @@ libraryLicense(name: "XML-RPC", libraryName: "XmlRPC", version: "2.0", license:
|
||||
libraryLicense(name: "XStream", version: "1.2.1", license: "BSD", url: "http://xstream.codehaus.org/", licenseUrl: "http://xstream.codehaus.org/license.html")
|
||||
libraryLicense(name: "YourKit Java Profiler", libraryName: "yjp-controller-api-redist.jar", version: "8.0.x", license: "link (commercial license)", url: "http://yourkit.com/", licenseUrl: "http://www.yourkit.com/purchase/license.html")
|
||||
libraryLicense(name: "protobuf", version: "2.3.0", license: "New BSD", url: "http://code.google.com/p/protobuf/", licenseUrl: "http://code.google.com/p/protobuf/source/browse/trunk/COPYING.txt?r=367")
|
||||
libraryLicense(name: "Netty", libraryName: "Netty", version: "3.3.1", license: "Apache 2.0", url: "http://netty.io", licenseUrl: "http://www.apache.org/licenses/LICENSE-2.0")
|
||||
libraryLicense(name: "Netty", libraryName: "Netty", version: "3.5.5", license: "Apache 2.0", url: "http://netty.io", licenseUrl: "http://www.apache.org/licenses/LICENSE-2.0")
|
||||
libraryLicense(name: "Kryo", libraryName: "Kryo", version: "1.04", license: "New BSD License", url: "http://code.google.com/p/kryo/", licenseUrl: "http://www.opensource.org/licenses/bsd-license.php")
|
||||
libraryLicense(name: "Snappy-Java", libraryName: "Snappy-Java", version: "1.0.4.1", license: "Apache 2.0", url: "http://code.google.com/p/snappy-java/", licenseUrl: "http://www.apache.org/licenses/LICENSE-2.0")
|
||||
libraryLicense(name: "Cucumber-JVM", libraryName: "cucumber-jvm", version: "1.0.11", license: "MIT License", url: "https://github.com/cucumber/cucumber-jvm/", licenseUrl: "http://www.opensource.org/licenses/mit-license.html")
|
||||
|
||||
@@ -151,6 +151,14 @@ class BuildMessageDispatcher extends SimpleChannelHandler {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
|
||||
final Throwable cause = e.getCause();
|
||||
if (cause != null) {
|
||||
LOG.info(cause);
|
||||
}
|
||||
ctx.sendUpstream(e);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
|
||||
|
||||
@@ -503,4 +503,17 @@ public class JavaFormatterIndentationTest extends AbstractJavaFormatterTest {
|
||||
"// This is a line comment"
|
||||
);
|
||||
}
|
||||
|
||||
public void testMultilineComment() {
|
||||
// IDEA-90860
|
||||
String text =
|
||||
"\n" +
|
||||
"/*\n" +
|
||||
" * comment\n" +
|
||||
" */\n" +
|
||||
"\n" +
|
||||
"class Test {\n" +
|
||||
"}";
|
||||
doTextTest(text, text);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package org.jetbrains.jps.model.module.impl;
|
||||
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.model.*;
|
||||
import org.jetbrains.jps.model.JpsElementChildRole;
|
||||
import org.jetbrains.jps.model.impl.JpsElementChildRoleBase;
|
||||
import org.jetbrains.jps.model.module.JpsModule;
|
||||
import org.jetbrains.jps.model.module.JpsModuleDependency;
|
||||
@@ -14,6 +15,8 @@ public class JpsModuleDependencyImpl extends JpsDependencyElementBase<JpsModuleD
|
||||
private static final JpsElementChildRole<JpsModuleReference>
|
||||
MODULE_REFERENCE_CHILD_ROLE = JpsElementChildRoleBase.create("module reference");
|
||||
|
||||
private volatile Ref<JpsModule> myCachedModule = null;
|
||||
|
||||
public JpsModuleDependencyImpl(final JpsModuleReference moduleReference) {
|
||||
super();
|
||||
myContainer.setChild(MODULE_REFERENCE_CHILD_ROLE, moduleReference);
|
||||
@@ -31,7 +34,12 @@ public class JpsModuleDependencyImpl extends JpsDependencyElementBase<JpsModuleD
|
||||
|
||||
@Override
|
||||
public JpsModule getModule() {
|
||||
return getModuleReference().resolve();
|
||||
Ref<JpsModule> moduleRef = myCachedModule;
|
||||
if (moduleRef == null) {
|
||||
moduleRef = new Ref<JpsModule>(getModuleReference().resolve());
|
||||
myCachedModule = moduleRef;
|
||||
}
|
||||
return moduleRef.get();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -45,5 +45,5 @@ xmlrpc-2.0.jar
|
||||
xpp3-1.1.4-min.jar
|
||||
xstream.jar
|
||||
swingx-core-1.6.2.jar
|
||||
netty-3.5.1.Final.jar
|
||||
netty-3.5.5.Final.jar
|
||||
protobuf-2.4.1.jar
|
||||
|
||||
|
After Width: | Height: | Size: 762 B |
|
After Width: | Height: | Size: 783 B |
|
After Width: | Height: | Size: 793 B |
|
After Width: | Height: | Size: 781 B |
|
After Width: | Height: | Size: 790 B |
|
After Width: | Height: | Size: 796 B |
|
After Width: | Height: | Size: 764 B |
|
After Width: | Height: | Size: 803 B |
|
After Width: | Height: | Size: 782 B |
|
After Width: | Height: | Size: 770 B |
|
After Width: | Height: | Size: 767 B |
|
After Width: | Height: | Size: 783 B |
|
After Width: | Height: | Size: 461 B |
|
After Width: | Height: | Size: 349 B |
|
After Width: | Height: | Size: 323 B |
|
After Width: | Height: | Size: 319 B |
|
After Width: | Height: | Size: 341 B |
|
After Width: | Height: | Size: 351 B |
|
After Width: | Height: | Size: 333 B |
|
After Width: | Height: | Size: 314 B |
|
After Width: | Height: | Size: 331 B |
|
After Width: | Height: | Size: 346 B |
|
After Width: | Height: | Size: 349 B |
|
After Width: | Height: | Size: 325 B |
|
After Width: | Height: | Size: 324 B |
|
After Width: | Height: | Size: 341 B |
|
After Width: | Height: | Size: 354 B |
|
After Width: | Height: | Size: 330 B |
|
After Width: | Height: | Size: 314 B |
|
After Width: | Height: | Size: 334 B |
|
After Width: | Height: | Size: 346 B |
|
After Width: | Height: | Size: 328 B |
|
After Width: | Height: | Size: 393 B |
|
After Width: | Height: | Size: 389 B |
|
After Width: | Height: | Size: 391 B |
|
After Width: | Height: | Size: 389 B |
|
After Width: | Height: | Size: 393 B |
|
After Width: | Height: | Size: 388 B |
|
After Width: | Height: | Size: 390 B |
|
After Width: | Height: | Size: 395 B |
|
After Width: | Height: | Size: 391 B |
|
After Width: | Height: | Size: 392 B |
|
After Width: | Height: | Size: 391 B |
|
After Width: | Height: | Size: 392 B |
@@ -393,12 +393,14 @@ class FormatProcessor {
|
||||
if (block.isLeaf() && whiteSpace.containsLineFeeds() && block.containsLineFeeds()) {
|
||||
final TextRange currentBlockRange = shiftRange(block.getTextRange(), shift);
|
||||
|
||||
IndentInside lastLineIndent = block.getLastLineIndent();
|
||||
IndentInside oldBlockIndent = whiteSpace.getInitialLastLineIndent();
|
||||
IndentInside whiteSpaceIndent = IndentInside.createIndentOn(IndentInside.getLastLine(newWhiteSpace));
|
||||
final int shiftInside = calcShift(lastLineIndent, whiteSpaceIndent, options);
|
||||
final int shiftInside = calcShift(oldBlockIndent, whiteSpaceIndent, options);
|
||||
|
||||
final TextRange newBlockRange = model.shiftIndentInsideRange(currentBlockRange, shiftInside);
|
||||
shift += newBlockRange.getLength() - block.getLength();
|
||||
if (shiftInside != 0) {
|
||||
final TextRange newBlockRange = model.shiftIndentInsideRange(currentBlockRange, shiftInside);
|
||||
shift += newBlockRange.getLength() - block.getLength();
|
||||
}
|
||||
}
|
||||
return shift;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2012 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.
|
||||
@@ -16,18 +16,22 @@
|
||||
|
||||
package com.intellij.formatting;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
|
||||
import com.intellij.util.text.CharArrayUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.LineNumberReader;
|
||||
import java.io.StringReader;
|
||||
|
||||
class IndentInside {
|
||||
public int whiteSpaces = 0;
|
||||
public int tabs = 0;
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.formatting.FormatProcessor");
|
||||
|
||||
public IndentInside() {
|
||||
}
|
||||
|
||||
public IndentInside(int whiteSpaces, int tabs) {
|
||||
this.whiteSpaces = whiteSpaces;
|
||||
this.tabs = tabs;
|
||||
}
|
||||
|
||||
public boolean equals(final Object o) {
|
||||
if (this == o) return true;
|
||||
@@ -55,13 +59,14 @@ class IndentInside {
|
||||
return whiteSpaces + tabs * options.TAB_SIZE;
|
||||
}
|
||||
|
||||
static IndentInside getLastLineIndent(final String text) {
|
||||
String lastLine = getLastLine(text);
|
||||
if (lastLine == null) return new IndentInside();
|
||||
@NotNull
|
||||
static IndentInside getLastLineIndent(@NotNull final CharSequence text) {
|
||||
CharSequence lastLine = getLastLine(text);
|
||||
return createIndentOn(lastLine);
|
||||
}
|
||||
|
||||
static IndentInside createIndentOn(@Nullable final String lastLine) {
|
||||
@NotNull
|
||||
static IndentInside createIndentOn(@Nullable final CharSequence lastLine) {
|
||||
final IndentInside result = new IndentInside();
|
||||
if (lastLine == null) {
|
||||
return result;
|
||||
@@ -73,19 +78,17 @@ class IndentInside {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Nullable static String getLastLine(final String text) {
|
||||
if (text.endsWith("\n")) return "";
|
||||
final LineNumberReader lineNumberReader = new LineNumberReader(new StringReader(text));
|
||||
String line;
|
||||
String result = null;
|
||||
try {
|
||||
while ((line = lineNumberReader.readLine()) != null) {
|
||||
result = line;
|
||||
}
|
||||
@NotNull
|
||||
static CharSequence getLastLine(@NotNull final CharSequence text) {
|
||||
int i = CharArrayUtil.shiftBackwardUntil(text, text.length() - 1, "\n");
|
||||
if (i < 0) {
|
||||
return text;
|
||||
}
|
||||
catch (IOException e) {
|
||||
LOG.assertTrue(false);
|
||||
else if (i >= text.length() - 1) {
|
||||
return "";
|
||||
}
|
||||
else {
|
||||
return text.subSequence(i + 1, text.length());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2012 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.
|
||||
@@ -29,7 +29,6 @@ class LeafBlockWrapper extends AbstractBlockWrapper {
|
||||
private LeafBlockWrapper myPreviousBlock;
|
||||
private LeafBlockWrapper myNextBlock;
|
||||
private SpacingImpl mySpaceProperty;
|
||||
private IndentInside myLastLineIndent;
|
||||
private String myDebugInfo;
|
||||
|
||||
/**
|
||||
@@ -97,12 +96,6 @@ class LeafBlockWrapper extends AbstractBlockWrapper {
|
||||
final boolean isLeaf = block.isLeaf();
|
||||
flagsValue |= isLeaf ? LEAF : 0;
|
||||
|
||||
if (isLeaf && containsLineFeeds) {
|
||||
myLastLineIndent = IndentInside.getLastLineIndent(model.getText(textRange).toString());
|
||||
} else {
|
||||
myLastLineIndent = null;
|
||||
}
|
||||
|
||||
myFlags = flagsValue;
|
||||
}
|
||||
|
||||
@@ -157,7 +150,6 @@ class LeafBlockWrapper extends AbstractBlockWrapper {
|
||||
myPreviousBlock = null;
|
||||
myNextBlock = null;
|
||||
mySpaceProperty = null;
|
||||
myLastLineIndent = null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -218,10 +210,6 @@ class LeafBlockWrapper extends AbstractBlockWrapper {
|
||||
return (myFlags & LEAF) != 0;
|
||||
}
|
||||
|
||||
public IndentInside getLastLineIndent() {
|
||||
return myLastLineIndent;
|
||||
}
|
||||
|
||||
public boolean contains(final int offset) {
|
||||
return myStart < offset && myEnd > offset;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2012 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.
|
||||
@@ -23,6 +23,7 @@ import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiWhiteSpace;
|
||||
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
|
||||
import com.intellij.psi.formatter.FormattingDocumentModelImpl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -48,9 +49,11 @@ class WhiteSpace {
|
||||
|
||||
private final int myStart;
|
||||
private int myEnd;
|
||||
|
||||
|
||||
private int mySpaces;
|
||||
private int myIndentSpaces;
|
||||
private int myInitialLastLinesSpaces;
|
||||
private int myInitialLastLinesTabs;
|
||||
|
||||
private CharSequence myInitial;
|
||||
private int myFlags;
|
||||
@@ -130,6 +133,9 @@ class WhiteSpace {
|
||||
} else {
|
||||
refreshStateOnEndOffsetDecrease(oldText, newEndOffset, oldEndOffset, options.TAB_SIZE);
|
||||
}
|
||||
IndentInside indent = IndentInside.getLastLineIndent(myInitial);
|
||||
myInitialLastLinesSpaces = indent.whiteSpaces;
|
||||
myInitialLastLinesTabs = indent.tabs;
|
||||
|
||||
if (getLineFeeds() > 0) myFlags |= CONTAINS_LF_INITIALLY;
|
||||
else myFlags &= ~CONTAINS_LF_INITIALLY;
|
||||
@@ -613,6 +619,11 @@ class WhiteSpace {
|
||||
return result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public IndentInside getInitialLastLineIndent() {
|
||||
return new IndentInside(myInitialLastLinesSpaces, myInitialLastLinesTabs);
|
||||
}
|
||||
|
||||
private static void appendNonWhitespaces(StringBuilder result, CharSequence[] lines, int currentLine) {
|
||||
// It looks like regexp usage is too heavy here.
|
||||
if (currentLine != lines.length && !lines[currentLine].toString().matches("\\s*")) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2012 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.
|
||||
@@ -104,7 +104,7 @@ public final class MacrosDialog extends DialogWrapper {
|
||||
}
|
||||
|
||||
protected void doHelpAction() {
|
||||
HelpManager.getInstance().invokeHelp("preferences.externalToolsMacro");
|
||||
HelpManager.getInstance().invokeHelp("reference.settings.ide.settings.external.tools.macros");
|
||||
}
|
||||
|
||||
protected String getDimensionServiceKey(){
|
||||
|
||||
@@ -75,7 +75,7 @@ public class LoadingDecorator {
|
||||
|
||||
final Font font = text.getFont();
|
||||
text.setFont(font.deriveFont(font.getStyle(), font.getSize() + 8));
|
||||
text.setForeground(Color.black);
|
||||
//text.setForeground(Color.black);
|
||||
|
||||
final int gap = new JLabel().getIconTextGap();
|
||||
final NonOpaquePanel result = new NonOpaquePanel(new FlowLayout(FlowLayout.CENTER, gap * 3, 0));
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.ui.speedSearch.SpeedSearchSupply;
|
||||
import com.intellij.util.IconUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -164,6 +165,11 @@ public class CommonActionsPanel extends JPanel {
|
||||
e.getPresentation().setEnabled(false);
|
||||
return;
|
||||
}
|
||||
final SpeedSearchSupply supply = SpeedSearchSupply.getSupply(contextComponent);
|
||||
if (supply != null && supply.isPopupActive()) {
|
||||
e.getPresentation().setEnabled(false);
|
||||
return;
|
||||
}
|
||||
removeButton.update(e);
|
||||
}
|
||||
}.registerCustomShortcutSet(CustomShortcutSet.fromString("DELETE", "BACK_SPACE"), removeButton.getContextComponent());
|
||||
|
||||
@@ -55,7 +55,6 @@ import java.awt.event.ComponentAdapter;
|
||||
import java.awt.event.ComponentEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.ConcurrentModificationException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -63,17 +62,10 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.actionSystem.impl.ActionToolbarImpl");
|
||||
|
||||
private static List<ActionToolbarImpl> ourToolbars = new LinkedList<ActionToolbarImpl>();
|
||||
private static Throwable ourLastModification = null;
|
||||
|
||||
public static void updateAllToolbarsImmediately() {
|
||||
try {
|
||||
ourLastModification = null;
|
||||
for (ActionToolbarImpl toolbar : ourToolbars) {
|
||||
toolbar.updateActionsImmediately();
|
||||
}
|
||||
}
|
||||
catch (ConcurrentModificationException e) {
|
||||
LOG.error(ourLastModification == null? e : ourLastModification);
|
||||
for (ActionToolbarImpl toolbar : new ArrayList<ActionToolbarImpl>(ourToolbars)) {
|
||||
toolbar.updateActionsImmediately();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +170,6 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
|
||||
@Override
|
||||
public void addNotify() {
|
||||
super.addNotify();
|
||||
ourLastModification = new ConcurrentModificationException();
|
||||
ourToolbars.add(this);
|
||||
myActionManager.addTimerListener(500, myWeakTimerListener);
|
||||
myActionManager.addTransparentTimerListener(500, myWeakTimerListener);
|
||||
@@ -199,7 +190,6 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
|
||||
@Override
|
||||
public void removeNotify() {
|
||||
super.removeNotify();
|
||||
ourLastModification = new ConcurrentModificationException();
|
||||
ourToolbars.remove(this);
|
||||
myActionManager.removeTimerListener(myWeakTimerListener);
|
||||
myActionManager.removeTransparentTimerListener(myWeakTimerListener);
|
||||
@@ -484,7 +474,7 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
|
||||
|
||||
for (final Rectangle r : bounds) {
|
||||
if (r.height < maxHeight) {
|
||||
r.y = r.y + (maxHeight - r.height) / 2;
|
||||
r.y += (maxHeight - r.height) / 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -555,7 +545,7 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
|
||||
// Lay components out
|
||||
int xOffset = insets.left;
|
||||
int yOffset = insets.top;
|
||||
// Calculate max size of a row. It's not possible to make more then 3 row toolbar
|
||||
// Calculate max size of a row. It's not possible to make more than 3 row toolbar
|
||||
final int maxRowWidth = Math.max(sizeToFit.width, componentCount * maxWidth / 3);
|
||||
for (int i = 0; i < componentCount; i++) {
|
||||
if (xOffset + maxWidth > maxRowWidth) { // place component at new row
|
||||
@@ -1185,14 +1175,12 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
|
||||
ArrayList<AnAction> result = new ArrayList<AnAction>();
|
||||
|
||||
ArrayList<AnAction> secondary = new ArrayList<AnAction>();
|
||||
if (myActionGroup != null) {
|
||||
AnAction[] kids = myActionGroup.getChildren(null);
|
||||
for (AnAction each : kids) {
|
||||
if (myActionGroup.isPrimary(each)) {
|
||||
result.add(each);
|
||||
} else {
|
||||
secondary.add(each);
|
||||
}
|
||||
AnAction[] kids = myActionGroup.getChildren(null);
|
||||
for (AnAction each : kids) {
|
||||
if (myActionGroup.isPrimary(each)) {
|
||||
result.add(each);
|
||||
} else {
|
||||
secondary.add(each);
|
||||
}
|
||||
}
|
||||
result.add(new Separator());
|
||||
|
||||
@@ -33,6 +33,7 @@ import com.intellij.openapi.vfs.impl.http.RemoteFileInfo;
|
||||
import com.intellij.openapi.vfs.impl.http.RemoteFileState;
|
||||
import com.intellij.util.EventDispatcher;
|
||||
import com.intellij.util.net.HTTPProxySettingsDialog;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.util.ui.update.MergingUpdateQueue;
|
||||
import com.intellij.util.ui.update.Update;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -152,17 +153,25 @@ public class RemoteFilePanel implements PropertyChangeListener {
|
||||
}
|
||||
|
||||
public void selectNotify() {
|
||||
myProgressUpdatesQueue.showNotify();
|
||||
if (myFileEditor != null) {
|
||||
myFileEditor.selectNotify();
|
||||
}
|
||||
UIUtil.invokeLaterIfNeeded(new Runnable() {
|
||||
public void run() {
|
||||
myProgressUpdatesQueue.showNotify();
|
||||
if (myFileEditor != null) {
|
||||
myFileEditor.selectNotify();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void deselectNotify() {
|
||||
myProgressUpdatesQueue.hideNotify();
|
||||
if (myFileEditor != null) {
|
||||
myFileEditor.deselectNotify();
|
||||
}
|
||||
UIUtil.invokeLaterIfNeeded(new Runnable() {
|
||||
public void run() {
|
||||
myProgressUpdatesQueue.hideNotify();
|
||||
if (myFileEditor != null) {
|
||||
myFileEditor.deselectNotify();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void dispose() {
|
||||
|
||||
@@ -59,7 +59,9 @@ public class TaskCheckinHandlerFactory extends CheckinHandlerFactory {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
WorkingContextManager.getInstance(project).saveContext(localTask);
|
||||
if (!project.isDisposed()) {
|
||||
WorkingContextManager.getInstance(project).saveContext(localTask);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -148,7 +148,9 @@ public class XmlEntityRefImpl extends XmlElementImpl implements XmlEntityRef {
|
||||
XmlDoctype xmlDoctype = (XmlDoctype)element;
|
||||
final String dtdUri = XmlUtil.getDtdUri(xmlDoctype);
|
||||
if (dtdUri != null) {
|
||||
final XmlFile xmlFile = XmlUtil.findNamespace(XmlUtil.getContainingFile(element), dtdUri);
|
||||
XmlFile file = XmlUtil.getContainingFile(element);
|
||||
if (file == null) return true;
|
||||
final XmlFile xmlFile = XmlUtil.findNamespace(file, dtdUri);
|
||||
if (xmlFile != null) {
|
||||
if (xmlFile != targetElement) {
|
||||
deps.add(xmlFile);
|
||||
|
||||
@@ -97,7 +97,9 @@ public class XmlTextImpl extends XmlElementImpl implements XmlText, PsiLanguageI
|
||||
child = cdata.getFirstChildNode();
|
||||
}
|
||||
else if (elementType == XmlTokenType.XML_CHAR_ENTITY_REF) {
|
||||
buffer.append(XmlUtil.getCharFromEntityRef(child.getText()));
|
||||
String text = child.getText();
|
||||
LOG.assertTrue(text != null, child);
|
||||
buffer.append(XmlUtil.getCharFromEntityRef(text));
|
||||
}
|
||||
else if (elementType == XmlTokenType.XML_WHITE_SPACE || elementType == XmlTokenType.XML_DATA_CHARACTERS || elementType == XmlTokenType
|
||||
.XML_ATTRIBUTE_VALUE_TOKEN) {
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.intellij.plugins.relaxNG.model.descriptors;
|
||||
|
||||
import com.intellij.codeInsight.daemon.Validator;
|
||||
import com.intellij.javaee.ExternalResourceManager;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.ModificationTracker;
|
||||
@@ -245,6 +246,9 @@ public class RngNsDescriptor implements XmlNSDescriptorEx, Validator {
|
||||
|
||||
public Object[] getDependences() {
|
||||
if (myPattern != null) {
|
||||
if (DumbService.isDumb(myElement.getProject())) {
|
||||
return new Object[] { ModificationTracker.EVER_CHANGED, ExternalResourceManager.getInstance()};
|
||||
}
|
||||
final Object[] a = { myElement, ExternalResourceManager.getInstance() };
|
||||
final PsiElementProcessor.CollectElements<XmlFile> processor = new PsiElementProcessor.CollectElements<XmlFile>();
|
||||
RelaxIncludeIndex.processForwardDependencies(myFile, processor);
|
||||
@@ -253,9 +257,8 @@ public class RngNsDescriptor implements XmlNSDescriptorEx, Validator {
|
||||
} else {
|
||||
return a;
|
||||
}
|
||||
} else {
|
||||
return new Object[]{ ModificationTracker.EVER_CHANGED };
|
||||
}
|
||||
return new Object[]{ ModificationTracker.EVER_CHANGED };
|
||||
}
|
||||
|
||||
public synchronized void init(PsiElement element) {
|
||||
|
||||