You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KtLint中Composable函数命名规则禁用失效问题求助

解决ktlint函数命名警告禁用无效问题

问题背景

遇到ktlint的函数命名规则警告:函数名称应以小写字母开头(工厂方法除外)并使用驼峰命名法(无法自动修正),尝试通过配置忽略Composable注解的函数,但规则未生效。使用的配置如下:

id("org.jlleitschuh.gradle.ktlint") version "12.0.3"

ktlint {
    version.set("1.1.0")
    debug.set(true)
    enableExperimentalRules.set(true)
    additionalEditorconfig.set(
        mapOf(
            "max_line_length" to "off",
            "ktlint_function_naming_ignore_when_annotated_with" to "Composable"
        ),
    )
}

核心问题与解决方案

1. 插件与ktlint版本不兼容

ktlint-gradle插件12.0.3官方适配的是ktlint 0.47.x版本,手动指定ktlint 1.1.0会因版本不匹配导致配置失效。

方案一:使用插件默认适配版本

去掉手动指定的version.set("1.1.0"),让插件使用默认兼容的ktlint版本:

id("org.jlleitschuh.gradle.ktlint") version "12.0.3"

ktlint {
    debug.set(true)
    enableExperimentalRules.set(true)
    additionalEditorconfig.set(
        mapOf(
            "max_line_length" to "off",
            "ktlint_function_naming_ignore_when_annotated_with" to "Composable"
        )
    )
}

方案二:升级插件适配ktlint 1.x

若需使用ktlint 1.1.0,需将ktlint-gradle插件升级至13.x及以上版本(如13.2.0),同时注意editorconfig参数格式的变化:

id("org.jlleitschuh.gradle.ktlint") version "13.2.0"

ktlint {
    version.set("1.1.0")
    debug.set(true)
    enableExperimentalRules.set(true)
    additionalEditorconfig.set(
        mapOf(
            "max_line_length" to "off",
            "ktlint_function_naming.ignore-when-annotated-with" to "Composable"
        )
    )
}

2. 尝试使用注解全类名

若上述配置仍不生效,可尝试使用Composable注解的全限定类名:

  • 对应ktlint 0.47.x:
    "ktlint_function_naming_ignore_when_annotated_with" to "androidx.compose.runtime.Composable"
    
  • 对应ktlint 1.x:
    "ktlint_function_naming.ignore-when-annotated-with" to "androidx.compose.runtime.Composable"
    

内容的提问来源于stack exchange,提问作者Abdullah Javed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 04:57:10