From e161c66a7899e96e0af7d5e60ee79ed7c9da484e Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 13 Apr 2012 18:16:55 +0400 Subject: [PATCH] More special icons for kotlin entities --- .../jetbrains/jet/plugin/icons/function.png | Bin 0 -> 702 bytes .../jet/plugin/icons/kotlin16x16.png | Bin .../org/jetbrains/jet/plugin/icons/lambda.png | Bin 0 -> 748 bytes .../org/jetbrains/jet/plugin/icons/object.png | Bin 0 -> 727 bytes .../jetbrains/jet/plugin/icons/parameter.png | Bin 0 -> 828 bytes .../org/jetbrains/jet/plugin/icons/trait.png | Bin 0 -> 688 bytes .../jetbrains/jet/plugin/icons/type_alias.png | Bin 0 -> 707 bytes .../org/jetbrains/jet/plugin/icons/value.png | Bin 0 -> 617 bytes .../jetbrains/jet/plugin/icons/variable.png | Bin 0 -> 726 bytes .../jetbrains/jet/plugin/JetIconProvider.java | 27 +++++++------ .../org/jetbrains/jet/plugin/JetIcons.java | 37 ++++++++++++++++++ .../highlighter/JetColorSettingsPage.java | 4 +- 12 files changed, 54 insertions(+), 14 deletions(-) create mode 100644 idea/resources/org/jetbrains/jet/plugin/icons/function.png rename idea/{src => resources}/org/jetbrains/jet/plugin/icons/kotlin16x16.png (100%) create mode 100644 idea/resources/org/jetbrains/jet/plugin/icons/lambda.png create mode 100644 idea/resources/org/jetbrains/jet/plugin/icons/object.png create mode 100644 idea/resources/org/jetbrains/jet/plugin/icons/parameter.png create mode 100644 idea/resources/org/jetbrains/jet/plugin/icons/trait.png create mode 100644 idea/resources/org/jetbrains/jet/plugin/icons/type_alias.png create mode 100644 idea/resources/org/jetbrains/jet/plugin/icons/value.png create mode 100644 idea/resources/org/jetbrains/jet/plugin/icons/variable.png create mode 100644 idea/src/org/jetbrains/jet/plugin/JetIcons.java diff --git a/idea/resources/org/jetbrains/jet/plugin/icons/function.png b/idea/resources/org/jetbrains/jet/plugin/icons/function.png new file mode 100644 index 0000000000000000000000000000000000000000..35b42a422ee016918f04f35e1f587ce2722d5937 GIT binary patch literal 702 zcmV;v0zv(WP)ZFjfHBf zagowMrCNzn+!$S06`^7=c2#gCVpj^)tvh!v#D!vXpRSB6K`L0$E^F&T(<&2c)u^N~ z(`1tQC7JO~GMN^)8949p9&^t-_uPA#Wm)Lv^Vm!J{NbHiGnXPlz{gv44W_1oc?AgJUhn>qBfa5p=w$Zo!T~2ZV=r7scI?#nZ1n78 zgx}r6H=8C*f`#^uW&>8Uj$kP0J9Kn3x^Hj)4JTEXATd0Vj0=80kA@CbSD}?9+`d1D ztM}$mVSd=D*a!)nKNcN4=J@0ij0FcGKC7++B%SFhHVZ`*BpDBHUB;f$2Dq&fP~8F) z6@C6-$T8U^i18jT#|+BZ(7@>mp1vT%8AB@b9@rHC^fI7UNri#{6NFBMIJbC)(voiP z77^UJI7(+7cc)HJ5kCSo3MOUvuWdR6q9GNVAOcRUfhjVKN(C^ z&2W0dC0LSjYgJnw^eUJt!z@$2W)o;=gvR#Ev==L6PP?&Og2gXy=9kq!d7UE@Te;eS z7AY|6+j@CG))iI!{e8vhN|zv;Ut4{Yef?^^`Yor~xHdSs?*XtTRCITMEU2BnW4dGyssx13YZ?ju7pz4jG`pTVt!+#AeBq k%$~+>hKY4M&i@1$07uE~ng9R* literal 0 HcmV?d00001 diff --git a/idea/src/org/jetbrains/jet/plugin/icons/kotlin16x16.png b/idea/resources/org/jetbrains/jet/plugin/icons/kotlin16x16.png similarity index 100% rename from idea/src/org/jetbrains/jet/plugin/icons/kotlin16x16.png rename to idea/resources/org/jetbrains/jet/plugin/icons/kotlin16x16.png diff --git a/idea/resources/org/jetbrains/jet/plugin/icons/lambda.png b/idea/resources/org/jetbrains/jet/plugin/icons/lambda.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7a1206894eb7245bc83044f821cdce9e716e33 GIT binary patch literal 748 zcmVXe{86GBoY3wEv14I%gr#Bo@Cr>f)eL!xzy= zg}?LWlczOp*K12k?G~^+I3)|1EwGgzuzBiF9j>T!`KR3Oql5SRwUSY7GZkg~F8AK8 zZSSt*OI()4@CJJBJVW=rR|x*h|GmZva8@`RzK)It&#~h-^i~ak7GGyyyVY(dMLVeR zIPiL)7d=-_;LW=+fTOgM0OS;0E>n5)Xq9mGygY9)YegoN0F)fKLKBDdI@OX13ak zFJv+vk61Z1zsn3IgU~_*u|yVK7rX?p2nH*Zoh)RTK~b1dRs@JhnV6)>Hz{fAHHlAO z!Z_b_5EoCXh$hllS`(q56iPusTF8jHHw=Jad?l3Bn3*gf8jT|GBaTb0M_^;iXz-{A zd|w5#x>1l-Y{WJby0Hv^iK&loKWE~RtO+8%2G`M8+E{a+|kzHDC3+;K1l;hK`zLUC3V+zLQ)W>C#OTRp_xaTku)pw zdwe~r0c|eN_cflWZ>_E>cb9;-Gb+q(=fqevmYAEJ3#_lLzwEnpd-TQ7bNs8|zdjSU e-|zfKfB^uvB|TSo9&h*n0000wn5 z4Wf_`4Aehj;f``LG0{ZiA{X>P42i^e@WO$_15x5h;z8rVgy6voN%i1CLnHy^Py$ql zScyf8Ep+>{u-%#QZS8Kjv%7C5^LD=XzW2==CZ)td9>p5Que1HWX0i^lHnN72FGdz2 zn}bTIr+Z-R@u|>_riv<$8)6rX=YTRdDywTN11)Ec*3_vz3x5Cc@drZ|By0^Xn|AP0 z-`%Fp-e#pjb#qgIa}GhTlpGKSSpmKpuQ%A$)f#9#d8<^a!=NMB-QQX6@hF_{A+{02 z!?8DDAg~k|y>|tTwMoFtLRDSW?Pr6bjrH%APOEl+HeY?fYiF{+ub&Qr?M4Bf!Oi=$ z9=i(UKLUF>9P#`7C6OHl4T|C}gUG=}lo@4ZqyY?#vZkpFlZa#?3u*G{s4Oe@*eB$O z2$2VKG1^Ehiqv-rkfJF?|4jOF5R{!_L2%)~Y!PEdHeo>Ma1mt?3(0jlh;6DWRTNT^ zHl`(Rfg_`3^-^y*0V01l7I(n2lu7#!C}b#83Y^yDfFLuuM8TB!o!Cm28p|nRZsGmp zj9RB&_NrBfMh6wReSD zPt-Htt6`Psr(qUMn8uf4*J(SNwlu%A7>{qhv|C!)*Vkd|PHg@7)_?k3%f-X>)&2@7 z9*cTzJFh4HB$CmU=V*v!xR>*{?7mqKrCnmdg!}G z=IXm8Sn&!;akH?purU1n%JB2k%b%|wU4DOV*XpD9FQ1(YRJQ}B0U&^o4e)SH>*-Ur zh)`kY;$&s`_k)2EsF{J8m4Sm#kV96(KvF=6-{ZWnu*|swyBJ`G00a;d%-Q;G(RnJC zk*X~0{H%Zf{A2k0_bUmU@p+*6_MqE*z}!&@!vNF2B6IfQhW@{dIA|t)VUeDXY6EPU=w0s`1zSZLYP+= z8psR)0R%HZo`r>#nc?482B!Z&1O9$vVEq4&!B|U*f#Jt<24j`~3=f`vVfYV(|9*XD z;9zFsgvAg*05QRX@E=Ii4+fAS41d1>1^zNTc=QP9^=}L>U%g`x;R9*@!0-ngKL6m_ z00IaW1`mIIdG(8(hmV~JXgkB758%MtaqtGinez+`*B*RkD2r2O`2FEF!~frZ8NPh_ z@*SEs7ytqYX29h)kFR`?R?`#z_vZ@(BhV&>e}5QKLvo;$lfTl_YfB=HI;P#z!M`sHN3rXu)S!nTaGx9Df;RpKp2E(5(e}FX5W?-KA^x@N| zYiF)qdG_r20$7p;2q5H?xZ}+3%?z&}+)C6o(l8el;S*+OVB!1+)cE!Nx9_iBzIuD} z#?2GYA)4Vy86ber^TLjYw{PABVxlq=2mk~SBc<6HAix0p+$KkO=nNnL0000f;iKwTSNK#46XepP`-#bfNsNonuKTq=D7?n~=QmLz;0I?F77bT2 zkQnz*F4wOh8;eA#X49A4Ca}g;;`az*LV<=h&93B-8WSTUUCe(b8U*x6u0`e@U@Jv(4_NJ2QUM?ymKmS>7-+eBb-ty!}QILZF@zk<-)5_YR(Q68Z>PLWh60KqwL> z33EZS;XOWN4bMa+|~1toCg#E?+5qn4Mn#x%lK#|IPgC z{MbJQzKZ_rz{SVyxvth|G^TNvgF7711oUK7Z^^VBN*JlLrH_qiKRGWaHISV-(>fL^#)2@gYXnEk0TLJ8pqmu+M1fv*Zr%81brvZXM6NmRO2-cAuHR! z#QPbjstUH_ftv(dAfct=>DJC(-=~lun`~(^#IC>|fh#cda1@HBU~uFS;w=dX3*Z$F zuO`r797*~nhXfs3gbb6FDVaM89t;dZQ1G)`w_$y%Kl%1zm?=d44jjsqfs{PR;L) zkf8Xxyk-f?krJg`cZ;$)MN3cE|J_04D$d002ovPDHLkV1huJOMw6Y literal 0 HcmV?d00001 diff --git a/idea/resources/org/jetbrains/jet/plugin/icons/value.png b/idea/resources/org/jetbrains/jet/plugin/icons/value.png new file mode 100644 index 0000000000000000000000000000000000000000..d89f54310efb879f2a3995a7e3596478ac1eaefc GIT binary patch literal 617 zcmV-v0+#)WP)}w$PR?(3BupEE}S zJm=1IXfbiaBzMm3^!~nc&Uf#1j4`;#NidfYhmNl+ia)RVDym{;LH}D z$$F4K0ZohbAA%x+1Db~f2c$8;Oh$O6TXzb(^_tJ@L?Qs2nX~){)@neXPm!Bj@VL!X zfLe&B3H;#cJA7%M0*;G~W)}~iRe|Y63xkA=Gl?+)HpcdxWL{ayVRL(z1TJBtbqv2W zONDe}ScSAyS%b$~u;nLZm#@vD{q5LR(C+-A-&cX)M*>H1ASs%26z)f=nn+; zzIV|NsG=Kr=%8z1PNFFe&yPD4uv;}^m|yhp;?-xAiy4^khzt}KRuo;TR%?CU13BjQ z+OmuNqX28=JY@ecg}MLH!<$yXhh%iCN_mNwPc9QcW(twQntE5Fp9-Ygcydq+hwz!( z+_SJzs~G0&z5P}=RzW1A>h{Ms*`?LHh1}et$NNkKCav2nqTmpzNw~My4C^1>9}rd@ zZK2ZHY2fQt-M1GgicR8SY}S8nEW;I^I2XOne+3u-q{^@!dt(L!00000NkvXXu0mjf DU+N#7 literal 0 HcmV?d00001 diff --git a/idea/resources/org/jetbrains/jet/plugin/icons/variable.png b/idea/resources/org/jetbrains/jet/plugin/icons/variable.png new file mode 100644 index 0000000000000000000000000000000000000000..693fe9c1945ed9a7a3e50345f61bb04b37b694bd GIT binary patch literal 726 zcmV;{0xA88P)PK^VrLwp*akrO;O6 z2MtjnKn+xFiBP>l_yHaoPq$Rpe*l|b6fGl)!5v^kNCmCBI*BdOE{^D1K#QZvWuB1TDxrQ18!w>- zi41t4s46nj78Ip~FacR116Ed0t=C7l!c2fvDP}9R^zE!bd(9)#C*sxH&j|Omf~gXi zR%!%m3}!9?(lgp4n;?T z?lzmqD`cXIN`>Q8IF8z#k@K>=zPz5;+1Z^nEq&67^UELKBbWI$ef38F%`^UXUo!-k zPJzndv6|h>9;7x>i@S~Be_FW?k07*qo IM6N<$g4$qJGXMYp literal 0 HcmV?d00001 diff --git a/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java b/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java index ced2baf73d6..970a9f2f58a 100644 --- a/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/JetIconProvider.java @@ -17,7 +17,6 @@ package org.jetbrains.jet.plugin; import com.intellij.ide.IconProvider; -import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.util.Iconable; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElement; @@ -34,8 +33,6 @@ import java.util.List; * @author yole */ public class JetIconProvider extends IconProvider { - public static final Icon ICON_FOR_OBJECT = PlatformIcons.ANONYMOUS_CLASS_ICON; - public static final Icon KOTLIN_ICON = IconLoader.getIcon("/org/jetbrains/jet/plugin/icons/kotlin16x16.png"); public static JetIconProvider INSTANCE = new JetIconProvider(); @@ -60,41 +57,47 @@ public class JetIconProvider extends IconProvider { if (mostImportantClass != null) { return getIcon(mostImportantClass, flags); } - return KOTLIN_ICON; + return JetIcons.FILE; } if (psiElement instanceof JetNamespaceHeader) { return (flags & Iconable.ICON_FLAG_OPEN) != 0 ? PlatformIcons.PACKAGE_OPEN_ICON : PlatformIcons.PACKAGE_ICON; } if (psiElement instanceof JetNamedFunction) { return PsiTreeUtil.getParentOfType(psiElement, JetNamedDeclaration.class) instanceof JetClass - ? PlatformIcons.METHOD_ICON - : PlatformIcons.FUNCTION_ICON; + ? JetIcons.LAMBDA + : JetIcons.FUNCTION; } if (psiElement instanceof JetClass) { JetClass jetClass = (JetClass) psiElement; + if (jetClass.isTrait()) { + return JetIcons.TRAIT; + } + Icon icon = jetClass.hasModifier(JetTokens.ENUM_KEYWORD) ? PlatformIcons.ENUM_ICON : PlatformIcons.CLASS_ICON; if (jetClass instanceof JetEnumEntry) { JetEnumEntry enumEntry = (JetEnumEntry) jetClass; if (enumEntry.getPrimaryConstructorParameterList() == null) { - icon = ICON_FOR_OBJECT; + icon = PlatformIcons.ENUM_ICON; } } return icon; } if (psiElement instanceof JetObjectDeclaration || psiElement instanceof JetClassObject) { - return ICON_FOR_OBJECT; + return JetIcons.OBJECT; } if (psiElement instanceof JetParameter) { - if (((JetParameter) psiElement).getValOrVarNode() != null) { + JetParameter parameter = (JetParameter)psiElement; + if (parameter.getValOrVarNode() != null) { JetParameterList parameterList = PsiTreeUtil.getParentOfType(psiElement, JetParameterList.class); if (parameterList != null && parameterList.getParent() instanceof JetClass) { - return PlatformIcons.PROPERTY_ICON; + return parameter.isVarArg() ? JetIcons.VAR : JetIcons.VAL; } } - return PlatformIcons.PARAMETER_ICON; + return JetIcons.PARAMETER; } if (psiElement instanceof JetProperty) { - return PlatformIcons.PROPERTY_ICON; + JetProperty property = (JetProperty)psiElement; + return property.isVar() ? JetIcons.VAR : JetIcons.VAL; } return null; } diff --git a/idea/src/org/jetbrains/jet/plugin/JetIcons.java b/idea/src/org/jetbrains/jet/plugin/JetIcons.java new file mode 100644 index 00000000000..79ef34542c1 --- /dev/null +++ b/idea/src/org/jetbrains/jet/plugin/JetIcons.java @@ -0,0 +1,37 @@ +/* + * Copyright 2010-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.jetbrains.jet.plugin; + +import com.intellij.openapi.util.IconLoader; + +import javax.swing.*; + +/** + * @author Nikolay Krasko + */ +public interface JetIcons { + Icon SMALL_LOGO = IconLoader.getIcon("/org/jetbrains/jet/plugin/icons/kotlin16x16.png"); + + Icon FILE = SMALL_LOGO; // TODO: Add file icon + Icon OBJECT = IconLoader.getIcon("/org/jetbrains/jet/plugin/icons/object.png"); + Icon TRAIT = IconLoader.getIcon("/org/jetbrains/jet/plugin/icons/trait.png"); + Icon FUNCTION = IconLoader.getIcon("/org/jetbrains/jet/plugin/icons/function.png"); + Icon LAMBDA = IconLoader.getIcon("/org/jetbrains/jet/plugin/icons/lambda.png"); + Icon VAR = IconLoader.getIcon("/org/jetbrains/jet/plugin/icons/variable.png"); + Icon VAL = IconLoader.getIcon("/org/jetbrains/jet/plugin/icons/value.png"); + Icon PARAMETER = IconLoader.getIcon("/org/jetbrains/jet/plugin/icons/parameter.png"); +} diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/JetColorSettingsPage.java b/idea/src/org/jetbrains/jet/plugin/highlighter/JetColorSettingsPage.java index 8ddad2c864e..0b67bbedcb3 100644 --- a/idea/src/org/jetbrains/jet/plugin/highlighter/JetColorSettingsPage.java +++ b/idea/src/org/jetbrains/jet/plugin/highlighter/JetColorSettingsPage.java @@ -24,7 +24,7 @@ import com.intellij.openapi.options.colors.ColorDescriptor; import com.intellij.openapi.options.colors.ColorSettingsPage; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.plugin.JetBundle; -import org.jetbrains.jet.plugin.JetIconProvider; +import org.jetbrains.jet.plugin.JetIcons; import javax.swing.*; import java.lang.reflect.Field; @@ -35,7 +35,7 @@ import java.util.Map; public class JetColorSettingsPage implements ColorSettingsPage { @Override public Icon getIcon() { - return JetIconProvider.KOTLIN_ICON; + return JetIcons.SMALL_LOGO; } @NotNull