OC-11351 Parameter info for Swift

This commit is contained in:
Alexander Lobas
2014-12-24 17:17:12 +03:00
parent b06208d810
commit 06dbabe098
2 changed files with 20 additions and 17 deletions
@@ -28,7 +28,6 @@ import com.intellij.testFramework.LightCodeInsightTestCase;
import com.intellij.testFramework.utils.parameterInfo.MockCreateParameterInfoContext;
import com.intellij.testFramework.utils.parameterInfo.MockParameterInfoUIContext;
import com.intellij.testFramework.utils.parameterInfo.MockUpdateParameterInfoContext;
import com.intellij.util.ArrayUtilRt;
import com.intellij.util.Function;
import junit.framework.Assert;
@@ -104,21 +103,10 @@ public class ParameterInfoTest extends LightCodeInsightTestCase {
assertEquals(2, itemsToShow.length);
assertTrue(itemsToShow[0] instanceof MethodCandidateInfo);
final ParameterInfoUIContextEx parameterContext = ParameterInfoComponent.createContext(itemsToShow, myEditor, handler, -1);
final Boolean [] enabled = new Boolean[itemsToShow.length];
final MockUpdateParameterInfoContext updateParameterInfoContext = new MockUpdateParameterInfoContext(myEditor, myFile){
@Override
public Object[] getObjectsToView() {
return itemsToShow;
}
@Override
public void setUIComponentEnabled(int index, boolean b) {
enabled[index] = b;
}
};
final MockUpdateParameterInfoContext updateParameterInfoContext = new MockUpdateParameterInfoContext(myEditor, myFile, itemsToShow);
updateParameterInfoContext.setParameterOwner(list);
handler.updateParameterInfo(list, updateParameterInfoContext);
assertTrue(ArrayUtilRt.find(enabled, Boolean.TRUE) > -1);
assertTrue(updateParameterInfoContext.isUIComponentEnabled(0) || updateParameterInfoContext.isUIComponentEnabled(1));
}
public void testAfterGenericsInsideCall() throws Exception {
@@ -22,6 +22,7 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.util.ArrayUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author gregsh
@@ -32,10 +33,18 @@ public class MockUpdateParameterInfoContext implements UpdateParameterInfoContex
private PsiElement myParameterOwner;
private Object myHighlightedParameter;
private int myCurrentParameter;
private final Object[] myItems;
private final boolean[] myCompEnabled;
public MockUpdateParameterInfoContext(@NotNull Editor editor, @NotNull PsiFile file) {
this(editor, file, null);
}
public MockUpdateParameterInfoContext(@NotNull Editor editor, @NotNull PsiFile file, @Nullable Object[] items) {
myEditor = editor;
myFile = file;
myItems = items == null ? ArrayUtil.EMPTY_OBJECT_ARRAY : items;
myCompEnabled = items == null ? null : new boolean[items.length];
}
public void removeHint() {}
@@ -58,16 +67,22 @@ public class MockUpdateParameterInfoContext implements UpdateParameterInfoContex
return myCurrentParameter;
}
public boolean isUIComponentEnabled(int index) { return false; }
public boolean isUIComponentEnabled(int index) {
return myCompEnabled != null && myCompEnabled[index];
}
public void setUIComponentEnabled(int index, boolean b) {}
public void setUIComponentEnabled(int index, boolean b) {
if (myCompEnabled != null) {
myCompEnabled[index] = b;
}
}
public int getParameterListStart() {
return myEditor.getCaretModel().getOffset();
}
public Object[] getObjectsToView() {
return ArrayUtil.EMPTY_OBJECT_ARRAY;
return myItems;
}
public Project getProject() {