From 6898176b43103d39c29cce651a4a88f457392116 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 11 Apr 2017 13:19:44 +0300 Subject: [PATCH] Abstract extension function added --- .../kotlin/idea/KotlinDescriptorIconProvider.java | 13 ++++++------- .../jetbrains/kotlin/idea/KotlinIconProvider.kt | 7 ++++--- .../org/jetbrains/kotlin/idea/KotlinIcons.java | 1 + .../idea/icons/abstract_extension_function.png | Bin 0 -> 351 bytes .../idea/icons/abstract_extension_function@2x.png | Bin 0 -> 589 bytes 5 files changed, 11 insertions(+), 10 deletions(-) create mode 100644 idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function.png create mode 100644 idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function@2x.png diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java index 4b734c0ab33..3a0f8294415 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java @@ -84,16 +84,15 @@ public final class KotlinDescriptorIconProvider { if (descriptor instanceof FunctionDescriptor) { FunctionDescriptor functionDescriptor = (FunctionDescriptor) descriptor; if (functionDescriptor.getExtensionReceiverParameter() != null) { - return KotlinIcons.EXTENSION_FUNCTION; + return Modality.ABSTRACT == functionDescriptor.getModality() + ? KotlinIcons.ABSTRACT_EXTENSION_FUNCTION + : KotlinIcons.EXTENSION_FUNCTION; } if (descriptor.getContainingDeclaration() instanceof ClassDescriptor) { - if (Modality.ABSTRACT == functionDescriptor.getModality()) { - return PlatformIcons.ABSTRACT_METHOD_ICON; - } - else { - return PlatformIcons.METHOD_ICON; - } + return Modality.ABSTRACT == functionDescriptor.getModality() + ? PlatformIcons.ABSTRACT_METHOD_ICON + : PlatformIcons.METHOD_ICON; } else { return KotlinIcons.FUNCTION; diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt index 2a64526859d..9845692b652 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt @@ -32,7 +32,6 @@ import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import javax.swing.Icon class KotlinIconProvider : IconProvider(), DumbAware { - override fun getIcon(psiElement: PsiElement, flags: Int): Icon? { if (psiElement is KtFile) { val mainClass = getMainClass(psiElement) @@ -92,10 +91,12 @@ class KotlinIconProvider : IconProvider(), DumbAware { } is KtLightClassForSourceDeclaration -> navigationElement.getBaseIcon() is KtNamedFunction -> when { - receiverTypeReference != null -> KotlinIcons.EXTENSION_FUNCTION + receiverTypeReference != null -> + if (KtPsiUtil.isAbstract(this)) KotlinIcons.ABSTRACT_EXTENSION_FUNCTION else KotlinIcons.EXTENSION_FUNCTION getStrictParentOfType() is KtClass -> if (KtPsiUtil.isAbstract(this)) PlatformIcons.ABSTRACT_METHOD_ICON else PlatformIcons.METHOD_ICON - else -> KotlinIcons.FUNCTION + else -> + KotlinIcons.FUNCTION } is KtFunctionLiteral -> KotlinIcons.LAMBDA is KtClass -> when { diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java index fcb6286c700..05cd5b42659 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java @@ -36,6 +36,7 @@ public interface KotlinIcons { Icon ANNOTATION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/annotationKotlin.png"); Icon FUNCTION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/function.png"); Icon EXTENSION_FUNCTION = PlatformIcons.FUNCTION_ICON; + Icon ABSTRACT_EXTENSION_FUNCTION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/abstract_extension_function.png"); Icon LAMBDA = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/lambda.png"); Icon VAR = PlatformIcons.VARIABLE_ICON; Icon VAL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/value.png"); diff --git a/idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function.png b/idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function.png new file mode 100644 index 0000000000000000000000000000000000000000..2f64867c6c3d0b6a6e36e5837ebc444cc1461f81 GIT binary patch literal 351 zcmV-l0igbgP)Xz~$US4{yukaD@d*7@z}W zoAI~;y8$2@K{ngTt3Cu_T&@6ygBTMo+kgJ~!xE-#^ZNCukywR4yXSEMDN7($ zgJLc;CEtMf78D<6FHQPJ6$d~q4ue`w3OEkLs|Y!Sg$RRMvG|r40CKQC5EtT8#6*Na zTognxLA_WVFl+gS6ly0nTxK$1QD_0A{AiHi{h(&!P6I#%+(0THo9?hxbKKFz3?*fs zR@%B>A;A&(Kszp{MFxDu6#}4O;wIL#^UohkKmPchlLQBFL+!wf0;unuap_zYma-Fu zd)gqX#pMUV1%uDyOP4w56) zJdz!N?E4r!v%4S+uC#z+AUT>k0NwYX+<=@TKysvp0B zgx`UDj$AH)#7GE*%h()ng;?JQX&Kx_mxqZF846dhIbbh79mu}7kWqYxE)Nnz4g~@Z z*o#pcf@&yW8NC-*k-Ru4VK1SG?Q#n|O+@_f#aA27Ato_W0KP))z@81EE}KY02TVlv zJ=SsnsNe*U+C&4(mqX1axmiAw5?g`I@^nf|!fzDV|BaNA5ErP1b}~o>$Dw)$ch_tb b00bBSKo;!qg)|Yt00000NkvXXu0mjfzDe$v literal 0 HcmV?d00001