2017-04-05 40 views
3

我一直在试图了解IntelliJ(和Android Studio)对我的Kotlin文件图标所做的工作。在图片中,您可以看到Kotlin文件带有两个不同的图标 - 不管是带有小“K”的矩形,还是带有小“K”的圆圈C(图中红圈)。矩形版本还包含一个有用的“.kt”后缀。适用于Kotlin文件的IntelliJ和Android Studio图标

经过一番了一个问题的这个黑盒子修修补补 - 看来,如果科特林文件只是声明一个类相匹配的文件名,那么它被一个“圆圈C”图标。但是,如果它执行任何类似于非Java的任何操作(例如在类之外声明变量(例如val foo = 42)),那么该图标将移至带有“K”的矩形。图标文档here表明IntelliJ认为具有“K”的矩形是“Kotlin文件”,而圈出的C是“Kotlin类”。

有没有人知道这是否有更深的含义?我想我会在课堂以外包含val声明,以便让我的Kotlin文件图标符号全部匹配。然后他们也会有方便的“.kt”扩展名来清楚地表明他们是Kotlin文件。

例如 - 这里是代码,将在文件Foo.kt与“K”你的图标更改为一个矩形:

val bar = 42; 
class Foo {} 

enter image description here

回答

5

你的分析是正确的。如果文件只定义了一个类,那么项目视图节点将显示该类,而不是整个文件。如果文件中有多个声明,那么项目视图节点将显示一个文件图标。

类图标看起来是为了与混合语言项目中的Java类图标保持一致。

+0

在查找使用示例 - 浏览kotlin-runtime库时,建议仅实现单个类的文件非常少见。许多实现了一系列函数,其他实现了一系列接口。特别是 - text/regex/Regex.xt - 具有各种函数,接口和一个公共类。我发现,相比于浏览代码来精心组合连接界面和类时,它更加清爽。对我而言,这表明Kotlin在一个文件中邀请了更多逻辑功能的组合 - 与Java相比,它更好。 –