Files
Bartek Pacia a35a04ac59 cleanup [lsp]: rename notification constants for clarity and update usages
GitOrigin-RevId: 5c655c1b820e0fe872ce724c0d8341ce15ff6186
2026-01-30 22:15:03 +00:00

86 lines
1.8 KiB
Kotlin

package com.jetbrains.lsp.protocol
import kotlinx.serialization.Serializable
/**
* @see <a href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#logMessageParams">logMessageParams (LSP spec)</a>
*/
@Serializable
data class LogMessageParams(
/**
* The message type. See {@link MessageType}
*/
val type: MessageType,
/**
* The actual message
*/
val message: String,
)
@Serializable
data class ShowMessageParams(
/**
* The message type. See {@link MessageType}
*/
val type: MessageType,
/**
* The actual message
*/
val message: String,
)
@Serializable(with = MessageType.Serializer::class)
enum class MessageType(val value: Int) {
/**
* An error message.
*/
Error(1),
/**
* A warning message.
*/
Warning(2),
/**
* An information message.
*/
Info(3),
/**
* A log message.
*/
Log(4),
/**
* A debug message.
*
* @since 3.18.0
* @proposed
*/
Debug(5);
internal class Serializer : EnumAsIntSerializer<MessageType>(
serialName = MessageType::class.simpleName!!,
serialize = MessageType::value,
deserialize = { entries[it - 1] },
)
}
/**
* @see <a href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#window_logMessage">window/logMessage (LSP spec)</a>
*/
val LogMessageNotificationType: NotificationType<LogMessageParams> = NotificationType(
method = "window/logMessage",
paramsSerializer = LogMessageParams.serializer(),
)
/**
* @see <a href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#window_showMessage">window/showMessage (LSP spec)</a>
*/
val ShowMessageNotificationType: NotificationType<ShowMessageParams> = NotificationType(
method = "window/showMessage",
paramsSerializer = ShowMessageParams.serializer(),
)