diff --git a/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java b/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java index a92f13a38b2..032f704f287 100644 --- a/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java @@ -249,6 +249,12 @@ public class DescriptorRenderer implements Renderer { return stringBuilder.toString(); } + public String renderFunctionParameters(@NotNull FunctionDescriptor functionDescriptor) { + StringBuilder stringBuilder = new StringBuilder(); + rootVisitor.renderValueParameters(functionDescriptor, stringBuilder); + return stringBuilder.toString(); + } + protected boolean shouldRenderDefinedIn() { return true; } diff --git a/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java b/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java index 7f127ade01a..bdb93e3c77a 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java @@ -20,9 +20,7 @@ import com.google.common.collect.Lists; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupElementBuilder; import com.intellij.openapi.util.Iconable; -import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElement; -import com.intellij.util.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; @@ -64,14 +62,7 @@ public final class DescriptorLookupConverter { FunctionDescriptor functionDescriptor = (FunctionDescriptor) descriptor; JetType returnType = functionDescriptor.getReturnType(); typeText = DescriptorRenderer.TEXT.renderType(returnType); - - tailText = "(" + StringUtil.join(functionDescriptor.getValueParameters(), new Function() { - @Override - public String fun(ValueParameterDescriptor valueParameterDescriptor) { - return valueParameterDescriptor.getName() + ":" + - DescriptorRenderer.TEXT.renderType(valueParameterDescriptor.getType()); - } - }, ",") + ")"; + tailText = DescriptorRenderer.TEXT.renderFunctionParameters(functionDescriptor); boolean extensionFunction = functionDescriptor.getReceiverParameter().exists(); DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration(); diff --git a/idea/testData/completion/basic/FunctionCompletionFormatting.kt b/idea/testData/completion/basic/FunctionCompletionFormatting.kt new file mode 100644 index 00000000000..9049e936f69 --- /dev/null +++ b/idea/testData/completion/basic/FunctionCompletionFormatting.kt @@ -0,0 +1,7 @@ +fun test(a: Int) {} + +fun some() { + tes +} + +// EXIST: test~(a : jet.Int) \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java b/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java index c0355f7b942..97620889167 100644 --- a/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java +++ b/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java @@ -81,6 +81,10 @@ public class JetBasicCompletionTest extends JetCompletionTestBase { doTest(); } + public void testFunctionCompletionFormatting() { + doTest(); + } + public void testInCallExpression() { doTest(); }