aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval_defs.h
blob: 7adea6dfa9727a9f43ac0a56361c47ee77207517 (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
#pragma once

#include "nvim/ex_cmds_defs.h"

/// All recognized msgpack types
typedef enum {
  kMPNil,
  kMPBoolean,
  kMPInteger,
  kMPFloat,
  kMPString,
  kMPArray,
  kMPMap,
  kMPExt,
} MessagePackType;
#define NUM_MSGPACK_TYPES (kMPExt + 1)

/// Struct passed through eval() functions.
/// See EVALARG_EVALUATE for a fixed value with eval_flags set to EVAL_EVALUATE.
typedef struct {
  int eval_flags;     ///< EVAL_ flag values below

  /// copied from exarg_T when "getline" is "getsourceline". Can be NULL.
  LineGetter eval_getline;
  void *eval_cookie;  ///< argument for eval_getline()

  /// pointer to the last line obtained with getsourceline()
  char *eval_tofree;
} evalarg_T;