aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/message.h
blob: 9249596bec6906a8aff4b7296e4992b8a66f88bc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#ifndef NVIM_MESSAGE_H
#define NVIM_MESSAGE_H

#include <stdbool.h>
#include <stdarg.h>
#include "nvim/eval_defs.h"  // for typval_T
#include "nvim/ex_cmds_defs.h"  // for exarg_T

/*
 * Types of dialogs passed to do_dialog().
 */
#define VIM_GENERIC     0
#define VIM_ERROR       1
#define VIM_WARNING     2
#define VIM_INFO        3
#define VIM_QUESTION    4
#define VIM_LAST_TYPE   4       /* sentinel value */

/*
 * Return values for functions like vim_dialogyesno()
 */
#define VIM_YES         2
#define VIM_NO          3
#define VIM_CANCEL      4
#define VIM_ALL         5
#define VIM_DISCARDALL  6

/// Show plain message
#define MSG(s)                      msg((char_u *)(s))

/// Show message highlighted according to the attr
#define MSG_ATTR(s, attr)           msg_attr((char_u *)(s), (attr))

/// Display error message
///
/// Sets error flag in process, can be transformed into an exception.
#define EMSG(s)                     emsg((char_u *)(s))

/// Like #EMSG, but for messages with one "%s" inside
#define EMSG2(s, p)                 emsg2((char_u *)(s), (char_u *)(p))

/// Like #EMSG, but for messages with two "%s" inside
#define EMSG3(s, p, q)              emsg3((char_u *)(s), (char_u *)(p), \
    (char_u *)(q))

/// Like #EMSG, but for messages with one "%" PRId64 inside
#define EMSGN(s, n)                 emsgn((char_u *)(s), (int64_t)(n))

/// Like #EMSG, but for messages with one "%" PRIu64 inside
#define EMSGU(s, n)                 emsgu((char_u *)(s), (uint64_t)(n))

/// Display message at the recorded position
#define MSG_PUTS(s)                 msg_puts((char_u *)(s))

/// Display message at the recorded position, highlighted
#define MSG_PUTS_ATTR(s, a)         msg_puts_attr((char_u *)(s), (a))

/// Like #MSG_PUTS, but highlight like title
#define MSG_PUTS_TITLE(s)           msg_puts_title((char_u *)(s))

/// Like #MSG_PUTS, but if middle part of too long messages it will be replaced
#define MSG_PUTS_LONG(s)            msg_puts_long_attr((char_u *)(s), 0)

/// Like #MSG_PUTS_ATTR, but if middle part of long messages will be replaced
#define MSG_PUTS_LONG_ATTR(s, a)    msg_puts_long_attr((char_u *)(s), (a))

#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "message.h.generated.h"
#endif
#endif  // NVIM_MESSAGE_H