neovim

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

runtime.h (2470B)


      1 #pragma once
      2 
      3 #include <stddef.h>  // IWYU pragma: keep
      4 
      5 #include "nvim/api/private/defs.h"  // IWYU pragma: keep
      6 #include "nvim/cmdexpand_defs.h"  // IWYU pragma: keep
      7 #include "nvim/eval/typval_defs.h"  // IWYU pragma: keep
      8 #include "nvim/ex_cmds_defs.h"  // IWYU pragma: keep
      9 #include "nvim/garray_defs.h"
     10 #include "nvim/option_defs.h"  // IWYU pragma: keep
     11 #include "nvim/pos_defs.h"  // IWYU pragma: keep
     12 #include "nvim/runtime_defs.h"  // IWYU pragma: keep
     13 #include "nvim/types_defs.h"  // IWYU pragma: keep
     14 
     15 /// Stack of execution contexts.  Each entry is an estack_T.
     16 /// Current context is at ga_len - 1.
     17 extern garray_T exestack;
     18 #define HAVE_SOURCING_INFO  (exestack.ga_data != NULL && exestack.ga_len > 0)
     19 /// name of error message source
     20 #define SOURCING_NAME (((estack_T *)exestack.ga_data)[exestack.ga_len - 1].es_name)
     21 /// line number in the message source or zero
     22 #define SOURCING_LNUM (((estack_T *)exestack.ga_data)[exestack.ga_len - 1].es_lnum)
     23 
     24 /// Growarray to store info about already sourced scripts.
     25 extern garray_T script_items;
     26 #define SCRIPT_ITEM(id) (((scriptitem_T **)script_items.ga_data)[(id) - 1])
     27 #define SCRIPT_ID_VALID(id) ((id) > 0 && (id) <= script_items.ga_len)
     28 
     29 /// last argument for do_source()
     30 enum {
     31  DOSO_NONE = 0,
     32  DOSO_VIMRC = 1,  ///< loading vimrc file
     33 };
     34 
     35 /// Used for flags in do_in_path()
     36 enum {
     37  DIP_ALL     = 0x01,   ///< all matches, not just the first one
     38  DIP_DIR     = 0x02,   ///< find directories instead of files
     39  DIP_ERR     = 0x04,   ///< give an error message when none found
     40  DIP_START   = 0x08,   ///< also use "start" directory in 'packpath'
     41  DIP_OPT     = 0x10,   ///< also use "opt" directory in 'packpath'
     42  DIP_NORTP   = 0x20,   ///< do not use 'runtimepath'
     43  DIP_NOAFTER = 0x40,   ///< skip "after" directories
     44  DIP_AFTER   = 0x80,   ///< only use "after" directories
     45  DIP_DIRFILE = 0x200,  ///< find both files and directories
     46 };
     47 
     48 #ifdef ABORT_ON_INTERNAL_ERROR
     49 # define ESTACK_CHECK_DECLARATION int estack_len_before
     50 # define ESTACK_CHECK_SETUP do { estack_len_before = exestack.ga_len; } while (0)
     51 # define ESTACK_CHECK_NOW \
     52  do { \
     53    if (estack_len_before != exestack.ga_len) { \
     54      siemsg("Exestack length expected: %d, actual: %d", estack_len_before, exestack.ga_len); \
     55    } \
     56  } while (0)
     57 #else
     58 # define ESTACK_CHECK_DECLARATION do {} while (0)
     59 # define ESTACK_CHECK_SETUP do {} while (0)
     60 # define ESTACK_CHECK_NOW do {} while (0)
     61 #endif
     62 
     63 #include "runtime.h.generated.h"