Got rid of DescriptorRendererBuilder providing new scheme for creating DescriptorRenderer's
This commit is contained in:
@@ -1,64 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2015 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.jetbrains.kotlin.idea.util;
|
||||
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder;
|
||||
import org.jetbrains.kotlin.renderer.NameShortness;
|
||||
import org.jetbrains.kotlin.types.JetType;
|
||||
|
||||
public class IdeDescriptorRenderers {
|
||||
|
||||
public static final Function1<JetType, JetType> APPROXIMATE_FLEXIBLE_TYPES = new Function1<JetType, JetType>() {
|
||||
@Override
|
||||
public JetType invoke(JetType type) {
|
||||
return UtilPackage.approximateFlexibleTypes(type, true);
|
||||
}
|
||||
};
|
||||
|
||||
public static final Function1<JetType, JetType> APPROXIMATE_FLEXIBLE_TYPES_IN_ARGUMENTS = new Function1<JetType, JetType>() {
|
||||
@Override
|
||||
public JetType invoke(JetType type) {
|
||||
return UtilPackage.approximateFlexibleTypes(type, false);
|
||||
}
|
||||
};
|
||||
|
||||
public static final DescriptorRenderer SOURCE_CODE = commonBuilder()
|
||||
.setNameShortness(NameShortness.SOURCE_CODE_QUALIFIED)
|
||||
.setTypeNormalizer(APPROXIMATE_FLEXIBLE_TYPES)
|
||||
.build();
|
||||
|
||||
public static final DescriptorRenderer SOURCE_CODE_FOR_TYPE_ARGUMENTS = commonBuilder()
|
||||
.setNameShortness(NameShortness.SOURCE_CODE_QUALIFIED)
|
||||
.setTypeNormalizer(APPROXIMATE_FLEXIBLE_TYPES_IN_ARGUMENTS)
|
||||
.build();
|
||||
|
||||
public static final DescriptorRenderer SOURCE_CODE_SHORT_NAMES_IN_TYPES = commonBuilder()
|
||||
.setNameShortness(NameShortness.SHORT)
|
||||
.setTypeNormalizer(APPROXIMATE_FLEXIBLE_TYPES)
|
||||
.build();
|
||||
|
||||
private static DescriptorRendererBuilder commonBuilder() {
|
||||
return new DescriptorRendererBuilder()
|
||||
.setNormalizedVisibilities(true)
|
||||
.setWithDefinedIn(false)
|
||||
.setShowInternalKeyword(false)
|
||||
.setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE)
|
||||
.setUnitReturnType(false);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright 2010-2015 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.jetbrains.kotlin.idea.util
|
||||
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.renderer.NameShortness
|
||||
import org.jetbrains.kotlin.types.JetType
|
||||
|
||||
public object IdeDescriptorRenderers {
|
||||
public val APPROXIMATE_FLEXIBLE_TYPES: (JetType) -> JetType = { approximateFlexibleTypes(it, true) }
|
||||
|
||||
public val APPROXIMATE_FLEXIBLE_TYPES_IN_ARGUMENTS: (JetType) -> JetType = { approximateFlexibleTypes(it, false) }
|
||||
|
||||
private val BASE: DescriptorRenderer = DescriptorRenderer.withOptions {
|
||||
normalizedVisibilities = true
|
||||
withDefinedIn = false
|
||||
showInternalKeyword = false
|
||||
overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE
|
||||
unitReturnType = false
|
||||
}
|
||||
|
||||
public val SOURCE_CODE: DescriptorRenderer = BASE.withOptions {
|
||||
nameShortness = NameShortness.SOURCE_CODE_QUALIFIED
|
||||
typeNormalizer = APPROXIMATE_FLEXIBLE_TYPES
|
||||
}
|
||||
|
||||
public val SOURCE_CODE_FOR_TYPE_ARGUMENTS: DescriptorRenderer = BASE.withOptions {
|
||||
nameShortness = NameShortness.SOURCE_CODE_QUALIFIED
|
||||
typeNormalizer = APPROXIMATE_FLEXIBLE_TYPES_IN_ARGUMENTS
|
||||
}
|
||||
|
||||
public val SOURCE_CODE_SHORT_NAMES_IN_TYPES: DescriptorRenderer = BASE.withOptions {
|
||||
nameShortness = NameShortness.SHORT
|
||||
typeNormalizer = APPROXIMATE_FLEXIBLE_TYPES
|
||||
}
|
||||
}
|
||||
+11
-20
@@ -26,7 +26,6 @@ import org.jetbrains.kotlin.load.kotlin.header.isCompatibleClassKind
|
||||
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry
|
||||
import org.jetbrains.kotlin.resolve.dataClassUtils.isComponentLike
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.secondaryConstructors
|
||||
@@ -93,26 +92,18 @@ private val DECOMPILED_CODE_COMMENT = "/* compiled code */"
|
||||
private val DECOMPILED_COMMENT_FOR_PARAMETER = "/* = compiled code */"
|
||||
private val FLEXIBLE_TYPE_COMMENT = "/* platform type */"
|
||||
|
||||
private val descriptorRendererForDecompiler = DescriptorRendererBuilder()
|
||||
.setWithDefinedIn(false)
|
||||
.setClassWithPrimaryConstructor(true)
|
||||
.setTypeNormalizer {
|
||||
type ->
|
||||
if (type.isFlexible()) {
|
||||
type.flexibility().lowerBound
|
||||
}
|
||||
else type
|
||||
|
||||
}
|
||||
.setSecondaryConstructorsAsPrimary(false)
|
||||
.build()
|
||||
|
||||
private val descriptorRendererForKotlinJavascriptDecompiler = DescriptorRendererBuilder()
|
||||
.setWithDefinedIn(false)
|
||||
.setClassWithPrimaryConstructor(true)
|
||||
.setSecondaryConstructorsAsPrimary(false)
|
||||
.build()
|
||||
private val descriptorRendererForDecompiler = DescriptorRenderer.withOptions {
|
||||
withDefinedIn = false
|
||||
classWithPrimaryConstructor = true
|
||||
typeNormalizer = { type -> if (type.isFlexible()) type.flexibility().lowerBound else type }
|
||||
secondaryConstructorsAsPrimary = false
|
||||
}
|
||||
|
||||
private val descriptorRendererForKotlinJavascriptDecompiler = DescriptorRenderer.withOptions {
|
||||
withDefinedIn = false
|
||||
classWithPrimaryConstructor = true
|
||||
secondaryConstructorsAsPrimary = false
|
||||
}
|
||||
|
||||
private val descriptorRendererForKeys = DescriptorRenderer.COMPACT_WITH_MODIFIERS
|
||||
|
||||
|
||||
+27
-18
@@ -17,6 +17,8 @@
|
||||
package org.jetbrains.kotlin.idea.highlighter;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
|
||||
@@ -26,11 +28,12 @@ import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.Table
|
||||
import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.TableRenderer.FunctionArgumentsRow;
|
||||
import org.jetbrains.kotlin.diagnostics.rendering.TabledDescriptorRenderer.TableRenderer.TableRow;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
|
||||
import org.jetbrains.kotlin.renderer.Renderer;
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.ConstraintPosition;
|
||||
import org.jetbrains.kotlin.types.JetType;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
@@ -166,44 +169,50 @@ public class HtmlTabledDescriptorRenderer extends TabledDescriptorRenderer {
|
||||
|
||||
private static final DescriptorRenderer.ValueParametersHandler VALUE_PARAMETERS_HANDLER = new DescriptorRenderer.ValueParametersHandler() {
|
||||
@Override
|
||||
public void appendBeforeValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder stringBuilder) {
|
||||
stringBuilder.append("<td align=\"right\" style=\"white-space:nowrap;font-weight:bold;\">");
|
||||
public void appendBeforeValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder builder) {
|
||||
builder.append("<td align=\"right\" style=\"white-space:nowrap;font-weight:bold;\">");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendAfterValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder stringBuilder) {
|
||||
public void appendAfterValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder builder) {
|
||||
boolean last = ((FunctionDescriptor) parameter.getContainingDeclaration()).getValueParameters().size() - 1 == parameter.getIndex();
|
||||
if (!last) {
|
||||
stringBuilder.append(",");
|
||||
builder.append(",");
|
||||
}
|
||||
stringBuilder.append("</td>");
|
||||
builder.append("</td>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendBeforeValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder stringBuilder) {
|
||||
stringBuilder.append("</td>");
|
||||
public void appendBeforeValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder builder) {
|
||||
builder.append("</td>");
|
||||
if (function.getValueParameters().isEmpty()) {
|
||||
tdBold(stringBuilder, "( )");
|
||||
tdBold(builder, "( )");
|
||||
}
|
||||
else {
|
||||
tdBold(stringBuilder, "(");
|
||||
tdBold(builder, "(");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendAfterValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder stringBuilder) {
|
||||
public void appendAfterValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder builder) {
|
||||
if (!function.getValueParameters().isEmpty()) {
|
||||
tdBold(stringBuilder, ")");
|
||||
tdBold(builder, ")");
|
||||
}
|
||||
stringBuilder.append("<td style=\"white-space:nowrap;font-weight:bold;\">");
|
||||
builder.append("<td style=\"white-space:nowrap;font-weight:bold;\">");
|
||||
}
|
||||
};
|
||||
|
||||
public static final DescriptorRenderer DESCRIPTOR_IN_TABLE = new DescriptorRendererBuilder()
|
||||
.setWithDefinedIn(false)
|
||||
.setModifiers()
|
||||
.setValueParametersHandler(VALUE_PARAMETERS_HANDLER)
|
||||
.setTextFormat(DescriptorRenderer.TextFormat.HTML).build();
|
||||
public static final DescriptorRenderer DESCRIPTOR_IN_TABLE = DescriptorRenderer.Companion.withOptions(
|
||||
new Function1<DescriptorRendererOptions, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(DescriptorRendererOptions options) {
|
||||
options.setWithDefinedIn(false);
|
||||
options.setModifiers(Collections.<DescriptorRenderer.Modifier>emptySet());
|
||||
options.setValueParametersHandler(VALUE_PARAMETERS_HANDLER);
|
||||
options.setTextFormat(DescriptorRenderer.TextFormat.HTML);
|
||||
return Unit.INSTANCE$;
|
||||
}
|
||||
});
|
||||
|
||||
private static void td(StringBuilder builder, String text) {
|
||||
builder.append("<td style=\"white-space:nowrap;\">").append(text).append("</td>");
|
||||
|
||||
+16
-7
@@ -24,6 +24,8 @@ import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMember;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
||||
@@ -32,12 +34,13 @@ import org.jetbrains.kotlin.psi.JetClass;
|
||||
import org.jetbrains.kotlin.psi.JetDeclaration;
|
||||
import org.jetbrains.kotlin.psi.JetNamedDeclaration;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
|
||||
import org.jetbrains.kotlin.renderer.NameShortness;
|
||||
import org.jetbrains.kotlin.renderer.RendererPackage;
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Collections;
|
||||
|
||||
public class DescriptorClassMember extends MemberChooserObjectBase implements ClassMemberWithElement {
|
||||
|
||||
@@ -47,12 +50,18 @@ public class DescriptorClassMember extends MemberChooserObjectBase implements Cl
|
||||
@NotNull
|
||||
private final PsiElement myPsiElement;
|
||||
|
||||
private static final DescriptorRenderer MEMBER_RENDERER = new DescriptorRendererBuilder()
|
||||
.setWithDefinedIn(false)
|
||||
.setModifiers()
|
||||
.setStartFromName(true)
|
||||
.setNameShortness(NameShortness.SHORT)
|
||||
.build();
|
||||
private static final DescriptorRenderer MEMBER_RENDERER = DescriptorRenderer.Companion.withOptions(
|
||||
new Function1<DescriptorRendererOptions, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(DescriptorRendererOptions options) {
|
||||
options.setWithDefinedIn(false);
|
||||
options.setModifiers(Collections.<DescriptorRenderer.Modifier>emptySet());
|
||||
options.setStartFromName(true);
|
||||
options.setNameShortness(NameShortness.SHORT);
|
||||
return Unit.INSTANCE$;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
public DescriptorClassMember(@NotNull PsiElement element, @NotNull DeclarationDescriptor descriptor) {
|
||||
super(getText(descriptor), getIcon(element, descriptor));
|
||||
|
||||
+9
-10
@@ -39,7 +39,6 @@ import org.jetbrains.kotlin.idea.util.ShortenReferences
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
|
||||
import org.jetbrains.kotlin.renderer.NameShortness
|
||||
import org.jetbrains.kotlin.types.JetType
|
||||
|
||||
@@ -118,15 +117,15 @@ public abstract class OverrideImplementMethodsHandler : LanguageCodeInsightActio
|
||||
override fun startInWriteAction(): Boolean = false
|
||||
|
||||
companion object {
|
||||
private val OVERRIDE_RENDERER = DescriptorRendererBuilder()
|
||||
.setRenderDefaultValues(false)
|
||||
.setModifiers(DescriptorRenderer.Modifier.OVERRIDE)
|
||||
.setWithDefinedIn(false)
|
||||
.setNameShortness(NameShortness.SOURCE_CODE_QUALIFIED)
|
||||
.setOverrideRenderingPolicy(DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE)
|
||||
.setUnitReturnType(false)
|
||||
.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES)
|
||||
.build()
|
||||
private val OVERRIDE_RENDERER = DescriptorRenderer.withOptions {
|
||||
renderDefaultValues = false
|
||||
modifiers = setOf(DescriptorRenderer.Modifier.OVERRIDE)
|
||||
withDefinedIn = false
|
||||
nameShortness = NameShortness.SOURCE_CODE_QUALIFIED
|
||||
overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OVERRIDE
|
||||
unitReturnType = false
|
||||
typeNormalizer = IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES
|
||||
}
|
||||
|
||||
private val LOG = Logger.getInstance(javaClass<OverrideImplementMethodsHandler>().getCanonicalName())
|
||||
|
||||
|
||||
@@ -38,7 +38,6 @@ import org.jetbrains.kotlin.psi.JetReferenceExpression
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
|
||||
import org.jetbrains.kotlin.renderer.NameShortness
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||
@@ -83,12 +82,12 @@ public class KotlinQuickDocumentationProvider : AbstractDocumentationProvider()
|
||||
companion object {
|
||||
private val LOG = Logger.getInstance(javaClass<KotlinQuickDocumentationProvider>())
|
||||
|
||||
val quickDocNameFormat = DescriptorRendererBuilder()
|
||||
.setWithDefinedIn(true)
|
||||
.setNameShortness(NameShortness.SHORT)
|
||||
.setRenderCompanionObjectName(true)
|
||||
.setTextFormat(DescriptorRenderer.TextFormat.HTML)
|
||||
.build()
|
||||
val quickDocNameFormat = DescriptorRenderer.withOptions {
|
||||
withDefinedIn = true
|
||||
nameShortness = NameShortness.SHORT
|
||||
renderCompanionObjectName = true
|
||||
textFormat = DescriptorRenderer.TextFormat.HTML
|
||||
}
|
||||
|
||||
|
||||
private fun getText(element: PsiElement, originalElement: PsiElement?, quickNavigation: Boolean): String? {
|
||||
|
||||
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.resolve.OverrideResolver
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
|
||||
import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||
import com.intellij.psi.NavigatablePsiElement
|
||||
@@ -45,12 +44,12 @@ object SuperDeclarationMarkerTooltip: Function<JetDeclaration, String> {
|
||||
|
||||
val isAbstract = elementDescriptor!!.getModality() == Modality.ABSTRACT
|
||||
|
||||
val renderer = DescriptorRendererBuilder()
|
||||
.setTextFormat(DescriptorRenderer.TextFormat.HTML)
|
||||
.setWithDefinedIn(false)
|
||||
.setStartFromName(true)
|
||||
.setWithoutSuperTypes(true)
|
||||
.build()
|
||||
val renderer = DescriptorRenderer.withOptions {
|
||||
textFormat = DescriptorRenderer.TextFormat.HTML
|
||||
withDefinedIn = false
|
||||
startFromName = true
|
||||
withoutSuperTypes = true
|
||||
}
|
||||
|
||||
val containingStrings = overriddenDescriptors.map {
|
||||
val declaration = it.getContainingDeclaration()
|
||||
|
||||
+16
-6
@@ -31,6 +31,8 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor;
|
||||
@@ -45,20 +47,28 @@ import org.jetbrains.kotlin.load.java.structure.impl.JavaConstructorImpl;
|
||||
import org.jetbrains.kotlin.load.java.structure.impl.JavaFieldImpl;
|
||||
import org.jetbrains.kotlin.load.java.structure.impl.JavaMethodImpl;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
|
||||
import org.jetbrains.kotlin.renderer.NameShortness;
|
||||
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Collections;
|
||||
|
||||
import static org.jetbrains.kotlin.load.java.JvmAnnotationNames.KOTLIN_SIGNATURE;
|
||||
|
||||
public class KotlinSignatureAnnotationIntention extends BaseIntentionAction implements Iconable {
|
||||
private static final DescriptorRenderer RENDERER = new DescriptorRendererBuilder()
|
||||
.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES)
|
||||
.setNameShortness(NameShortness.SHORT)
|
||||
.setModifiers()
|
||||
.setWithDefinedIn(false).build();
|
||||
private static final DescriptorRenderer RENDERER = DescriptorRenderer.Companion.withOptions(
|
||||
new Function1<DescriptorRendererOptions, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(DescriptorRendererOptions options) {
|
||||
options.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES);
|
||||
options.setNameShortness(NameShortness.SHORT);
|
||||
options.setModifiers(Collections.<DescriptorRenderer.Modifier>emptySet());
|
||||
options.setWithDefinedIn(false);
|
||||
return Unit.INSTANCE$;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
|
||||
@@ -34,6 +34,8 @@ import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.PlatformIcons;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
@@ -46,7 +48,7 @@ import org.jetbrains.kotlin.idea.util.ShortenReferences;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
import org.jetbrains.kotlin.psi.*;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
|
||||
import org.jetbrains.kotlin.renderer.NameShortness;
|
||||
import org.jetbrains.kotlin.resolve.FunctionDescriptorUtil;
|
||||
import org.jetbrains.kotlin.resolve.VisibilityUtil;
|
||||
@@ -62,12 +64,19 @@ import java.util.*;
|
||||
* Fix that changes member function's signature to match one of super functions' signatures.
|
||||
*/
|
||||
public class ChangeMemberFunctionSignatureFix extends JetHintAction<JetNamedFunction> {
|
||||
private static final DescriptorRenderer SIGNATURE_RENDERER = new DescriptorRendererBuilder()
|
||||
.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES)
|
||||
.setWithDefinedIn(false)
|
||||
.setModifiers()
|
||||
.setNameShortness(NameShortness.SHORT)
|
||||
.setUnitReturnType(false).build();
|
||||
private static final DescriptorRenderer SIGNATURE_RENDERER = DescriptorRenderer.Companion.withOptions(
|
||||
new Function1<DescriptorRendererOptions, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(DescriptorRendererOptions options) {
|
||||
options.setTypeNormalizer(IdeDescriptorRenderers.APPROXIMATE_FLEXIBLE_TYPES);
|
||||
options.setWithDefinedIn(false);
|
||||
options.setModifiers(Collections.<DescriptorRenderer.Modifier>emptySet());
|
||||
options.setNameShortness(NameShortness.SHORT);
|
||||
options.setUnitReturnType(false);
|
||||
return Unit.INSTANCE$;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
private final List<FunctionDescriptor> possibleSignatures;
|
||||
|
||||
|
||||
+10
-12
@@ -45,7 +45,6 @@ import org.jetbrains.kotlin.psi.JetNamedFunction
|
||||
import org.jetbrains.kotlin.psi.JetProperty
|
||||
import org.jetbrains.kotlin.psi.JetSimpleNameExpression
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRendererBuilder
|
||||
import org.jetbrains.kotlin.renderer.NameShortness
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
|
||||
@@ -149,17 +148,16 @@ public class DeprecatedSymbolUsageInWholeProjectFix(
|
||||
|
||||
companion object : JetSingleIntentionActionFactory() {
|
||||
//TODO: better rendering needed
|
||||
private val RENDERER = DescriptorRendererBuilder()
|
||||
.setModifiers()
|
||||
.setNameShortness(NameShortness.SHORT)
|
||||
// .setWithoutTypeParameters(true)
|
||||
.setParameterNameRenderingPolicy(DescriptorRenderer.ParameterNameRenderingPolicy.NONE)
|
||||
.setReceiverAfterName(true)
|
||||
.setRenderCompanionObjectName(true)
|
||||
.setWithoutSuperTypes(true)
|
||||
.setStartFromName(true)
|
||||
.setWithDefinedIn(false)
|
||||
.build()
|
||||
private val RENDERER = DescriptorRenderer.withOptions {
|
||||
modifiers = emptySet()
|
||||
nameShortness = NameShortness.SHORT
|
||||
parameterNameRenderingPolicy = DescriptorRenderer.ParameterNameRenderingPolicy.NONE
|
||||
receiverAfterName = true
|
||||
renderCompanionObjectName = true
|
||||
withoutSuperTypes = true
|
||||
startFromName = true
|
||||
withDefinedIn = false
|
||||
}
|
||||
|
||||
override fun createAction(diagnostic: Diagnostic): IntentionAction? {
|
||||
val nameExpression = diagnostic.getPsiElement() as? JetSimpleNameExpression ?: return null
|
||||
|
||||
Reference in New Issue
Block a user