Filip Lastic
// ktlint-disable my-custom-rule
/* ktlint-disable my-custom-rule */ ...this should not fail /* ktlint-enable my-custom-rule */
// ktlint-disable
romtsn
class NoExposedTransactionImportRule : Rule("no-exposed-transaction-import") { override fun visit( node: ASTNode, autoCorrect: Boolean, emit: (offset: Int, errorMessage: String, canBeAutoCorrected: Boolean) -> Unit ) { if (node.elementType == KtStubElementTypes.IMPORT_DIRECTIVE) { val importDirective = node.psi as KtImportDirective val path = importDirective.importPath?.pathStr if (path?.equals("org.jetbrains.exposed.sql.transactions.transaction") == true) { emit(node.startOffset, "Importing exposed transaction: '$path'. You should use exposedTransactionWrapper instead", false) } } } }
class CustomRuleSetProvider : RuleSetProvider { override fun get() = RuleSet("custom-ktlint-rules", NoExposedTransactionImportRule()) }
dependencies { ktlintRuleset project(":custom-ktlint-rules") } ktlint { disabledRules = ['import-ordering', 'no-wildcard-imports', 'no-semi'] // some of globally disabled rules }
// ktlint-disable custom-ktlint-rules
ktlintCheck
Sha Sha Chu
custom-ktlint-rules:my-custom-rule
A modern programming language that makes developers happier.