Files
Alexander Zolotov b181f5ecc3 [fleet, lsp] multiplatform protocol module
GitOrigin-RevId: d5e04548ba175ff0d1486ef9179394ff05eb16a9
2025-09-18 13:05:51 +00:00

54 lines
1.5 KiB
Kotlin

package com.jetbrains.lsp.protocol
import kotlinx.serialization.Serializable
import kotlinx.serialization.builtins.ListSerializer
import kotlinx.serialization.builtins.nullable
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.json.JsonElement
@Serializable
data class CodeLensParams(
/**
* The document to request code lens for.
*/
val textDocument: TextDocumentIdentifier,
override val workDoneToken: ProgressToken? = null,
override val partialResultToken: ProgressToken? = null,
) : WorkDoneProgressParams, PartialResultParams
@Serializable
data class CodeLens(
/**
* The range in which this code lens is valid. Should only span a single
* line.
*/
val range: Range,
/**
* The command this code lens represents.
*/
val command: Command?,
/**
* A data entry field that is preserved on a code lens item between
* a code lens and a code lens resolve request.
*/
val data: JsonElement?,
)
object CodeLenses {
val CodeLensRequestType: RequestType<CodeLensParams, List<CodeLens>?, Unit> =
RequestType(
"textDocument/codeLens",
CodeLensParams.serializer(), ListSerializer(CodeLens.serializer()).nullable,
Unit.serializer())
val ResolveCodeLens: RequestType<CodeLens, CodeLens, Unit> =
RequestType(
"codeLens/resolve",
CodeLens.serializer(), CodeLens.serializer(),
Unit.serializer())
}