返回 Skill 列表
extension
分类: 开发与工程无需 API Key

Kotlin Autocomplete

当您需要知道Kotlin类型上可用的成员、方法或扩展时,应使用此技能。它查询由kotlin-autocomplete-gradle-plugin生成的自动完成元数据。

person作者: jakexiaohubgithub

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:

.claude/skills/scripts/kotlin-autocomplete-lookup.sh "fully.qualified.TypeName"

Examples:

# 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:

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:

  1. Applied the plugin in build.gradle.kts:
    plugins {
        id("com.lightningkite.kotlin-autocomplete") version "0.0.1-1"
    }
    
  2. Generated metadata: ./gradlew buildAutocomplete
  3. Metadata exists in build/autocomplete/ directory

Important Notes

  • Type names must be fully qualified: Use kotlin.String not String
  • 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:

  1. Suggest running ./gradlew buildAutocomplete
  2. Verify the plugin is applied
  3. Check if the type name is correct
  4. 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?"

  1. Run: .claude/skills/scripts/kotlin-autocomplete-lookup.sh "kotlinx.coroutines.flow.Flow"
  2. Parse the output
  3. Present available operations in a clear format
  4. Suggest common patterns based on the available members

This ensures you provide accurate, project-specific Kotlin guidance!