Merge remote-tracking branch 'origin/master'

This commit is contained in:
Kirill Likhodedov
2012-02-21 16:14:08 +04:00
232 changed files with 6316 additions and 1605 deletions
+1
View File
@@ -6,6 +6,7 @@
<component name="CompilerConfiguration">
<option name="DEFAULT_COMPILER" value="Javac" />
<excludeFromCompile>
<file url="file://$PROJECT_DIR$/jps/jps-builders/src/org/jetbrains/jps/incremental/java/OptimizedFileManager.java" />
<file url="file://$PROJECT_DIR$/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager.java" />
<file url="file://$PROJECT_DIR$/jps/jps-builders/src/org/jetbrains/jps/javac/OptimizedFileManager17.java" />
</excludeFromCompile>
@@ -33,7 +33,6 @@ import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
/**
* Image Editor.
@@ -87,9 +86,9 @@ final class ImageFileEditorImpl extends UserDataHolderBase implements ImageFileE
if (state instanceof ImageFileEditorState) {
ImageFileEditorState editorState = (ImageFileEditorState) state;
ImageZoomModel zoomModel = imageEditor.getZoomModel();
imageEditor.setTransparencyChessboardVisible(editorState.backgroundVisible);
imageEditor.setGridVisible(editorState.gridVisible);
zoomModel.setZoomFactor(editorState.zoomFactor);
imageEditor.setTransparencyChessboardVisible(editorState.isBackgroundVisible());
imageEditor.setGridVisible(editorState.isGridVisible());
zoomModel.setZoomFactor(editorState.getZoomFactor());
}
}
@@ -134,22 +133,4 @@ final class ImageFileEditorImpl extends UserDataHolderBase implements ImageFileE
public ImageEditor getImageEditor() {
return imageEditor;
}
private static class ImageFileEditorState implements FileEditorState, Serializable {
private static final long serialVersionUID = -4470317464706072486L;
private final boolean backgroundVisible;
private final boolean gridVisible;
private final double zoomFactor;
private ImageFileEditorState(boolean backgroundVisible, boolean gridVisible, double zoomFactor) {
this.backgroundVisible = backgroundVisible;
this.gridVisible = gridVisible;
this.zoomFactor = zoomFactor;
}
public boolean canBeMergedWith(FileEditorState otherState, FileEditorStateLevel level) {
return otherState instanceof ImageFileEditorState;
}
}
}
@@ -0,0 +1,93 @@
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.intellij.images.editor.impl;
import com.intellij.openapi.fileEditor.FileEditorState;
import com.intellij.openapi.fileEditor.FileEditorStateLevel;
import com.intellij.openapi.fileEditor.TransferableFileEditorState;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
/**
* @author Konstantin Bulenkov
*/
public class ImageFileEditorState implements TransferableFileEditorState, Serializable {
private static final long serialVersionUID = -4470317464706072486L;
public static final String IMAGE_EDITOR_ID = "ImageEditor";
public static final String BACKGROUND_VISIBLE_OPTION = "backgroundVisible";
public static final String GRID_VISIBLE_OPTION = "gridVisible";
public static final String ZOOM_FACTOR_OPTION = "zoomFactor";
private boolean backgroundVisible;
private boolean gridVisible;
private double zoomFactor;
ImageFileEditorState(boolean backgroundVisible, boolean gridVisible, double zoomFactor) {
this.backgroundVisible = backgroundVisible;
this.gridVisible = gridVisible;
this.zoomFactor = zoomFactor;
}
public boolean canBeMergedWith(FileEditorState otherState, FileEditorStateLevel level) {
return otherState instanceof ImageFileEditorState;
}
public boolean isBackgroundVisible() {
return backgroundVisible;
}
public boolean isGridVisible() {
return gridVisible;
}
public double getZoomFactor() {
return zoomFactor;
}
@Override
public String getEditorId() {
return IMAGE_EDITOR_ID;
}
@Override
public Map<String, String> getTransferableOptions() {
final HashMap<String, String> map = new HashMap<String, String>();
map.put(BACKGROUND_VISIBLE_OPTION, String.valueOf(backgroundVisible));
map.put(GRID_VISIBLE_OPTION, String.valueOf(gridVisible));
map.put(ZOOM_FACTOR_OPTION, String.valueOf(zoomFactor));
return map;
}
@Override
public void setTransferableOptions(Map<String, String> options) {
String o = options.get(BACKGROUND_VISIBLE_OPTION);
if (o != null) {
backgroundVisible = Boolean.valueOf(o);
}
o = options.get(GRID_VISIBLE_OPTION);
if (o != null) {
gridVisible = Boolean.valueOf(o);
}
o = options.get(ZOOM_FACTOR_OPTION);
if (o != null) {
zoomFactor = Double.valueOf(o);
}
}
}
@@ -280,7 +280,8 @@ public class CompileServerManager implements ApplicationComponent{
continue;
}
final RequestFuture future = submitCompilationTask(project, false, true, Collections.<String>emptyList(), Collections.<String>emptyList(),
Collections.<String>emptyList(), new AutoMakeResponseHandler(project));
Collections.<String>emptyList(), Collections.<String, String>emptyMap(), new AutoMakeResponseHandler(project)
);
if (future != null) {
futures.add(future);
synchronized (myAutomakeFutures) {
@@ -312,9 +313,10 @@ public class CompileServerManager implements ApplicationComponent{
}
@Nullable
public RequestFuture submitCompilationTask(final Project project, final boolean isRebuild, final boolean isMake,
final Collection<String> modules, final Collection<String> artifacts,
final Collection<String> paths, final JpsServerResponseHandler handler) {
public RequestFuture submitCompilationTask(final Project project, final boolean isRebuild, final boolean isMake,
final Collection<String> modules, final Collection<String> artifacts,
final Collection<String> paths,
final Map<String, String> userData, final JpsServerResponseHandler handler) {
final String projectId = project.getLocation();
final Ref<RequestFuture> futureRef = new Ref<RequestFuture>(null);
final RunnableFuture future = myTaskExecutor.submit(new Runnable() {
@@ -324,7 +326,7 @@ public class CompileServerManager implements ApplicationComponent{
if (client != null) {
final RequestFuture requestFuture = isRebuild ?
client.sendRebuildRequest(projectId, handler) :
client.sendCompileRequest(isMake, projectId, modules, artifacts, paths, handler);
client.sendCompileRequest(isMake, projectId, modules, artifacts, paths, userData, handler);
futureRef.set(requestFuture);
}
else {
@@ -430,7 +430,24 @@ public class CompileDriver {
final CompileServerManager csManager = CompileServerManager.getInstance();
final MessageBus messageBus = myProject.getMessageBus();
csManager.cancelAutoMakeTasks(myProject);
return csManager.submitCompilationTask(myProject, compileContext.isRebuild(), compileContext.isMake(), moduleNames, artifactNames, paths, new JpsServerResponseHandler() {
final CompileScope scope = compileContext.getCompileScope();
final Map<String, String> userData;
// need to pass scope's user data to server
if (scope instanceof UserDataHolderBase) { // hack
userData = new HashMap<String, String>();
((UserDataHolderBase)scope).copyUserDataTo(new UserDataHolderBase() {
@Override
public <T> void putUserData(@NotNull Key<T> key, @Nullable T value) {
final String _key = key.toString();
final String _value = value != null? value.toString() : "";
userData.put(_key, _value);
}
});
}
else {
userData = Collections.emptyMap();
}
return csManager.submitCompilationTask(myProject, compileContext.isRebuild(), compileContext.isMake(), moduleNames, artifactNames, paths, userData, new JpsServerResponseHandler() {
@Override
public void handleCompileMessage(JpsRemoteProto.Message.Response.CompileMessage compilerMessage) {
@@ -50,6 +50,7 @@ public class ResourceCompiler implements TranslatingCompiler {
private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.impl.resourceCompiler.ResourceCompiler");
private final Project myProject;
private final CompilerConfiguration myConfiguration;
private final ResourceCompilerExtension[] myResourceCompilerExtensions = ResourceCompilerExtension.EP_NAME.getExtensions();
private static final FileTypeManager FILE_TYPE_MANAGER = FileTypeManager.getInstance();
public ResourceCompiler(Project project, CompilerConfiguration compilerConfiguration) {
@@ -68,6 +69,11 @@ public class ResourceCompiler implements TranslatingCompiler {
}
public boolean isCompilableFile(VirtualFile file, CompileContext context) {
final Module module = context.getModuleByFile(file);
if (module != null && skipStandardResourceCompiler(module)) {
return false;
}
return !StdFileTypes.JAVA.equals(file.getFileType()) && myConfiguration.isResourceFile(file);
}
@@ -81,8 +87,6 @@ public class ResourceCompiler implements TranslatingCompiler {
ApplicationManager.getApplication().runReadAction(new Runnable() {
public void run() {
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(myProject).getFileIndex();
OUTER:
for (final VirtualFile file : files) {
if (context.getProgressIndicator().isCanceled()) {
break;
@@ -91,13 +95,6 @@ public class ResourceCompiler implements TranslatingCompiler {
if (module == null) {
continue; // looks like file invalidated
}
for (ResourceCompilerExtension extension : ResourceCompilerExtension.EP_NAME.getExtensions()) {
if (extension.skipStandardResourceCompiler(module)) {
continue OUTER;
}
}
final VirtualFile fileRoot = MakeUtil.getSourceRoot(context, module, file);
if (fileRoot == null) {
continue;
@@ -164,6 +161,15 @@ public class ResourceCompiler implements TranslatingCompiler {
context.getProgressIndicator().popState();
}
private boolean skipStandardResourceCompiler(final Module module) {
for (ResourceCompilerExtension extension : myResourceCompilerExtensions) {
if (extension.skipStandardResourceCompiler(module)) {
return true;
}
}
return false;
}
private static void addToMap(Map<String, Collection<OutputItem>> map, String outputDir, OutputItem item) {
Collection<OutputItem> list = map.get(outputDir);
if (list == null) {
@@ -66,7 +66,10 @@ import com.intellij.openapi.editor.Document;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.util.*;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.wm.ToolWindowId;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.psi.PsiDocumentManager;
@@ -1215,40 +1218,12 @@ public abstract class DebugProcessImpl implements DebugProcess {
}
private static boolean isVisibleFromClassLoader(final ClassLoaderReference fromLoader, final ReferenceType refType) {
final ClassLoaderReference typeLoader = refType.classLoader();
if (typeLoader == null) {
return true; // optimization: if class is loaded by a bootstrap loader, it is visible from every other loader
}
for (ClassLoaderReference checkLoader = fromLoader; checkLoader != null; checkLoader = getParentLoader(checkLoader)) {
if (Comparing.equal(typeLoader, checkLoader)) {
return true;
}
}
return fromLoader != null && fromLoader.visibleClasses().contains(refType);
}
@SuppressWarnings({"HardCodedStringLiteral"})
private static ClassLoaderReference getParentLoader(final ClassLoaderReference fromLoader) {
final ReferenceType refType = fromLoader.referenceType();
Field field = refType.fieldByName("parent");
if (field == null) {
final List<Field> allFields = refType.allFields();
for (Field candidateField : allFields) {
try {
final Type checkedType = candidateField.type();
if (checkedType instanceof ReferenceType &&
DebuggerUtilsEx.isAssignableFrom("java.lang.ClassLoader", (ReferenceType)checkedType)) {
field = candidateField;
break;
}
}
catch (ClassNotLoadedException e) {
// ignore this and continue,
// java.lang.ClassLoader must be loaded at the moment of check, so if this happens, the field's type is definitely not java.lang.ClassLoader
}
}
}
return field != null? (ClassLoaderReference)fromLoader.getValue(field) : null;
// IMPORTANT! Even if the refType is already loaded by some parent or bootstrap loader, it may not be visible from the given loader.
// For example because there were no accesses yet from this loader to this class. So the loader is not in the list of "initialing" loaders
// for this refType and the refType is not visible to the loader.
// Attempt to evaluate method with this refType will yield ClassNotLoadedException.
// The only way to say for sure whether the class is _visible_ to the given loader, is to use the following API call
return fromLoader == null || fromLoader.visibleClasses().contains(refType);
}
private static String reformatArrayName(String className) {
@@ -162,10 +162,7 @@ public class JavaExecutionUtil {
public static String getShortClassName(final String fqName) {
if (fqName == null) return "";
final int dotIndex = fqName.lastIndexOf('.');
if (dotIndex == fqName.length() - 1) return "";
if (dotIndex < 0) return fqName;
return fqName.substring(dotIndex + 1, fqName.length());
return StringUtil.getShortName(fqName);
}
public static void showExecutionErrorMessage(final ExecutionException e, final String title, final Project project) {
@@ -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.
@@ -77,15 +77,36 @@ public class ChangeNewOperatorTypeFix implements IntentionAction {
int caretOffset;
TextRange selection;
if (toType instanceof PsiArrayType) {
caretOffset = -2;
@NonNls String text = "new " + toType.getDeepComponentType().getCanonicalText() + "[0]";
final PsiExpression[] originalExpressionArrayDimensions = originalExpression.getArrayDimensions();
caretOffset = 0;
@NonNls String text = "new " + toType.getDeepComponentType().getCanonicalText() + "[";
if (originalExpressionArrayDimensions.length > 0) {
text += originalExpressionArrayDimensions[0].getText();
}
else {
text += "0";
caretOffset = -2;
}
text += "]";
for (int i = 1; i < toType.getArrayDimensions(); i++) {
text += "[]";
caretOffset -= 2;
text += "[";
String arrayDimension = "";
if (originalExpressionArrayDimensions.length > i) {
arrayDimension = originalExpressionArrayDimensions[i].getText();
text += arrayDimension;
}
text += "]";
if (caretOffset < 0) {
caretOffset -= arrayDimension.length() + 2;
}
}
newExpression = (PsiNewExpression)factory.createExpressionFromText(text, originalExpression);
selection = new TextRange(caretOffset, caretOffset+1);
if (caretOffset < 0) {
selection = new TextRange(caretOffset, caretOffset+1);
} else {
selection = null;
}
}
else {
final PsiAnonymousClass anonymousClass = originalExpression.getAnonymousClass();
@@ -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.
@@ -79,7 +79,10 @@ public class ImplementAbstractMethodAction extends BaseIntentionAction {
}
protected String getIntentionName(final PsiMethod method) {
return CodeInsightBundle.message("intention.implement.abstract.method.text", method.getName());
return method.hasModifierProperty(PsiModifier.ABSTRACT) ?
CodeInsightBundle.message("intention.implement.abstract.method.text", method.getName()) :
CodeInsightBundle.message("intention.override.method.text", method.getName())
;
}
static class MyElementProcessor implements PsiElementProcessor {
@@ -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.
@@ -150,6 +150,10 @@ public class DeprecationInspection extends BaseJavaLocalInspectionTool {
assert containingClass != null;
final PsiClass superClass = containingClass.getSuperClass();
if (hasDefaultDeprecatedConstructor(superClass)) {
if (superClass instanceof PsiAnonymousClass) {
final PsiExpressionList argumentList = ((PsiAnonymousClass)superClass).getArgumentList();
if (argumentList != null && argumentList.getExpressions().length > 0) return;
}
final PsiCodeBlock body = method.getBody();
if (body != null) {
final PsiStatement[] statements = body.getStatements();
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2011 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.
@@ -762,12 +762,11 @@ public class ExtractMethodProcessor implements MatchProvider {
}
adjustFinalParameters(newMethod);
for (int i = 0, length = myVariableDatum.length; i < length; i++) {
ParameterTablePanel.VariableData data = myVariableDatum[i];
int i = 0;
for (ParameterTablePanel.VariableData data : myVariableDatum) {
if (!data.passAsParameter) continue;
final PsiVariable variable = data.variable;
final PsiParameter psiParameter = newMethod.getParameterList().getParameters()[i];
final PsiParameter psiParameter = newMethod.getParameterList().getParameters()[i++];
if (!TypeConversionUtil.isAssignable(variable.getType(), psiParameter.getType())) {
for (PsiReference reference : ReferencesSearch.search(psiParameter, new LocalSearchScope(body))){
final PsiElement element = reference.getElement();
@@ -51,7 +51,7 @@ public class DefaultClsStubBuilderFactory extends ClsStubBuilderFactory {
return file;
}
catch (Exception e) {
LOG.warn(vFile.getPath(), e);
LOG.debug(vFile.getPath(), e);
throw new ClsFormatException();
}
}
@@ -1,9 +1,25 @@
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// "Change 'new TTT[0][]' to 'new TTT[]'" "true"
public class TTT {
void f() {
String s = new Object();
int[][] i = new Object();
TTT[] f = new TTT[<caret><selection>0</selection>];
TTT[] f = new TTT[0]<caret>;
}
}
@@ -0,0 +1,21 @@
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// "Change 'new X[42]' to 'new long[]'" "true"
class X {
public long[] foo() { return new long[42]; }
}
@@ -0,0 +1,21 @@
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// "Change 'new X[42]' to 'new long[]'" "true"
class X {
public long[] foo() { return <caret>new X[42]; }
}
@@ -1,4 +1,20 @@
// "Implement method 'foo'" "true"
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// "Override method 'foo'" "true"
class Test {
protected void foo(){}
}
@@ -1,4 +1,20 @@
// "Implement method 'foo'" "false"
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// "Override method 'foo'" "false"
class Test {
private void f<caret>oo(){}
}
@@ -1,4 +1,20 @@
// "Implement method 'foo'" "true"
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// "Override method 'foo'" "true"
class Test {
protected void f<caret>oo(){}
}
@@ -0,0 +1,13 @@
Cleaning output files:
out/production/ChangeExtends2/Victim$SubVictim.class
out/production/ChangeExtends2/Victim.class
End of files
Compiling files:
src/Victim.java
End of files
Cleaning output files:
out/production/ChangeExtends2/Main.class
End of files
Compiling files:
src/Main.java
End of files
@@ -0,0 +1 @@
changeExtends2
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="DEFAULT_COMPILER" value="Javac" />
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="?*.properties" />
<entry name="?*.xml" />
<entry name="?*.gif" />
<entry name="?*.png" />
<entry name="?*.jpeg" />
<entry name="?*.jpg" />
<entry name="?*.html" />
<entry name="?*.dtd" />
<entry name="?*.tld" />
<entry name="?*.ftl" />
</wildcardResourcePatterns>
<annotationProcessing enabled="false" useClasspath="true" />
</component>
</project>
@@ -0,0 +1,5 @@
<component name="CopyrightManager">
<settings default="">
<module2copyright />
</settings>
</component>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
</project>
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="IDEA jdk" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="masterDetails">
<states>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>IDEA jdk</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.20000002" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/ChangeExtends2.iml" filepath="$PROJECT_DIR$/ChangeExtends2.iml" />
</modules>
</component>
</project>
@@ -0,0 +1,5 @@
<component name="DependencyValidationManager">
<state>
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
</state>
</component>
@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="" />
</component>
</project>
@@ -0,0 +1,331 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="4439e742-b1c3-4c53-9caf-bd092b4963fd" name="Default" comment="" />
<ignored path="changeExtends2.iws" />
<ignored path=".idea/workspace.xml" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
<component name="CreatePatchCommitExecutor">
<option name="PATCH_PATH" value="" />
</component>
<component name="DaemonCodeAnalyzer">
<disable_hints />
</component>
<component name="DebuggerManager">
<breakpoint_any>
<breakpoint>
<option name="NOTIFY_CAUGHT" value="true" />
<option name="NOTIFY_UNCAUGHT" value="true" />
<option name="ENABLED" value="false" />
<option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" />
<option name="SUSPEND_POLICY" value="SuspendAll" />
<option name="COUNT_FILTER_ENABLED" value="false" />
<option name="COUNT_FILTER" value="0" />
<option name="CONDITION_ENABLED" value="false" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</breakpoint>
<breakpoint>
<option name="NOTIFY_CAUGHT" value="true" />
<option name="NOTIFY_UNCAUGHT" value="true" />
<option name="ENABLED" value="false" />
<option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" />
<option name="SUSPEND_POLICY" value="SuspendAll" />
<option name="COUNT_FILTER_ENABLED" value="false" />
<option name="COUNT_FILTER" value="0" />
<option name="CONDITION_ENABLED" value="false" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</breakpoint>
</breakpoint_any>
<breakpoint_rules />
<ui_properties />
</component>
<component name="FavoritesManager">
<favorites_list name="changeExtends2" />
</component>
<component name="ProjectFrameBounds">
<option name="y" value="25" />
<option name="width" value="1280" />
<option name="height" value="974" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectReloadState">
<option name="STATE" value="0" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
</navigator>
<panes>
<pane id="Scope">
<subPane subId="Project Files">
<PATH>
<PATH_ELEMENT USER_OBJECT="Root">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="changeExtends2" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="GoToFile.includeJavaFiles" value="false" />
<property name="GoToClass.toSaveIncludeLibraries" value="false" />
<property name="MemberChooser.sorted" value="false" />
<property name="MemberChooser.showClasses" value="true" />
<property name="GoToClass.includeLibraries" value="false" />
<property name="MemberChooser.copyJavadoc" value="false" />
</component>
<component name="RunManager">
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m" />
<option name="PROGRAM_PARAMETERS" />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Make" enabled="true" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" value="javadebug" />
<option name="HOST" value="localhost" />
<option name="PORT" value="5005" />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG">
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="OUTPUT_DIRECTORY" />
<option name="ANNOTATION_TYPE" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<envs />
<properties />
<listeners />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Make" enabled="true" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<configuration default="true" type="Applet" factoryName="Applet">
<module name="" />
<option name="MAIN_CLASS_NAME" />
<option name="HTML_FILE_NAME" />
<option name="HTML_USED" value="false" />
<option name="WIDTH" value="400" />
<option name="HEIGHT" value="300" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<option name="VM_PARAMETERS" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Make" enabled="true" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Make" enabled="true" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Make" enabled="true" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<list size="0" />
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host>
<Port>5050</Port>
</configuration>
</component>
<component name="ShelveChangesManager" show_recycled="false" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<created>1329738171438</created>
<updated>1329738171438</updated>
</task>
<servers />
</component>
<component name="ToolWindowManager">
<frame x="0" y="25" width="1280" height="974" extended-state="0" />
<editor active="false" />
<layout>
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
</layout>
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="VcsManagerConfiguration">
<option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
<option name="CHECK_NEW_TODO" value="true" />
<option name="myTodoPanelSettings">
<value>
<are-packages-shown value="false" />
<are-modules-shown value="false" />
<flatten-packages value="false" />
<is-autoscroll-to-source value="false" />
</value>
</option>
<option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
<option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
<option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
<option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
<option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
<option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
<option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
<option name="ENABLE_BACKGROUND_PROCESSES" value="false" />
<option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
<option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
<option name="SHORT_DIFF_HORISONTALLY" value="true" />
<option name="SHORT_DIFF_EXTRA_LINES" value="2" />
<option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
<option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
<option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
<option name="LAST_COMMIT_MESSAGE" />
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
<option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
<option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
<option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
<option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
<option name="ACTIVE_VCS_NAME" />
<option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
</component>
</project>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
@@ -0,0 +1,12 @@
/**
* Created with IntelliJ IDEA.
* User: db
* Date: 20.02.12
* Time: 13:19
* To change this template use File | Settings | File Templates.
*/
public class Victim extends Super {
public static class SubVictim extends Victim {
}
}
@@ -0,0 +1,20 @@
/**
* Created with IntelliJ IDEA.
* User: db
* Date: 20.02.12
* Time: 13:19
* To change this template use File | Settings | File Templates.
*/
public class Main {
static void doMe (final Puper x) {
System.out.println("Puper!");
}
static void doMe (final Super x){
System.out.println("Super!");
}
public static void main (String[] args){
doMe(new Victim.SubVictim());
}
}
@@ -0,0 +1,9 @@
/**
* Created with IntelliJ IDEA.
* User: db
* Date: 20.02.12
* Time: 13:19
* To change this template use File | Settings | File Templates.
*/
public class Puper {
}
@@ -0,0 +1,9 @@
/**
* Created with IntelliJ IDEA.
* User: db
* Date: 20.02.12
* Time: 13:19
* To change this template use File | Settings | File Templates.
*/
public class Super {
}
@@ -0,0 +1,12 @@
/**
* Created with IntelliJ IDEA.
* User: db
* Date: 20.02.12
* Time: 13:19
* To change this template use File | Settings | File Templates.
*/
public class Victim extends Puper {
public static class SubVictim extends Victim {
}
}
@@ -0,0 +1 @@
class2Interface1
@@ -0,0 +1 @@
class2Interface2
@@ -0,0 +1 @@
class2Interface3
@@ -0,0 +1,9 @@
Cleaning output files:
out/production/M/A.class
End of files
Compiling files:
M/src/A.java
End of files
Cleaning output files:
out/production/N/C.class
End of files
@@ -0,0 +1 @@
deleteClass3
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="DEFAULT_COMPILER" value="Javac" />
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="?*.properties" />
<entry name="?*.xml" />
<entry name="?*.gif" />
<entry name="?*.png" />
<entry name="?*.jpeg" />
<entry name="?*.jpg" />
<entry name="?*.html" />
<entry name="?*.dtd" />
<entry name="?*.tld" />
<entry name="?*.ftl" />
</wildcardResourcePatterns>
<annotationProcessing enabled="false" useClasspath="true" />
</component>
</project>
@@ -0,0 +1,5 @@
<component name="CopyrightManager">
<settings default="">
<module2copyright />
</settings>
</component>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
</project>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<entry_points version="2.0" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="IDEA jdk" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/M/M.iml" filepath="$PROJECT_DIR$/M/M.iml" />
<module fileurl="file://$PROJECT_DIR$/N/N.iml" filepath="$PROJECT_DIR$/N/N.iml" />
</modules>
</component>
</project>
@@ -0,0 +1,5 @@
<component name="DependencyValidationManager">
<state>
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
</state>
</component>
@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="" />
</component>
</project>
@@ -0,0 +1,520 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="dd9bc927-d58d-4323-ab6d-ddb385f956df" name="Default" comment="" />
<ignored path="deleteClass3.iws" />
<ignored path=".idea/workspace.xml" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
<component name="CreatePatchCommitExecutor">
<option name="PATCH_PATH" value="" />
</component>
<component name="DaemonCodeAnalyzer">
<disable_hints />
</component>
<component name="DebuggerManager">
<breakpoint_any>
<breakpoint>
<option name="NOTIFY_CAUGHT" value="true" />
<option name="NOTIFY_UNCAUGHT" value="true" />
<option name="ENABLED" value="false" />
<option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" />
<option name="SUSPEND_POLICY" value="SuspendAll" />
<option name="COUNT_FILTER_ENABLED" value="false" />
<option name="COUNT_FILTER" value="0" />
<option name="CONDITION_ENABLED" value="false" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</breakpoint>
<breakpoint>
<option name="NOTIFY_CAUGHT" value="true" />
<option name="NOTIFY_UNCAUGHT" value="true" />
<option name="ENABLED" value="false" />
<option name="LOG_ENABLED" value="false" />
<option name="LOG_EXPRESSION_ENABLED" value="false" />
<option name="SUSPEND_POLICY" value="SuspendAll" />
<option name="COUNT_FILTER_ENABLED" value="false" />
<option name="COUNT_FILTER" value="0" />
<option name="CONDITION_ENABLED" value="false" />
<option name="CLASS_FILTERS_ENABLED" value="false" />
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
<option name="CONDITION" value="" />
<option name="LOG_MESSAGE" value="" />
</breakpoint>
</breakpoint_any>
<breakpoint_rules />
<ui_properties />
</component>
<component name="FavoritesManager">
<favorites_list name="deleteClass3" />
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="C.java" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/N/src/C.java">
<provider selected="true" editor-type-id="text-editor">
<state line="8" column="15" selection-start="181" selection-end="181" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="A.java" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/M/src/A.java">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="14" selection-start="163" selection-end="163" vertical-scroll-proportion="0.12727273">
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindManager">
<FindUsagesManager>
<setting name="OPEN_NEW_TAB" value="false" />
</FindUsagesManager>
</component>
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/N/src/C.java" />
</list>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-1" />
<option name="y" value="25" />
<option name="width" value="1282" />
<option name="height" value="979" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectReloadState">
<option name="STATE" value="0" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
</navigator>
<panes>
<pane id="Scope">
<subPane subId="Project Files">
<PATH>
<PATH_ELEMENT USER_OBJECT="Root">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="deleteClass3" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="deleteClass3" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="N" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="deleteClass3" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="N" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="deleteClass3" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="M" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="deleteClass3" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="M" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="project.structure.last.edited" value="Modules" />
<property name="GoToFile.includeJavaFiles" value="false" />
<property name="project.structure.proportion" value="0.0" />
<property name="GoToClass.toSaveIncludeLibraries" value="false" />
<property name="MemberChooser.sorted" value="false" />
<property name="MemberChooser.showClasses" value="true" />
<property name="project.structure.side.proportion" value="0.0" />
<property name="GoToClass.includeLibraries" value="false" />
<property name="MemberChooser.copyJavadoc" value="false" />
</component>
<component name="RunManager">
<configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
<module name="" />
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m" />
<option name="PROGRAM_PARAMETERS" />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Make" enabled="true" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" value="javadebug" />
<option name="HOST" value="localhost" />
<option name="PORT" value="5005" />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<configuration default="true" type="Applet" factoryName="Applet">
<module name="" />
<option name="MAIN_CLASS_NAME" />
<option name="HTML_FILE_NAME" />
<option name="HTML_USED" value="false" />
<option name="WIDTH" value="400" />
<option name="HEIGHT" value="300" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<option name="VM_PARAMETERS" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Make" enabled="true" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG">
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="OUTPUT_DIRECTORY" />
<option name="ANNOTATION_TYPE" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<envs />
<properties />
<listeners />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Make" enabled="true" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Make" enabled="true" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="moduleWithDependencies" />
</option>
<envs />
<patterns />
<method>
<option name="AntTarget" enabled="false" />
<option name="BuildArtifacts" enabled="false" />
<option name="Make" enabled="true" />
<option name="Maven.BeforeRunTask" enabled="false" />
</method>
</configuration>
<list size="0" />
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host>
<Port>5050</Port>
</configuration>
</component>
<component name="ShelveChangesManager" show_recycled="false" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<created>1329731107288</created>
<updated>1329731107288</updated>
</task>
<servers />
</component>
<component name="ToolWindowManager">
<frame x="-1" y="25" width="1282" height="979" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.4076175" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
</layout>
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="VcsManagerConfiguration">
<option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
<option name="CHECK_NEW_TODO" value="true" />
<option name="myTodoPanelSettings">
<value>
<are-packages-shown value="false" />
<are-modules-shown value="false" />
<flatten-packages value="false" />
<is-autoscroll-to-source value="false" />
</value>
</option>
<option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
<option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
<option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
<option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
<option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
<option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
<option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
<option name="ENABLE_BACKGROUND_PROCESSES" value="false" />
<option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
<option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
<option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
<option name="DEFAULT_PATCH_EXTENSION" value="patch" />
<option name="SHORT_DIFF_HORISONTALLY" value="true" />
<option name="SHORT_DIFF_EXTRA_LINES" value="2" />
<option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
<option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
<option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
<option name="CREATE_PATCH_EXPAND_DETAILS_DEFAULT" value="true" />
<option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
<option name="LAST_COMMIT_MESSAGE" />
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
<option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
<option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
<option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
<option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
<option name="ACTIVE_VCS_NAME" />
<option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
<option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
<option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
<option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/N/src/C.java">
<provider selected="true" editor-type-id="text-editor">
<state line="8" column="15" selection-start="181" selection-end="181" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/M/src/A.java">
<provider selected="true" editor-type-id="text-editor">
<state line="7" column="14" selection-start="163" selection-end="163" vertical-scroll-proportion="0.12727273">
<folding />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>No facets are configured</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<last-edited>Gant</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>IDEA jdk</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>N</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>IDEA jdk</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.20000002" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>
@@ -0,0 +1,3 @@
public class A {
public A (int x) {}
}
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
@@ -0,0 +1,9 @@
/**
* Created with IntelliJ IDEA.
* User: db
* Date: 20.02.12
* Time: 12:47
* To change this template use File | Settings | File Templates.
*/
public class A {
}
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="M" />
</component>
</module>
@@ -0,0 +1,10 @@
/**
* Created with IntelliJ IDEA.
* User: db
* Date: 20.02.12
* Time: 12:46
* To change this template use File | Settings | File Templates.
*/
public class C {
A a = new A();
}
@@ -0,0 +1 @@
classImport
@@ -0,0 +1 @@
staticImport
@@ -1,6 +1,22 @@
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class Fest {
public static void main(String[] args) {
String f = "";
<selection>System.out.println(f);</selection>
String bar = ""
<selection> System.out.println(f + ";" + bar);</selection>
}
}
@@ -1,11 +1,27 @@
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class Fest {
public static void main(String[] args) {
String f = "";
newMethod();
String bar = ""
newMethod(bar);
}
private static void newMethod() {
private static void newMethod(String bar) {
String f = ;
System.out.println(f);
System.out.println(f + ";" + bar);
}
}
@@ -1,3 +1,18 @@
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.refactoring;
import com.intellij.JavaTestUtil;
@@ -503,6 +518,10 @@ public class ExtractMethodTest extends LightCodeInsightTestCase {
}
public void testDisabledParam() throws Exception {
doTestDisabledParam();
}
private void doTestDisabledParam() throws PrepareFailedException {
final CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(getProject());
settings.ELSE_ON_NEW_LINE = true;
settings.CATCH_ON_NEW_LINE = myCatchOnNewLine;
@@ -10,6 +10,11 @@ message Message {
required sint64 least_sig_bits = 2;
}
message KeyValuePair {
required string key = 1;
required string value = 2;
}
enum Type {
REQUEST = 1;
RESPONSE = 2;
@@ -44,6 +49,7 @@ message Message {
repeated string module_name = 3;
repeated string file_path = 4;
repeated string artifact_name = 5;
repeated KeyValuePair builder_parameter = 6;
}
message ShutdownCommand {
@@ -56,11 +62,6 @@ message Message {
message SetupCommand {
message PathVariable {
required string name = 1;
required string value = 2;
}
message GlobalLibrary {
required string name = 1;
optional string homePath = 2;
@@ -69,7 +70,7 @@ message Message {
repeated string path = 5;
}
repeated PathVariable path_variable = 1;
repeated KeyValuePair path_variable = 1;
repeated GlobalLibrary global_library = 2;
optional string global_encoding = 3;
}
@@ -359,6 +359,305 @@ public final class JpsRemoteProto {
// @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.UUID)
}
public static final class KeyValuePair extends
com.google.protobuf.GeneratedMessageLite {
// Use KeyValuePair.newBuilder() to construct.
private KeyValuePair() {
initFields();
}
private KeyValuePair(boolean noInit) {}
private static final KeyValuePair defaultInstance;
public static KeyValuePair getDefaultInstance() {
return defaultInstance;
}
public KeyValuePair getDefaultInstanceForType() {
return defaultInstance;
}
// required string key = 1;
public static final int KEY_FIELD_NUMBER = 1;
private boolean hasKey;
private java.lang.String key_ = "";
public boolean hasKey() { return hasKey; }
public java.lang.String getKey() { return key_; }
// required string value = 2;
public static final int VALUE_FIELD_NUMBER = 2;
private boolean hasValue;
private java.lang.String value_ = "";
public boolean hasValue() { return hasValue; }
public java.lang.String getValue() { return value_; }
private void initFields() {
}
public final boolean isInitialized() {
if (!hasKey) return false;
if (!hasValue) return false;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (hasKey()) {
output.writeString(1, getKey());
}
if (hasValue()) {
output.writeString(2, getValue());
}
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (hasKey()) {
size += com.google.protobuf.CodedOutputStream
.computeStringSize(1, getKey());
}
if (hasValue()) {
size += com.google.protobuf.CodedOutputStream
.computeStringSize(2, getValue());
}
memoizedSerializedSize = size;
return size;
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
return builder.buildParsed();
} else {
return null;
}
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static Builder newBuilder() { return Builder.create(); }
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder(org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair prototype) {
return newBuilder().mergeFrom(prototype);
}
public Builder toBuilder() { return newBuilder(this); }
public static final class Builder extends
com.google.protobuf.GeneratedMessageLite.Builder<
org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair, Builder> {
private org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair result;
// Construct using org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.newBuilder()
private Builder() {}
private static Builder create() {
Builder builder = new Builder();
builder.result = new org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair();
return builder;
}
protected org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair internalGetResult() {
return result;
}
public Builder clear() {
if (result == null) {
throw new IllegalStateException(
"Cannot call clear() after build().");
}
result = new org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair();
return this;
}
public Builder clone() {
return create().mergeFrom(result);
}
public org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair getDefaultInstanceForType() {
return org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.getDefaultInstance();
}
public boolean isInitialized() {
return result.isInitialized();
}
public org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair build() {
if (result != null && !isInitialized()) {
throw newUninitializedMessageException(result);
}
return buildPartial();
}
private org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
if (!isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return buildPartial();
}
public org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair buildPartial() {
if (result == null) {
throw new IllegalStateException(
"build() has already been called on this Builder.");
}
org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair returnMe = result;
result = null;
return returnMe;
}
public Builder mergeFrom(org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair other) {
if (other == org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.getDefaultInstance()) return this;
if (other.hasKey()) {
setKey(other.getKey());
}
if (other.hasValue()) {
setValue(other.getValue());
}
return this;
}
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
return this;
default: {
if (!parseUnknownField(input, extensionRegistry, tag)) {
return this;
}
break;
}
case 10: {
setKey(input.readString());
break;
}
case 18: {
setValue(input.readString());
break;
}
}
}
}
// required string key = 1;
public boolean hasKey() {
return result.hasKey();
}
public java.lang.String getKey() {
return result.getKey();
}
public Builder setKey(java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
result.hasKey = true;
result.key_ = value;
return this;
}
public Builder clearKey() {
result.hasKey = false;
result.key_ = getDefaultInstance().getKey();
return this;
}
// required string value = 2;
public boolean hasValue() {
return result.hasValue();
}
public java.lang.String getValue() {
return result.getValue();
}
public Builder setValue(java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
result.hasValue = true;
result.value_ = value;
return this;
}
public Builder clearValue() {
result.hasValue = false;
result.value_ = getDefaultInstance().getValue();
return this;
}
// @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.KeyValuePair)
}
static {
defaultInstance = new KeyValuePair(true);
org.jetbrains.jps.api.JpsRemoteProto.internalForceInit();
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.KeyValuePair)
}
public static final class Failure extends
com.google.protobuf.GeneratedMessageLite {
// Use Failure.newBuilder() to construct.
@@ -869,11 +1168,26 @@ public final class JpsRemoteProto {
return artifactName_.get(index);
}
// repeated .org.jetbrains.jpsservice.Message.KeyValuePair builder_parameter = 6;
public static final int BUILDER_PARAMETER_FIELD_NUMBER = 6;
private java.util.List<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair> builderParameter_ =
java.util.Collections.emptyList();
public java.util.List<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair> getBuilderParameterList() {
return builderParameter_;
}
public int getBuilderParameterCount() { return builderParameter_.size(); }
public org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair getBuilderParameter(int index) {
return builderParameter_.get(index);
}
private void initFields() {
commandType_ = org.jetbrains.jps.api.JpsRemoteProto.Message.Request.CompilationRequest.Type.REBUILD;
}
public final boolean isInitialized() {
if (!hasCommandType) return false;
for (org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair element : getBuilderParameterList()) {
if (!element.isInitialized()) return false;
}
return true;
}
@@ -895,6 +1209,9 @@ public final class JpsRemoteProto {
for (java.lang.String element : getArtifactNameList()) {
output.writeString(5, element);
}
for (org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair element : getBuilderParameterList()) {
output.writeMessage(6, element);
}
}
private int memoizedSerializedSize = -1;
@@ -938,6 +1255,10 @@ public final class JpsRemoteProto {
size += dataSize;
size += 1 * getArtifactNameList().size();
}
for (org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair element : getBuilderParameterList()) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(6, element);
}
memoizedSerializedSize = size;
return size;
}
@@ -1087,6 +1408,10 @@ public final class JpsRemoteProto {
result.artifactName_ =
java.util.Collections.unmodifiableList(result.artifactName_);
}
if (result.builderParameter_ != java.util.Collections.EMPTY_LIST) {
result.builderParameter_ =
java.util.Collections.unmodifiableList(result.builderParameter_);
}
org.jetbrains.jps.api.JpsRemoteProto.Message.Request.CompilationRequest returnMe = result;
result = null;
return returnMe;
@@ -1118,6 +1443,12 @@ public final class JpsRemoteProto {
}
result.artifactName_.addAll(other.artifactName_);
}
if (!other.builderParameter_.isEmpty()) {
if (result.builderParameter_.isEmpty()) {
result.builderParameter_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair>();
}
result.builderParameter_.addAll(other.builderParameter_);
}
return this;
}
@@ -1160,6 +1491,12 @@ public final class JpsRemoteProto {
addArtifactName(input.readString());
break;
}
case 50: {
org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.Builder subBuilder = org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addBuilderParameter(subBuilder.buildPartial());
break;
}
}
}
}
@@ -1327,6 +1664,57 @@ public final class JpsRemoteProto {
return this;
}
// repeated .org.jetbrains.jpsservice.Message.KeyValuePair builder_parameter = 6;
public java.util.List<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair> getBuilderParameterList() {
return java.util.Collections.unmodifiableList(result.builderParameter_);
}
public int getBuilderParameterCount() {
return result.getBuilderParameterCount();
}
public org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair getBuilderParameter(int index) {
return result.getBuilderParameter(index);
}
public Builder setBuilderParameter(int index, org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair value) {
if (value == null) {
throw new NullPointerException();
}
result.builderParameter_.set(index, value);
return this;
}
public Builder setBuilderParameter(int index, org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.Builder builderForValue) {
result.builderParameter_.set(index, builderForValue.build());
return this;
}
public Builder addBuilderParameter(org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair value) {
if (value == null) {
throw new NullPointerException();
}
if (result.builderParameter_.isEmpty()) {
result.builderParameter_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair>();
}
result.builderParameter_.add(value);
return this;
}
public Builder addBuilderParameter(org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.Builder builderForValue) {
if (result.builderParameter_.isEmpty()) {
result.builderParameter_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair>();
}
result.builderParameter_.add(builderForValue.build());
return this;
}
public Builder addAllBuilderParameter(
java.lang.Iterable<? extends org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair> values) {
if (result.builderParameter_.isEmpty()) {
result.builderParameter_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair>();
}
super.addAll(values, result.builderParameter_);
return this;
}
public Builder clearBuilderParameter() {
result.builderParameter_ = java.util.Collections.emptyList();
return this;
}
// @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.Request.CompilationRequest)
}
@@ -1656,305 +2044,6 @@ public final class JpsRemoteProto {
return defaultInstance;
}
public static final class PathVariable extends
com.google.protobuf.GeneratedMessageLite {
// Use PathVariable.newBuilder() to construct.
private PathVariable() {
initFields();
}
private PathVariable(boolean noInit) {}
private static final PathVariable defaultInstance;
public static PathVariable getDefaultInstance() {
return defaultInstance;
}
public PathVariable getDefaultInstanceForType() {
return defaultInstance;
}
// required string name = 1;
public static final int NAME_FIELD_NUMBER = 1;
private boolean hasName;
private java.lang.String name_ = "";
public boolean hasName() { return hasName; }
public java.lang.String getName() { return name_; }
// required string value = 2;
public static final int VALUE_FIELD_NUMBER = 2;
private boolean hasValue;
private java.lang.String value_ = "";
public boolean hasValue() { return hasValue; }
public java.lang.String getValue() { return value_; }
private void initFields() {
}
public final boolean isInitialized() {
if (!hasName) return false;
if (!hasValue) return false;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (hasName()) {
output.writeString(1, getName());
}
if (hasValue()) {
output.writeString(2, getValue());
}
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (hasName()) {
size += com.google.protobuf.CodedOutputStream
.computeStringSize(1, getName());
}
if (hasValue()) {
size += com.google.protobuf.CodedOutputStream
.computeStringSize(2, getValue());
}
memoizedSerializedSize = size;
return size;
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
return builder.buildParsed();
} else {
return null;
}
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static Builder newBuilder() { return Builder.create(); }
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder(org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable prototype) {
return newBuilder().mergeFrom(prototype);
}
public Builder toBuilder() { return newBuilder(this); }
public static final class Builder extends
com.google.protobuf.GeneratedMessageLite.Builder<
org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable, Builder> {
private org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable result;
// Construct using org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable.newBuilder()
private Builder() {}
private static Builder create() {
Builder builder = new Builder();
builder.result = new org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable();
return builder;
}
protected org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable internalGetResult() {
return result;
}
public Builder clear() {
if (result == null) {
throw new IllegalStateException(
"Cannot call clear() after build().");
}
result = new org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable();
return this;
}
public Builder clone() {
return create().mergeFrom(result);
}
public org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable getDefaultInstanceForType() {
return org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable.getDefaultInstance();
}
public boolean isInitialized() {
return result.isInitialized();
}
public org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable build() {
if (result != null && !isInitialized()) {
throw newUninitializedMessageException(result);
}
return buildPartial();
}
private org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
if (!isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return buildPartial();
}
public org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable buildPartial() {
if (result == null) {
throw new IllegalStateException(
"build() has already been called on this Builder.");
}
org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable returnMe = result;
result = null;
return returnMe;
}
public Builder mergeFrom(org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable other) {
if (other == org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable.getDefaultInstance()) return this;
if (other.hasName()) {
setName(other.getName());
}
if (other.hasValue()) {
setValue(other.getValue());
}
return this;
}
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
return this;
default: {
if (!parseUnknownField(input, extensionRegistry, tag)) {
return this;
}
break;
}
case 10: {
setName(input.readString());
break;
}
case 18: {
setValue(input.readString());
break;
}
}
}
}
// required string name = 1;
public boolean hasName() {
return result.hasName();
}
public java.lang.String getName() {
return result.getName();
}
public Builder setName(java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
result.hasName = true;
result.name_ = value;
return this;
}
public Builder clearName() {
result.hasName = false;
result.name_ = getDefaultInstance().getName();
return this;
}
// required string value = 2;
public boolean hasValue() {
return result.hasValue();
}
public java.lang.String getValue() {
return result.getValue();
}
public Builder setValue(java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
result.hasValue = true;
result.value_ = value;
return this;
}
public Builder clearValue() {
result.hasValue = false;
result.value_ = getDefaultInstance().getValue();
return this;
}
// @@protoc_insertion_point(builder_scope:org.jetbrains.jpsservice.Message.Request.SetupCommand.PathVariable)
}
static {
defaultInstance = new PathVariable(true);
org.jetbrains.jps.api.JpsRemoteProto.internalForceInit();
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.Request.SetupCommand.PathVariable)
}
public static final class GlobalLibrary extends
com.google.protobuf.GeneratedMessageLite {
// Use GlobalLibrary.newBuilder() to construct.
@@ -2415,15 +2504,15 @@ public final class JpsRemoteProto {
// @@protoc_insertion_point(class_scope:org.jetbrains.jpsservice.Message.Request.SetupCommand.GlobalLibrary)
}
// repeated .org.jetbrains.jpsservice.Message.Request.SetupCommand.PathVariable path_variable = 1;
// repeated .org.jetbrains.jpsservice.Message.KeyValuePair path_variable = 1;
public static final int PATH_VARIABLE_FIELD_NUMBER = 1;
private java.util.List<org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable> pathVariable_ =
private java.util.List<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair> pathVariable_ =
java.util.Collections.emptyList();
public java.util.List<org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable> getPathVariableList() {
public java.util.List<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair> getPathVariableList() {
return pathVariable_;
}
public int getPathVariableCount() { return pathVariable_.size(); }
public org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable getPathVariable(int index) {
public org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair getPathVariable(int index) {
return pathVariable_.get(index);
}
@@ -2449,7 +2538,7 @@ public final class JpsRemoteProto {
private void initFields() {
}
public final boolean isInitialized() {
for (org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable element : getPathVariableList()) {
for (org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair element : getPathVariableList()) {
if (!element.isInitialized()) return false;
}
for (org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.GlobalLibrary element : getGlobalLibraryList()) {
@@ -2461,7 +2550,7 @@ public final class JpsRemoteProto {
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
for (org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable element : getPathVariableList()) {
for (org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair element : getPathVariableList()) {
output.writeMessage(1, element);
}
for (org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.GlobalLibrary element : getGlobalLibraryList()) {
@@ -2478,7 +2567,7 @@ public final class JpsRemoteProto {
if (size != -1) return size;
size = 0;
for (org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable element : getPathVariableList()) {
for (org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair element : getPathVariableList()) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, element);
}
@@ -2644,7 +2733,7 @@ public final class JpsRemoteProto {
if (other == org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.getDefaultInstance()) return this;
if (!other.pathVariable_.isEmpty()) {
if (result.pathVariable_.isEmpty()) {
result.pathVariable_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable>();
result.pathVariable_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair>();
}
result.pathVariable_.addAll(other.pathVariable_);
}
@@ -2676,7 +2765,7 @@ public final class JpsRemoteProto {
break;
}
case 10: {
org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable.Builder subBuilder = org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable.newBuilder();
org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.Builder subBuilder = org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addPathVariable(subBuilder.buildPartial());
break;
@@ -2696,48 +2785,48 @@ public final class JpsRemoteProto {
}
// repeated .org.jetbrains.jpsservice.Message.Request.SetupCommand.PathVariable path_variable = 1;
public java.util.List<org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable> getPathVariableList() {
// repeated .org.jetbrains.jpsservice.Message.KeyValuePair path_variable = 1;
public java.util.List<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair> getPathVariableList() {
return java.util.Collections.unmodifiableList(result.pathVariable_);
}
public int getPathVariableCount() {
return result.getPathVariableCount();
}
public org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable getPathVariable(int index) {
public org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair getPathVariable(int index) {
return result.getPathVariable(index);
}
public Builder setPathVariable(int index, org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable value) {
public Builder setPathVariable(int index, org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair value) {
if (value == null) {
throw new NullPointerException();
}
result.pathVariable_.set(index, value);
return this;
}
public Builder setPathVariable(int index, org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable.Builder builderForValue) {
public Builder setPathVariable(int index, org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.Builder builderForValue) {
result.pathVariable_.set(index, builderForValue.build());
return this;
}
public Builder addPathVariable(org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable value) {
public Builder addPathVariable(org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair value) {
if (value == null) {
throw new NullPointerException();
}
if (result.pathVariable_.isEmpty()) {
result.pathVariable_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable>();
result.pathVariable_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair>();
}
result.pathVariable_.add(value);
return this;
}
public Builder addPathVariable(org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable.Builder builderForValue) {
public Builder addPathVariable(org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair.Builder builderForValue) {
if (result.pathVariable_.isEmpty()) {
result.pathVariable_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable>();
result.pathVariable_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair>();
}
result.pathVariable_.add(builderForValue.build());
return this;
}
public Builder addAllPathVariable(
java.lang.Iterable<? extends org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable> values) {
java.lang.Iterable<? extends org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair> values) {
if (result.pathVariable_.isEmpty()) {
result.pathVariable_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.Request.SetupCommand.PathVariable>();
result.pathVariable_ = new java.util.ArrayList<org.jetbrains.jps.api.JpsRemoteProto.Message.KeyValuePair>();
}
super.addAll(values, result.pathVariable_);
return this;
@@ -28,23 +28,34 @@ public class ProtoUtil {
return builder.build();
}
public static JpsRemoteProto.Message.Request createMakeRequest(String project, Collection<String> modules, Collection<String> artifacts) {
return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.MAKE, project, modules, artifacts, Collections.<String>emptyList());
public static JpsRemoteProto.Message.Request createMakeRequest(String project,
Collection<String> modules,
Collection<String> artifacts,
final Map<String, String> userData) {
return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.MAKE, project, modules, artifacts,
userData, Collections.<String>emptyList());
}
public static JpsRemoteProto.Message.Request createForceCompileRequest(String project,
Collection<String> modules,
Collection<String> artifacts, Collection<String> paths) {
return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.FORCED_COMPILATION, project, modules, artifacts, paths);
Collection<String> artifacts,
Collection<String> paths,
final Map<String, String> userData) {
return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.FORCED_COMPILATION, project, modules, artifacts,
userData, paths);
}
public static JpsRemoteProto.Message.Request createRebuildRequest(String project) {
public static JpsRemoteProto.Message.Request createRebuildRequest(String project, final Map<String, String> userData) {
return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.REBUILD, project, Collections.<String>emptyList(),
Collections.<String>emptyList(), Collections.<String>emptyList());
Collections.<String>emptyList(), userData, Collections.<String>emptyList());
}
public static JpsRemoteProto.Message.Request createCleanRequest(String project, Collection<String> modules, Collection<String> artifacts) {
return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.CLEAN, project, modules, artifacts, Collections.<String>emptyList());
public static JpsRemoteProto.Message.Request createCleanRequest(String project,
Collection<String> modules,
Collection<String> artifacts,
final Map<String, String> userData) {
return createCompileRequest(JpsRemoteProto.Message.Request.CompilationRequest.Type.CLEAN, project, modules, artifacts,
userData, Collections.<String>emptyList());
}
public static JpsRemoteProto.Message.Request createCancelRequest(UUID compileSessionId) {
@@ -53,22 +64,34 @@ public class ProtoUtil {
return JpsRemoteProto.Message.Request.newBuilder().setRequestType(JpsRemoteProto.Message.Request.Type.CANCEL_BUILD_COMMAND).setCancelBuildCommand(builder.build()).build();
}
public static JpsRemoteProto.Message.Request createCompileRequest(final JpsRemoteProto.Message.Request.CompilationRequest.Type command, String project, Collection<String> modules,
Collection<String> artifacts, Collection<String> paths) {
public static JpsRemoteProto.Message.Request createCompileRequest(
final JpsRemoteProto.Message.Request.CompilationRequest.Type command,
String project,
Collection<String> modules,
Collection<String> artifacts, Map<String, String> userData, Collection<String> paths) {
final JpsRemoteProto.Message.Request.CompilationRequest.Builder builder = JpsRemoteProto.Message.Request.CompilationRequest.newBuilder().setCommandType(
command);
builder.setProjectId(project);
if (modules.size() > 0) {
if (!modules.isEmpty()) {
builder.addAllModuleName(modules);
}
if (artifacts.size() > 0) {
if (!artifacts.isEmpty()) {
builder.addAllArtifactName(artifacts);
}
if (paths.size() > 0) {
if (!userData.isEmpty()) {
for (Map.Entry<String, String> entry : userData.entrySet()) {
final String key = entry.getKey();
final String value = entry.getValue();
if (key != null && value != null) {
builder.addBuilderParameter(createPair(key, value));
}
}
}
if (!paths.isEmpty()) {
builder.addAllFilePath(paths);
}
return JpsRemoteProto.Message.Request.newBuilder().setRequestType(JpsRemoteProto.Message.Request.Type.COMPILE_REQUEST).setCompileRequest(
builder.build()).build();
return JpsRemoteProto.Message.Request.newBuilder().setRequestType(JpsRemoteProto.Message.Request.Type.COMPILE_REQUEST).setCompileRequest(builder.build()).build();
}
public static JpsRemoteProto.Message.Request createShutdownRequest(boolean cancelRunningBuilds) {
@@ -101,9 +124,7 @@ public class ProtoUtil {
final String var = entry.getKey();
final String value = entry.getValue();
if (var != null && value != null) {
final JpsRemoteProto.Message.Request.SetupCommand.PathVariable.Builder pathVarBuilder =
JpsRemoteProto.Message.Request.SetupCommand.PathVariable.newBuilder();
cmdBuilder.addPathVariable(pathVarBuilder.setName(var).setValue(value).build());
cmdBuilder.addPathVariable(createPair(var, value));
}
}
}
@@ -131,6 +152,10 @@ public class ProtoUtil {
return JpsRemoteProto.Message.Request.newBuilder().setRequestType(JpsRemoteProto.Message.Request.Type.SETUP_COMMAND).setSetupCommand(cmdBuilder.build()).build();
}
public static JpsRemoteProto.Message.KeyValuePair createPair(String key, String value) {
return JpsRemoteProto.Message.KeyValuePair.newBuilder().setKey(key).setValue(value).build();
}
public static JpsRemoteProto.Message.Response createBuildStartedEvent(@Nullable String description) {
return createBuildEvent(JpsRemoteProto.Message.Response.BuildEvent.Type.BUILD_STARTED, description, null, null);
}
@@ -5,10 +5,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jps.api.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.*;
/**
* @author Eugene Zhuravlev
@@ -28,18 +25,20 @@ public class CompileServerClient extends SimpleProtobufClient<JpsServerResponseH
@NotNull
public RequestFuture sendCompileRequest(boolean isMake, String projectId, Collection<String> modules, final Collection<String> artifacts,
Collection<String> paths, JpsServerResponseHandler handler) throws Exception{
Collection<String> paths,
final Map<String, String> userData,
JpsServerResponseHandler handler) throws Exception{
checkConnected();
final JpsRemoteProto.Message.Request request = isMake?
ProtoUtil.createMakeRequest(projectId, modules, artifacts) :
ProtoUtil.createForceCompileRequest(projectId, modules, artifacts, paths);
ProtoUtil.createMakeRequest(projectId, modules, artifacts, userData) :
ProtoUtil.createForceCompileRequest(projectId, modules, artifacts, paths, userData);
return sendRequest(request, handler);
}
@NotNull
public RequestFuture sendRebuildRequest(String projectId, JpsServerResponseHandler handler) throws Exception{
checkConnected();
return sendRequest(ProtoUtil.createRebuildRequest(projectId), handler);
return sendRequest(ProtoUtil.createRebuildRequest(projectId, Collections.<String, String>emptyMap()), handler);
}
@NotNull
@@ -41,6 +41,7 @@ public class CompileContext extends UserDataHolderBase implements MessageHandler
private volatile boolean myErrorsFound = false;
private final long myCompilationStartStamp;
private final TimestampStorage myTsStorage;
private final Map<String, String> myBuilderParams;
private final CanceledStatus myCancelStatus;
private float myDone = -1.0f;
@@ -49,8 +50,15 @@ public class CompileContext extends UserDataHolderBase implements MessageHandler
boolean isProjectRebuild,
ProjectChunks productionChunks,
ProjectChunks testChunks,
FSState fsState, final BuildDataManager dataManager, TimestampStorage tsStorage, MessageHandler delegateMessageHandler, final ModuleRootsIndex rootsIndex, CanceledStatus cancelStatus) throws ProjectBuildException {
FSState fsState,
final BuildDataManager dataManager,
TimestampStorage tsStorage,
MessageHandler delegateMessageHandler,
final ModuleRootsIndex rootsIndex,
Map<String, String> builderParams,
CanceledStatus cancelStatus) throws ProjectBuildException {
myTsStorage = tsStorage;
myBuilderParams = Collections.unmodifiableMap(builderParams);
myCancelStatus = cancelStatus;
myCompilationStartStamp = System.currentTimeMillis();
myScope = scope;
@@ -82,6 +90,11 @@ public class CompileContext extends UserDataHolderBase implements MessageHandler
return myIsProjectRebuild;
}
@Nullable
public String getBuilderParameter(String paramName) {
return myBuilderParams.get(paramName);
}
public void markDirty(final File file) throws IOException {
final RootDescriptor descriptor = getModuleAndRoot(file);
if (descriptor != null) {
@@ -37,6 +37,7 @@ public class IncProjectBuilder {
private final ProjectDescriptor myProjectDescriptor;
private final BuilderRegistry myBuilderRegistry;
private final Map<String, String> myBuilderParams;
private final CanceledStatus myCancelStatus;
private ProjectChunks myProductionChunks;
private ProjectChunks myTestChunks;
@@ -53,9 +54,10 @@ public class IncProjectBuilder {
private final float myTotalModulesWork;
private final int myTotalModuleLevelBuilderCount;
public IncProjectBuilder(ProjectDescriptor pd, BuilderRegistry builderRegistry, CanceledStatus cs) {
public IncProjectBuilder(ProjectDescriptor pd, BuilderRegistry builderRegistry, Map<String, String> builderParams, CanceledStatus cs) {
myProjectDescriptor = pd;
myBuilderRegistry = builderRegistry;
myBuilderParams = builderParams;
myCancelStatus = cs;
myProductionChunks = new ProjectChunks(pd.project, ClasspathKind.PRODUCTION_COMPILE);
myTestChunks = new ProjectChunks(pd.project, ClasspathKind.TEST_COMPILE);
@@ -182,8 +184,10 @@ public class IncProjectBuilder {
final FSState fsState = myProjectDescriptor.fsState;
final ModuleRootsIndex rootsIndex = myProjectDescriptor.rootsIndex;
final BuildDataManager dataManager = myProjectDescriptor.dataManager;
return new CompileContext(scope, isMake, isProjectRebuild, myProductionChunks, myTestChunks, fsState, dataManager, tsStorage,
myMessageDispatcher, rootsIndex, myCancelStatus);
return new CompileContext(
scope, isMake, isProjectRebuild, myProductionChunks, myTestChunks, fsState, dataManager, tsStorage, myMessageDispatcher, rootsIndex,
myBuilderParams, myCancelStatus
);
}
private void cleanOutputRoots(CompileContext context) throws ProjectBuildException {
@@ -69,8 +69,8 @@ class ServerMessageHandler extends SimpleChannelHandler {
case SETUP_COMMAND:
final Map<String, String> pathVars = new HashMap<String, String>();
final JpsRemoteProto.Message.Request.SetupCommand setupCommand = request.getSetupCommand();
for (JpsRemoteProto.Message.Request.SetupCommand.PathVariable variable : setupCommand.getPathVariableList()) {
pathVars.put(variable.getName(), variable.getValue());
for (JpsRemoteProto.Message.KeyValuePair variable : setupCommand.getPathVariableList()) {
pathVars.put(variable.getKey(), variable.getValue());
}
final List<GlobalLibrary> libs = new ArrayList<GlobalLibrary>();
for (JpsRemoteProto.Message.Request.SetupCommand.GlobalLibrary library : setupCommand.getGlobalLibraryList()) {
@@ -187,8 +187,14 @@ class ServerMessageHandler extends SimpleChannelHandler {
case REBUILD: {
channelContext.setAttachment(sessionId);
final BuildType buildType = convertCompileType(compileType);
final CompilationTask task = new CompilationTask(sessionId, channelContext, projectId, buildType, compileRequest.getModuleNameList(),
compileRequest.getArtifactNameList(), compileRequest.getFilePathList());
final List<String> modules = compileRequest.getModuleNameList();
final List<String> artifacts = compileRequest.getArtifactNameList();
final List<String> paths = compileRequest.getFilePathList();
final Map<String, String> builderParams = new HashMap<String, String>();
for (JpsRemoteProto.Message.KeyValuePair pair : compileRequest.getBuilderParameterList()) {
builderParams.put(pair.getKey(), pair.getValue());
}
final CompilationTask task = new CompilationTask(sessionId, channelContext, projectId, buildType, modules, artifacts, builderParams, paths);
final RunnableFuture future = getCompileTaskExecutor(projectId).submit(task);
myBuildsInProgress.add(new Pair<RunnableFuture, CompilationTask>(future, task));
return null;
@@ -230,6 +236,7 @@ class ServerMessageHandler extends SimpleChannelHandler {
private final String myProjectPath;
private final BuildType myBuildType;
private final Collection<String> myArtifacts;
private final Map<String, String> myBuilderParams;
private final Collection<String> myPaths;
private final Set<String> myModules;
private volatile boolean myCanceled = false;
@@ -240,12 +247,13 @@ class ServerMessageHandler extends SimpleChannelHandler {
BuildType buildType,
Collection<String> modules,
Collection<String> artifacts,
Collection<String> paths) {
Map<String, String> builderParams, Collection<String> paths) {
mySessionId = sessionId;
myChannelContext = channelContext;
myProjectPath = projectId;
myBuildType = buildType;
myArtifacts = artifacts;
myBuilderParams = builderParams;
myPaths = paths;
myModules = new HashSet<String>(modules);
}
@@ -264,7 +272,7 @@ class ServerMessageHandler extends SimpleChannelHandler {
final Ref<Boolean> hasErrors = new Ref<Boolean>(false);
final Ref<Boolean> markedFilesUptodate = new Ref<Boolean>(false);
try {
ServerState.getInstance().startBuild(myProjectPath, myBuildType, myModules, myArtifacts, myPaths, new MessageHandler() {
ServerState.getInstance().startBuild(myProjectPath, myBuildType, myModules, myArtifacts, myBuilderParams, myPaths, new MessageHandler() {
public void processMessage(BuildMessage buildMessage) {
final JpsRemoteProto.Message.Response response;
if (buildMessage instanceof FileGeneratedEvent) {
@@ -124,7 +124,7 @@ class ServerState {
}
public void startBuild(String projectPath, BuildType buildType, Set<String> modules, Collection<String> artifacts,
Collection<String> paths, final MessageHandler msgHandler, CanceledStatus cs) throws Throwable{
Map<String, String> builderParams, Collection<String> paths, final MessageHandler msgHandler, CanceledStatus cs) throws Throwable{
final String projectName = getProjectName(projectPath);
@@ -167,7 +167,7 @@ class ServerState {
try {
final CompileScope compileScope = createCompilationScope(buildType, pd, modules, artifacts, paths);
final IncProjectBuilder builder = new IncProjectBuilder(pd, BuilderRegistry.getInstance(), cs);
final IncProjectBuilder builder = new IncProjectBuilder(pd, BuilderRegistry.getInstance(), builderParams, cs);
if (msgHandler != null) {
builder.addMessageHandler(msgHandler);
}
@@ -39,4 +39,8 @@ public class ClassPropertyTest extends IncrementalTestCase {
public void testRemoveImplements3() throws Exception {
doTest();
}
public void testChangeExtends2() throws Exception {
doTest();
}
}
@@ -71,4 +71,8 @@ public class CommonTest extends IncrementalTestCase {
public void testClass2Interface3() throws Exception {
doTest();
}
public void testDeleteClass3() throws Exception {
doTest();
}
}
@@ -177,7 +177,7 @@ public abstract class IncrementalTestCase extends TestCase {
finally {
try {
closeAppender();
//delete(new File(workDir));
delete(new File(workDir));
}
finally {
Logger.setFactory(oldFactory);
@@ -325,7 +325,7 @@ public abstract class IncrementalTestCase extends TestCase {
try {
new IncProjectBuilder(
projectDescriptor, BuilderRegistry.getInstance(), CanceledStatus.NULL
projectDescriptor, BuilderRegistry.getInstance(), Collections.<String, String>emptyMap(), CanceledStatus.NULL
).build(
new AllProjectScope(project, Collections.<Artifact>emptySet(), true), false, true
);
@@ -337,7 +337,7 @@ public abstract class IncrementalTestCase extends TestCase {
}
new IncProjectBuilder(
projectDescriptor, BuilderRegistry.getInstance(), CanceledStatus.NULL
projectDescriptor, BuilderRegistry.getInstance(), Collections.<String, String>emptyMap(), CanceledStatus.NULL
).build(
new AllProjectScope(project, Collections.<Artifact>emptySet(), false), true, false
);
@@ -613,7 +613,7 @@ public class Mappings {
}
}
final Collection<DependencyContext.S> depClasses = myClassToClassDependency.get(fileName);
final Collection<DependencyContext.S> depClasses = myClassToClassDependency.get(className);
if (depClasses != null) {
dependants.addAll(depClasses);
@@ -885,7 +885,6 @@ public class Mappings {
debug("Changed: ", it.name);
final int addedModifiers = diff.addedModifiers();
final int removedModifiers = diff.removedModifiers();
final boolean superClassChanged = (diff.base() & Difference.SUPERCLASS) > 0;
final boolean interfacesChanged = !diff.interfaces().unchanged();
@@ -187,4 +187,9 @@ public abstract class GlobalInspectionTool extends InspectionProfileEntry {
public JobDescriptor[] getAdditionalJobs() {
return null;
}
// In some cases we can do highlighting in annotator or high. visitor based on global inspection
public boolean worksInBatchModeOnly() {
return true;
}
}
@@ -22,7 +22,6 @@ import com.intellij.codeInsight.completion.CompletionType;
import com.intellij.codeInsight.completion.impl.CompletionServiceImpl;
import com.intellij.codeInsight.lookup.LookupManager;
import com.intellij.codeInsight.lookup.impl.LookupImpl;
import com.intellij.ide.DataManager;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
@@ -50,12 +49,14 @@ public class CompletionAutoPopupHandler extends TypedHandlerDelegate {
PsiFile file,
FileType fileType) {
CompletionPhase phase = CompletionServiceImpl.getCompletionPhase();
/*
if (phase instanceof CompletionPhase.EmptyAutoPopup) {
long modificationStampBeforeTyping = editor.getDocument().getModificationStamp();
((CompletionPhase.EmptyAutoPopup)phase).handleTyping(c);
AutoHardWrapHandler.getInstance().wrapLineIfNecessary(editor, DataManager.getInstance().getDataContext(editor.getContentComponent()), modificationStampBeforeTyping);
return Result.STOP;
}
*/
return Result.CONTINUE;
}
@@ -177,22 +177,35 @@ class UpdateFoldRegionsOperation implements Runnable {
}
if (element != null && myElementsToFoldMap.containsKey(element)) {
final Collection<FoldingDescriptor> descriptors = myElementsToFoldMap.get(element);
boolean matchingDescriptorFound = false;
for (FoldingDescriptor descriptor : descriptors) {
TextRange range = descriptor.getRange();
if (!region.isValid() ||
region.getGroup() != null ||
descriptor.getGroup() != null ||
region.getStartOffset() != range.getStartOffset() ||
region.getEndOffset() != range.getEndOffset() ||
!region.getPlaceholderText().equals(descriptor.getPlaceholderText()) ||
range.getLength() < 2
) {
rangeToExpandStatusMap.put(range, region.isExpanded());
toRemove.add(region);
if (region.getStartOffset() == range.getStartOffset()
&& region.getEndOffset() == range.getEndOffset()) {
matchingDescriptorFound = true;
if (!region.isValid() ||
region.getGroup() != null ||
descriptor.getGroup() != null ||
!region.getPlaceholderText().equals(descriptor.getPlaceholderText()) ||
range.getLength() < 2
) {
rangeToExpandStatusMap.put(range, region.isExpanded());
toRemove.add(region);
}
else {
myElementsToFoldMap.removeValue(element, descriptor);
}
break;
}
else {
myElementsToFoldMap.remove(element);
}
if (!matchingDescriptorFound) {
for (FoldingDescriptor descriptor : descriptors) {
rangeToExpandStatusMap.put(descriptor.getRange(), region.isExpanded());
}
toRemove.add(region);
}
if (myElementsToFoldMap.get(element).isEmpty()) {
myElementsToFoldMap.remove(element);
}
}
else if (region.isValid() && info.isLightRegion(region)) {
@@ -132,4 +132,8 @@ public class GlobalInspectionToolWrapper extends InspectionToolWrapper<GlobalIns
}
return null;
}
public boolean worksInBatchModeOnly() {
return getTool().worksInBatchModeOnly();
}
}
@@ -27,8 +27,6 @@ import com.intellij.openapi.util.MutualMap;
import com.intellij.ui.awt.RelativePoint;
import com.intellij.ui.components.panels.NonOpaquePanel;
import com.intellij.ui.content.Content;
import com.intellij.ui.docking.DockContainer;
import com.intellij.ui.docking.DockManager;
import com.intellij.ui.switcher.SwitchTarget;
import com.intellij.ui.tabs.JBTabs;
import com.intellij.ui.tabs.TabInfo;
@@ -364,7 +362,7 @@ public class GridCellImpl implements GridCell {
final Dimension size = myContext.getContentManager().getComponent().getSize();
service.setSize(getDimensionKey(), size, myContext.getProject());
if (myContext.getWindow() != 0) {
final JFrame frame = (JFrame)DockManager.getInstance(myContext.getProject()).getIdeFrame((DockContainer)myContext);
final Window frame = SwingUtilities.getWindowAncestor(myPlaceholder);
service.setLocation(getDimensionKey(), frame.getLocationOnScreen());
}
}
@@ -46,7 +46,7 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.awt.*;
public class RunnerLayoutUiImpl implements Disposable, RunnerLayoutUi, LayoutStateDefaults, LayoutViewOptions {
public class RunnerLayoutUiImpl implements Disposable.Parent, RunnerLayoutUi, LayoutStateDefaults, LayoutViewOptions {
private final RunnerLayout myLayout;
private final JPanel myContentPanel;
private final RunnerContentUi myContentUI;
@@ -155,6 +155,11 @@ public class RunnerLayoutUiImpl implements Disposable, RunnerLayoutUi, LayoutSta
myContentUI.updateActionsImmediately();
}
@Override
public void beforeTreeDispose() {
myContentUI.saveUiState();
}
public void dispose() {
}
@@ -111,6 +111,7 @@ public class FileStructurePopup implements Disposable {
private PsiElement myInitialPsiElement;
private Map<Class, JCheckBox> myCheckBoxes = new HashMap<Class, JCheckBox>();
private String myTestSearchFilter;
private final ActionCallback myTreeHasBuilt = new ActionCallback();
public FileStructurePopup(StructureViewModel structureViewModel,
@Nullable Editor editor,
@@ -119,6 +120,7 @@ public class FileStructurePopup implements Disposable {
final boolean applySortAndFilter) {
myProject = project;
myEditor = editor;
IdeFocusManager.getInstance(myProject).typeAheadUntil(myTreeHasBuilt);
myBaseTreeModel = structureViewModel;
Disposer.register(this, auxDisposable);
if (applySortAndFilter) {
@@ -210,8 +212,6 @@ public class FileStructurePopup implements Disposable {
public void show() {
//final long time = System.currentTimeMillis();
final ActionCallback treeHasBuilt = new ActionCallback();
IdeFocusManager.getInstance(myProject).typeAheadUntil(treeHasBuilt);
JComponent panel = createCenterPanel();
new MnemonicHelper().register(panel);
boolean shouldSetWidth = DimensionService.getInstance().getSize(getDimensionServiceKey(), myProject) == null;
@@ -250,8 +250,8 @@ public class FileStructurePopup implements Disposable {
Disposer.register(myPopup, new Disposable() {
@Override
public void dispose() {
if (!treeHasBuilt.isDone()) {
treeHasBuilt.setRejected();
if (!myTreeHasBuilt.isDone()) {
myTreeHasBuilt.setRejected();
}
}
});
@@ -275,7 +275,7 @@ public class FileStructurePopup implements Disposable {
@Override
public void run() {
selectPsiElement(myInitialPsiElement);
treeHasBuilt.setDone();
myTreeHasBuilt.setDone();
//long t = System.currentTimeMillis() - time;
//System.out.println("Shown in " + t + "ms");
}
@@ -178,10 +178,11 @@ public class GotoActionModel implements ChooseByNameModel, CustomMatcherModel {
}
protected static Color defaultActionForeground(boolean isSelected, Presentation presentation) {
return isSelected ? UIUtil.getListSelectionForeground()
: presentation.isEnabled() && presentation.isVisible()
? UIUtil.getListForeground()
: UIUtil.getInactiveTextColor();
if (!presentation.isEnabled() || !presentation.isVisible()) {
return UIUtil.getInactiveTextColor();
}
return isSelected ? UIUtil.getListSelectionForeground() : UIUtil.getListForeground();
}
public String[] getNames(boolean checkBoxState) {
@@ -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.
@@ -237,7 +237,7 @@ public class DirectoryNode extends PackageDependenciesNode {
@Override
public String getComment() {
if (myVDirectory != null && myVDirectory.isValid()) {
if (myVDirectory != null && myVDirectory.isValid() && !myProject.isDisposed()) {
return ProjectViewDirectoryHelper.getInstance(myProject).getLocationString(getPsiDirectory());
}
return super.getComment();
@@ -20,8 +20,10 @@
*/
package com.intellij.profile.codeInspection.ui;
import com.intellij.codeInspection.InspectionProfileEntry;
import com.intellij.codeInspection.InspectionsBundle;
import com.intellij.codeInspection.ex.Descriptor;
import com.intellij.codeInspection.ex.GlobalInspectionToolWrapper;
import com.intellij.codeInspection.ex.LocalInspectionToolWrapper;
import com.intellij.ide.ui.search.SearchUtil;
import com.intellij.ui.CheckboxTree;
@@ -91,14 +93,15 @@ abstract class InspectionsConfigTreeRenderer extends CheckboxTree.CheckboxTreeCe
}
@Nullable
private static String getHint(Descriptor descriptor) {
if (descriptor.getTool() == null) {
return InspectionsBundle.message("inspection.tool.availability.in.tree.node");
private static String getHint(Descriptor descriptor) {
final InspectionProfileEntry tool = descriptor.getTool();
if (tool == null) {
return InspectionsBundle.message("inspection.tool.availability.in.tree.node");
}
if (tool instanceof LocalInspectionToolWrapper ||
tool instanceof GlobalInspectionToolWrapper && !((GlobalInspectionToolWrapper)tool).worksInBatchModeOnly()) {
return null;
}
return InspectionsBundle.message("inspection.tool.availability.in.tree.node1");
}
if (descriptor.getTool()instanceof LocalInspectionToolWrapper) {
return null;
}
return InspectionsBundle.message("inspection.tool.availability.in.tree.node1");
}
}
@@ -295,6 +295,7 @@ public abstract class InplaceRefactoring {
Template template = builder.buildInlineTemplate();
template.setToShortenLongNames(false);
template.setToReformat(false);
TextRange range = myScope.getTextRange();
assert range != null;
myHighlighters = new ArrayList<RangeHighlighter>();
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2011 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.
@@ -159,6 +159,11 @@ public class MemberInplaceRenamer extends VariableInplaceRenamer {
return showChooser;
}
@Override
protected boolean shouldCreateSnapshot() {
return false;
}
private void appendAdditionalElement(Collection<Pair<PsiElement, TextRange>> stringUsages,
PsiNamedElement variable,
PsiElement element) {
@@ -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.
@@ -132,12 +132,18 @@ public class VariableInplaceRenamer extends InplaceRefactoring {
return stringUsages.isEmpty();
}
protected boolean shouldCreateSnapshot() {
return true;
}
@Override
protected void beforeTemplateStart() {
super.beforeTemplateStart();
myLanguage = myScope.getLanguage();
final ResolveSnapshotProvider resolveSnapshotProvider = INSTANCE.forLanguage(myLanguage);
mySnapshot = resolveSnapshotProvider != null ? resolveSnapshotProvider.createSnapshot(myScope) : null;
if (shouldCreateSnapshot()) {
final ResolveSnapshotProvider resolveSnapshotProvider = INSTANCE.forLanguage(myLanguage);
mySnapshot = resolveSnapshotProvider != null ? resolveSnapshotProvider.createSnapshot(myScope) : null;
}
final SelectionModel selectionModel = myEditor.getSelectionModel();
mySelectedRange =
@@ -1933,6 +1933,9 @@ public class FileBasedIndex implements ApplicationComponent {
@Override
public boolean processFile(final VirtualFile file) {
if (!file.isValid()) {
return true;
}
if (!file.isDirectory()) {
if (file instanceof NewVirtualFile && ((NewVirtualFile)file).getFlag(ALREADY_PROCESSED)) {
return true;
@@ -0,0 +1,49 @@
/*
* 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.openapi.fileEditor;
import java.util.Map;
/**
* This interface extends FileEditorState interface to sync some editor's options
* Example:
* we have image editor and open image files, image by image. We'd like to set default zoom
* factor to 1:1, but this is not the default value for this option. So, we can use methods in this
* interface to store these options somewhere and apply them within the session (the time we need these options).
*
* @author Konstantin Bulenkov
*/
public interface TransferableFileEditorState extends FileEditorState {
/**
* Returns unique editor ID
*
* @return unique editor ID
*/
String getEditorId();
/**
* Options name-value string mapping. Example: {{"zoomFactor": "1:1"}, {"transparentBackground": "false"}}
*
* @return name-value string mapping
*/
Map<String, String> getTransferableOptions();
/**
* Applies options to the editor
* @param options name-value string mapping
*/
void setTransferableOptions(Map<String, String> options);
}
@@ -60,14 +60,47 @@ public class WildcardFileNameMatcher implements FileNameMatcher {
}
}
private static final class PrefixMatcher implements MaskMatcher {
private final String myPrefix;
private PrefixMatcher(final String prefix) {
myPrefix = prefix;
}
public boolean matches(final String filename) {
return filename.startsWith(myPrefix);
}
}
private static final class InfixMatcher implements MaskMatcher {
private final String myInfix;
private InfixMatcher(final String infix) {
myInfix = infix;
}
public boolean matches(final String filename) {
return filename.contains(myInfix);
}
}
public WildcardFileNameMatcher(@NotNull @NonNls String pattern) {
myPattern = pattern;
myMatcher = createMatcher(pattern);
}
private static MaskMatcher createMatcher(final String pattern) {
if (pattern.length() > 1 && pattern.charAt(0) == '*' && pattern.indexOf('*', 1) < 0 && pattern.indexOf('?') < 0) {
return new SuffixMatcher(pattern.substring(1));
int len = pattern.length();
if (len > 1 && pattern.indexOf('?') < 0) {
if (pattern.charAt(0) == '*' && pattern.indexOf('*', 1) < 0) {
return new SuffixMatcher(pattern.substring(1));
}
if (pattern.indexOf('*') == len - 1) {
return new PrefixMatcher(pattern.substring(0, len - 1));
}
if (len > 2 && pattern.charAt(0) == '*' && pattern.indexOf('*', 1) == len - 1) {
return new InfixMatcher(pattern.substring(1, len - 1));
}
}
return new RegexpMatcher(pattern);
}
@@ -115,6 +115,7 @@ public abstract class MouseDragHelper implements MouseListener, MouseMotionListe
myPressPointScreen = new RelativePoint(e).getScreenPoint();
myPressPointComponent = e.getPoint();
processMousePressed(e);
myDelta = new Dimension();
if (myDragComponent.isShowing()) {
@@ -209,6 +210,9 @@ public abstract class MouseDragHelper implements MouseListener, MouseMotionListe
return true;
}
protected void processMousePressed(MouseEvent event) {
}
protected void processDragCancel() {
}
@@ -86,6 +86,12 @@ public final class TabInfo implements Queryable, PlaceProvider<String> {
private Queryable myQueryable;
private DragOutDelegate myDragOutDelegate;
/**
* The tab which was selected before the mouse was pressed on this tab. Focus will be transferred to that tab if this tab is dragged
* out of its container. (IDEA-61536)
*/
private WeakReference<TabInfo> myPreviousSelection = new WeakReference<TabInfo>(null);
public TabInfo(final JComponent component) {
myComponent = component;
myPreferredFocusableComponent = component;
@@ -371,6 +377,15 @@ public final class TabInfo implements Queryable, PlaceProvider<String> {
return myDragOutDelegate;
}
public void setPreviousSelection(@Nullable TabInfo previousSelection) {
myPreviousSelection = new WeakReference<TabInfo>(previousSelection);
}
@Nullable
public TabInfo getPreviousSelection() {
return myPreviousSelection.get();
}
public interface DragOutDelegate {
void dragOutStarted(MouseEvent mouseEvent, TabInfo info);
@@ -18,6 +18,7 @@ package com.intellij.ui.tabs.impl;
import com.intellij.ui.InplaceButton;
import com.intellij.ui.MouseDragHelper;
import com.intellij.ui.ScreenUtil;
import com.intellij.ui.awt.RelativePoint;
import com.intellij.ui.tabs.TabInfo;
import org.jetbrains.annotations.Nullable;
@@ -38,6 +39,7 @@ class DragHelper extends MouseDragHelper {
Measurer myVertical = new Measurer.Height();
private TabInfo myDragOutSource;
private TabLabel myPressedTabLabel;
public DragHelper(JBTabsImpl tabs) {
super(tabs, tabs);
@@ -81,19 +83,25 @@ class DragHelper extends MouseDragHelper {
myDragOutSource.getDragOutDelegate().dragOutCancelled(myDragOutSource);
}
@Override
protected void processMousePressed(MouseEvent event) {
// since selection change can cause tabs to be reordered, we need to remember the tab on which the mouse was pressed, otherwise
// we'll end up dragging the wrong tab (IDEA-65073)
myPressedTabLabel = findLabel(new RelativePoint(event).getPoint(myTabs));
}
protected void processDrag(MouseEvent event, Point targetScreenPoint, Point startPointScreen) {
if (!myTabs.isTabDraggingEnabled()) return;
SwingUtilities.convertPointFromScreen(startPointScreen, myTabs);
if (isDragJustStarted()) {
final TabLabel label = findLabel(startPointScreen);
if (label == null) return;
if (myPressedTabLabel == null) return;
final Rectangle labelBounds = label.getBounds();
final Rectangle labelBounds = myPressedTabLabel.getBounds();
myHoldDelta = new Dimension(startPointScreen.x - labelBounds.x, startPointScreen.y - labelBounds.y);
myDragSource = label.getInfo();
myDragSource = myPressedTabLabel.getInfo();
myDragRec = new Rectangle(startPointScreen, labelBounds.getSize());
myDragOriginalRec = (Rectangle)myDragRec.clone();
@@ -147,7 +147,7 @@ public class JBTabsImpl extends JComponent
private TimedDeadzone.Length myTabActionsMouseDeadzone = TimedDeadzone.DEFAULT;
private long myRemoveDefferredRequest;
private long myRemoveDeferredRequest;
private boolean myTestMode;
private JBTabsPosition myPosition = JBTabsPosition.top;
@@ -156,8 +156,6 @@ public class JBTabsImpl extends JComponent
private BaseNavigationAction myNextAction;
private BaseNavigationAction myPrevAction;
private boolean myWasEverShown;
private boolean myTabDraggingEnabled;
private DragHelper myDragHelper;
private boolean myNavigationActionsEnabled = true;
@@ -884,11 +882,11 @@ public class JBTabsImpl extends JComponent
private ActionCallback removeDeferred() {
final ActionCallback callback = new ActionCallback();
final long executionRequest = ++myRemoveDefferredRequest;
final long executionRequest = ++myRemoveDeferredRequest;
final Runnable onDone = new Runnable() {
public void run() {
if (myRemoveDefferredRequest == executionRequest) {
if (myRemoveDeferredRequest == executionRequest) {
removeDeferredNow();
}
@@ -1468,11 +1466,6 @@ public class JBTabsImpl extends JComponent
return insets;
}
private int fixInset(int inset, int addin) {
return inset + addin;
}
public int getToolbarInset() {
return getArcSize() + 1;
}
@@ -2903,7 +2896,7 @@ public class JBTabsImpl extends JComponent
return mySingleRowLayout;
}
public JBTabsPresentation setUiDecorator(UiDecorator decorator) {
public JBTabsPresentation setUiDecorator(@Nullable UiDecorator decorator) {
myUiDecorator = decorator == null ? ourDefaultDecorator : decorator;
applyDecoration();
return this;
@@ -2989,9 +2982,7 @@ public class JBTabsImpl extends JComponent
ActionGroup group = selection.getGroup();
if (group != null) {
AnAction[] children = group.getChildren(null);
for (int i = 0; i < children.length; i++) {
result.add(children[i]);
}
Collections.addAll(result, children);
}
}
@@ -34,6 +34,7 @@ import com.intellij.ui.tabs.UiDecorator;
import com.intellij.ui.tabs.impl.table.TableLayout;
import com.intellij.util.PairConsumer;
import com.intellij.util.ui.Centerizer;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
@@ -87,6 +88,10 @@ public class TabLabel extends JPanel {
addMouseListener(new MouseAdapter() {
public void mousePressed(final MouseEvent e) {
if (myTabs.isSelectionClick(e, false) && myInfo.isEnabled()) {
final TabInfo selectedInfo = myTabs.getSelectedInfo();
if (selectedInfo != myInfo) {
myInfo.setPreviousSelection(selectedInfo);
}
Component c = SwingUtilities.getDeepestComponentAt(e.getComponent(), e.getX(), e.getY());
if (c instanceof InplaceButton) return;
myTabs.select(info, true);
@@ -101,6 +106,7 @@ public class TabLabel extends JPanel {
}
public void mouseReleased(final MouseEvent e) {
myInfo.setPreviousSelection(null);
handlePopup(e);
}
});
@@ -385,8 +391,8 @@ public class TabLabel extends JPanel {
}
}
private static int getValue(int curentValue, int newValue) {
return newValue != -1 ? newValue : curentValue;
private static int getValue(int currentValue, int newValue) {
return newValue != -1 ? newValue : currentValue;
}
public void setTabActions(ActionGroup group) {
@@ -530,6 +536,7 @@ public class TabLabel extends JPanel {
}
@Nullable
public BufferedImage getInactiveStateImage(Rectangle effectiveBounds) {
BufferedImage img = null;
if (myLastPaintedInactiveImageBounds != null && myLastPaintedInactiveImageBounds.getSize().equals(effectiveBounds.getSize())) {
@@ -541,7 +548,7 @@ public class TabLabel extends JPanel {
return img;
}
public void setInactiveStateImage(BufferedImage img) {
public void setInactiveStateImage(@Nullable BufferedImage img) {
if (myInactiveStateImage != null && img != myInactiveStateImage) {
myInactiveStateImage.flush();
}
@@ -100,6 +100,7 @@ public class FilteringTreeStructure extends AbstractTreeStructure {
}
private void setUnknown(FilteringNode node) {
if (node.state == State.UNKNOWN) return;
node.state = State.UNKNOWN;
List<FilteringNode> nodes = myNodesCache.get(node);
if (nodes != null) {
@@ -16,6 +16,7 @@
package com.intellij.ide.diff;
import com.intellij.ide.presentation.VirtualFilePresentation;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.application.AccessToken;
@@ -26,9 +27,7 @@ import com.intellij.openapi.diff.DiffRequest;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserFactory;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.fileEditor.FileEditorProvider;
import com.intellij.openapi.fileEditor.*;
import com.intellij.openapi.fileEditor.ex.FileEditorProviderManager;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.project.Project;
@@ -47,7 +46,9 @@ import javax.swing.*;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
/**
@@ -149,11 +150,47 @@ public class VirtualFileDiffElement extends DiffElement<VirtualFile> {
if (providers.length > 0) {
myFileEditor = providers[0].createEditor(project, getValue());
myEditorProvider = providers[0];
setCustomState(myFileEditor);
return myFileEditor.getComponent();
}
return null;
}
private static void setCustomState(FileEditor editor) {
final FileEditorState state = editor.getState(FileEditorStateLevel.FULL);
if (state instanceof TransferableFileEditorState) {
final TransferableFileEditorState editorState = (TransferableFileEditorState)state;
final String id = editorState.getEditorId();
final HashMap<String, String> options = new HashMap<String, String>();
final PropertiesComponent properties = PropertiesComponent.getInstance();
for (String key : editorState.getTransferableOptions().keySet()) {
final String value = properties.getValue(getKey(id, key));
if (value != null) {
options.put(key, value);
}
}
editorState.setTransferableOptions(options);
editor.setState(editorState);
}
}
private static void saveCustomState(FileEditor editor) {
final FileEditorState state = editor.getState(FileEditorStateLevel.FULL);
if (state instanceof TransferableFileEditorState) {
final TransferableFileEditorState editorState = (TransferableFileEditorState)state;
final String id = editorState.getEditorId();
final PropertiesComponent properties = PropertiesComponent.getInstance();
final Map<String,String> options = editorState.getTransferableOptions();
for (String key : options.keySet()) {
properties.setValue(getKey(id, key), options.get(key));
}
}
}
private static String getKey(String editorId, String key) {
return "dir.diff.editor.options." + editorId + "." + key;
}
@Override
protected DiffRequest createRequestForBinaries(Project project, @NotNull VirtualFile src, @NotNull VirtualFile trg) {
if (FileEditorProviderManager.getInstance().getProviders(project, src).length > 0
@@ -168,6 +205,7 @@ public class VirtualFileDiffElement extends DiffElement<VirtualFile> {
public void disposeViewComponent() {
super.disposeViewComponent();
if (myFileEditor != null && myEditorProvider != null) {
saveCustomState(myFileEditor);
myEditorProvider.disposeEditor(myFileEditor);
myFileEditor = null;
myEditorProvider = null;
@@ -17,6 +17,7 @@ package com.intellij.ide.dnd.aware;
import com.intellij.ide.dnd.DnDAware;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.ui.treeStructure.Tree;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
@@ -49,6 +50,12 @@ public class DnDAwareTree extends Tree implements DnDAware {
super.processMouseEvent(e);
}
@Override
protected void processMouseMotionEvent(MouseEvent e) {
if (SystemInfo.isMac && SwingUtilities.isRightMouseButton(e) && e.getID() == MouseEvent.MOUSE_DRAGGED) return;
super.processMouseMotionEvent(e);
}
public final boolean isOverSelection(final Point point) {
final TreeUI ui = getUI();
final TreePath path = ui instanceof UIUtil.MacTreeUI && ((UIUtil.MacTreeUI)ui).isWideSelection()
@@ -121,7 +121,7 @@ public class EventLog implements Notifications {
return getLogModel(project).getStatusMessage();
}
public static LogEntry formatForLog(@NotNull final Notification notification) {
public static LogEntry formatForLog(@NotNull final Notification notification, String indent) {
DocumentImpl logDoc = new DocumentImpl(true);
AtomicBoolean showMore = new AtomicBoolean(false);
Map<RangeMarker, HyperlinkInfo> links = new LinkedHashMap<RangeMarker, HyperlinkInfo>();
@@ -141,7 +141,7 @@ public class EventLog implements Notifications {
String status = getStatusText(logDoc, showMore, lineSeparators, hasHtml);
indentNewLines(logDoc, lineSeparators, afterTitle, hasHtml);
indentNewLines(logDoc, lineSeparators, afterTitle, hasHtml, indent);
ArrayList<Pair<TextRange, HyperlinkInfo>> list = new ArrayList<Pair<TextRange, HyperlinkInfo>>();
for (RangeMarker marker : links.keySet()) {
@@ -165,7 +165,7 @@ public class EventLog implements Notifications {
return new LogEntry(logDoc.getText(), status, list);
}
private static void indentNewLines(DocumentImpl logDoc, List<RangeMarker> lineSeparators, RangeMarker afterTitle, boolean hasHtml) {
private static void indentNewLines(DocumentImpl logDoc, List<RangeMarker> lineSeparators, RangeMarker afterTitle, boolean hasHtml, String indent) {
if (!hasHtml) {
int i = -1;
while (true) {
@@ -187,8 +187,8 @@ public class EventLog implements Notifications {
continue;
}
logDoc.replaceString(start, separator.getEndOffset(), "\n\t");
nextLineStart = start + 2;
logDoc.replaceString(start, separator.getEndOffset(), "\n" + indent);
nextLineStart = start + 1 + indent.length();
while (nextLineStart < logDoc.getTextLength() && Character.isWhitespace(logDoc.getCharsSequence().charAt(nextLineStart))) {
logDoc.deleteString(nextLineStart, nextLineStart + 1);
}
@@ -234,8 +234,9 @@ public class EventLog implements Notifications {
int linkEnd = content.indexOf(A_CLOSING, tagMatcher.end());
if (linkEnd > 0) {
String linkText = content.substring(tagMatcher.end(), linkEnd).replaceAll(TAG_PATTERN.pattern(), "");
int linkStart = document.getTextLength();
appendText(document, linkText);
links.put(document.createRangeMarker(new TextRange(document.getTextLength() - linkText.length(), document.getTextLength())),
links.put(document.createRangeMarker(new TextRange(linkStart, document.getTextLength())),
new NotificationHyperlinkInfo(notification, href));
content = content.substring(linkEnd + A_CLOSING.length());
continue;
@@ -38,6 +38,7 @@ import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.NotNullLazyValue;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.ui.awt.RelativePoint;
import com.intellij.util.EditorPopupHandler;
import com.intellij.util.text.DateFormatUtil;
@@ -137,10 +138,11 @@ class EventLogConsole {
if (notificationTime == null) {
return;
}
append(document, DateFormatUtil.formatTimeWithSeconds(notificationTime) + " ");
EventLog.LogEntry pair = EventLog.formatForLog(notification);
String date = DateFormatUtil.formatTimeWithSeconds(notificationTime) + " ";
append(document, date);
EventLog.LogEntry pair = EventLog.formatForLog(notification, StringUtil.repeatSymbol(' ', date.length()));
final NotificationType type = notification.getType();
TextAttributesKey key = type == NotificationType.ERROR
@@ -61,7 +61,7 @@ public class NotificationTestAction extends AnAction implements DumbAware {
};
final Notification notification = new Notification(TEST_GROUP_ID, "This is a test notification", //"a",
"You can close this very very very very long notification by clicking <a href=\"close\">this link</a>. Long long long long. It should be long. Very long. Too long. And even longer.",
"You can<br> close this very<p> very very very long notification by clicking <a href=\"close\">this link</a>. Long long long long. It should be long. Very long. Too long. And even longer.",
type, listener);
messageBus.syncPublisher(Notifications.TOPIC).notify(notification);

Some files were not shown because too many files have changed in this diff Show More