use rmpv::Value;
#[derive(Debug)]
pub enum MessageKind {
Confirm,
ConfirmSubstitute,
Error,
Echo,
EchoMessage,
EchoError,
LuaError,
RpcError,
ReturnPrompt,
QuickFix,
SearchCount,
Warning,
Unknown,
}
#[derive(Debug)]
pub struct MessageShow {
pub kind: String,
pub content: String,
pub replace_last: bool,
}
#[derive(Debug)]
pub struct MessageShowMode {
pub content: String,
}
#[derive(Debug)]
pub struct MessageShowCmd {
pub content: String,
}
#[derive(Debug)]
pub struct MessageRuler {
pub content: String,
}
#[derive(Debug)]
pub struct MessageHistoryShow {
pub entries: Vec<String>,
}
impl MessageKind {
pub fn parse(value: &Value) -> MessageKind {
match value.as_str().unwrap() {
"confirm" => MessageKind::Confirm,
"confirm_sub" => MessageKind::ConfirmSubstitute,
"emsg" => MessageKind::Error,
"echo" => MessageKind::Echo,
"echomsg" => MessageKind::EchoMessage,
"echoerr" => MessageKind::EchoError,
"lua_error" => MessageKind::LuaError,
"rpc_error" => MessageKind::RpcError,
"return_prompt" => MessageKind::ReturnPrompt,
"quickfix" => MessageKind::QuickFix,
"search_count" => MessageKind::SearchCount,
"wmsg" => MessageKind::Warning,
_ => MessageKind::Unknown,
}
}
}