Intellij idea Kotlin-DSL颜色样式

Intellij idea Kotlin-DSL颜色样式,intellij-idea,kotlin,kotlin-dsl,Intellij Idea,Kotlin,Kotlin Dsl,在Kotlin中使用@DslMarker注释注释类时,槽中会出现一个图标,指示DSL样式 当我尝试将样式更改为其他颜色时,它没有任何作用。Kotlin如何选择DSL样式,以及我如何实施特定样式?只有四种预定义的DSL样式可供您自定义显示选项 对于每个@DslMarker注释,IDE使用注释的完全限定名的哈希函数选择一个预定义样式。然后,此样式用于突出显示用注释标记的函数的用法。不同样式的目的是,不同的DSL(由不同的@DslMarker注释标记)在视觉上不太可能发生冲突 相对于其他注释在源文件

在Kotlin中使用@DslMarker注释注释类时,槽中会出现一个图标,指示DSL样式


当我尝试将样式更改为其他颜色时,它没有任何作用。Kotlin如何选择DSL样式,以及我如何实施特定样式?

只有四种预定义的DSL样式可供您自定义显示选项

对于每个
@DslMarker
注释,IDE使用注释的完全限定名的哈希函数选择一个预定义样式。然后,此样式用于突出显示用注释标记的函数的用法。不同样式的目的是,不同的DSL(由不同的
@DslMarker
注释标记)在视觉上不太可能发生冲突

相对于其他注释在源文件中移动注释的声明不会影响其选择的样式,但重命名它可能会导致为注释选择不同的样式

单击
@DslMarker注释类的檐槽图标时,会在“设置”对话框中选择此样式

下面是一个如何工作的示例

您可以看到,同时为两个注释类选择了
Style3
。目前无法强制IDE为注释类选择特定样式



UPD:可以找到Kotlin IDE插件代码中的实现源。

除了哈希函数之外,您还有关于样式选择算法的更多详细信息吗?我知道选择名称是不好的做法,因为它们会产生特定的样式,但我只是好奇哈希函数如何映射到这些样式。@series0ne:我在Kotlin IDE插件源代码中添加了一个指向此功能实现的链接,请参阅UPD。(一个屏幕截图中的实现:)