1use rmpv::Value;
2
3#[derive(Debug)]
4pub enum MessageKind {
5 Confirm,
6 ConfirmSubstitute,
7 Error,
8 Echo,
9 EchoMessage,
10 EchoError,
11 LuaError,
12 RpcError,
13 ReturnPrompt,
14 QuickFix,
15 SearchCount,
16 Warning,
17 Unknown,
18}
19
20#[derive(Debug)]
21pub struct MessageShow {
22 pub kind: String,
23 pub content: String,
24 pub replace_last: bool,
25}
26
27#[derive(Debug)]
28pub struct MessageShowMode {
29 pub content: String,
30}
31
32#[derive(Debug)]
33pub struct MessageShowCmd {
34 pub content: String,
35}
36
37#[derive(Debug)]
38pub struct MessageRuler {
39 pub content: String,
40}
41
42#[derive(Debug)]
43pub struct MessageHistoryShow {
44 pub entries: Vec<String>,
45}
46
47impl MessageKind {
48 pub fn parse(value: &Value) -> MessageKind {
49 match value.as_str().unwrap() {
50 "confirm" => MessageKind::Confirm,
51 "confirm_sub" => MessageKind::ConfirmSubstitute,
52 "emsg" => MessageKind::Error,
53 "echo" => MessageKind::Echo,
54 "echomsg" => MessageKind::EchoMessage,
55 "echoerr" => MessageKind::EchoError,
56 "lua_error" => MessageKind::LuaError,
57 "rpc_error" => MessageKind::RpcError,
58 "return_prompt" => MessageKind::ReturnPrompt,
59 "quickfix" => MessageKind::QuickFix,
60 "search_count" => MessageKind::SearchCount,
61 "wmsg" => MessageKind::Warning,
62 _ => MessageKind::Unknown,
63 }
64 }
65}