Kotlin Autocomplete Skill
You have access to accurate, project-specific Kotlin type information through autocomplete metadata generated by the kotlin-autocomplete-gradle-plugin.
When to Use This Skill
Use this skill when:
- •Writing Kotlin code and need to know what methods/properties are available on a type
- •The user asks "what can I do with X type?" or "what methods does X have?"
- •Verifying if a specific member exists on a type
- •Exploring Kotlin APIs (stdlib, coroutines, or project-specific)
- •You're unsure about method signatures or available extensions
How It Works
The autocomplete metadata is generated by running ./gradlew buildAutocomplete in a Kotlin project. This creates JSON files in build/autocomplete/ containing:
- •All public properties and methods with full signatures
- •Extension functions and properties
- •Both standard library and project-specific types
Querying Type Information
Use the helper script to query type information:
bash
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "fully.qualified.TypeName"
Examples:
bash
# Standard library types .claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlin.String" .claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlin.collections.List" # Coroutines types .claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlinx.coroutines.flow.Flow" # Project types .claude/skills/scripts/kotlin-autocomplete-lookup.sh "com.example.User"
Response Format
When presenting autocomplete information, format it clearly:
code
Type: kotlin.String Members: - val length: kotlin.Int - fun substring(startIndex: kotlin.Int): kotlin.String - fun lowercase(): kotlin.String Extensions: - fun toSnakeCase(): kotlin.String - val firstChar: kotlin.Char? Total: 3 members, 2 extensions
Prerequisites
The Kotlin project must have:
- •Applied the plugin in
build.gradle.kts:kotlinplugins { id("com.lightningkite.kotlin-autocomplete") version "0.0.1-1" } - •Generated metadata:
./gradlew buildAutocomplete - •Metadata exists in
build/autocomplete/directory
Important Notes
- •Type names must be fully qualified: Use
kotlin.StringnotString - •Only public members are included: Internal and private members are excluded
- •Extensions on Any/Any? are filtered: Too generic to be useful
- •Fast lookups: Index-based queries are nearly instant
If Metadata Not Found
If autocomplete metadata doesn't exist:
- •Suggest running
./gradlew buildAutocomplete - •Verify the plugin is applied
- •Check if the type name is correct
- •Fall back to general Kotlin knowledge, but note it may not be project-specific
Benefits
- •No hallucinations: All information comes from actual compiled code
- •Project-aware: Includes custom extensions and project types
- •Always up-to-date: Regenerate when code changes
- •Complete signatures: Full parameter types and return types
Example Workflow
User: "What can I do with a Flow?"
- •Run:
.claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlinx.coroutines.flow.Flow" - •Parse the output
- •Present available operations in a clear format
- •Suggest common patterns based on the available members
This ensures you provide accurate, project-specific Kotlin guidance!