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
相关产品推荐
相关产品推荐

