Files
everything-claude-code/.cursor/rules/kotlin-patterns.md
2026-03-10 21:25:52 -07:00

1.1 KiB

description, globs, alwaysApply
description globs alwaysApply
Kotlin patterns extending common rules
**/*.kt
**/*.kts
**/build.gradle.kts
false

Kotlin Patterns

This file extends the common patterns rule with Kotlin-specific content.

Sealed Classes

Use sealed classes/interfaces for exhaustive type hierarchies:

sealed class Result<out T> {
    data class Success<T>(val data: T) : Result<T>()
    data class Failure(val error: AppError) : Result<Nothing>()
}

Extension Functions

Add behavior without inheritance, scoped to where they're used:

fun String.toSlug(): String =
    lowercase().replace(Regex("[^a-z0-9\\s-]"), "").replace(Regex("\\s+"), "-")

Scope Functions

  • let: Transform nullable or scoped result
  • apply: Configure an object
  • also: Side effects
  • Avoid nesting scope functions

Dependency Injection

Use Koin for DI in Ktor projects:

val appModule = module {
    single<UserRepository> { ExposedUserRepository(get()) }
    single { UserService(get()) }
}

Reference

See skill: kotlin-patterns for comprehensive Kotlin patterns including coroutines, DSL builders, and delegation.