neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

context.h (870B)


      1 #pragma once
      2 
      3 #include <stddef.h>  // IWYU pragma: keep
      4 
      5 #include "klib/kvec.h"
      6 #include "nvim/api/private/defs.h"
      7 
      8 typedef struct {
      9  String regs;     ///< Registers.
     10  String jumps;    ///< Jumplist.
     11  String bufs;     ///< Buffer list.
     12  String gvars;    ///< Global variables.
     13  Array funcs;              ///< Functions.
     14 } Context;
     15 typedef kvec_t(Context) ContextVec;
     16 
     17 #define CONTEXT_INIT (Context) { \
     18  .regs = STRING_INIT, \
     19  .jumps = STRING_INIT, \
     20  .bufs = STRING_INIT, \
     21  .gvars = STRING_INIT, \
     22  .funcs = ARRAY_DICT_INIT, \
     23 }
     24 
     25 typedef enum {
     26  kCtxRegs = 1,       ///< Registers
     27  kCtxJumps = 2,      ///< Jumplist
     28  kCtxBufs = 4,       ///< Buffer list
     29  kCtxGVars = 8,      ///< Global variables
     30  kCtxSFuncs = 16,    ///< Script functions
     31  kCtxFuncs = 32,     ///< Functions
     32 } ContextTypeFlags;
     33 
     34 extern int kCtxAll;
     35 
     36 #include "context.h.generated.h"