option.h (2254B)
1 #pragma once 2 3 #include <stdio.h> // IWYU pragma: keep 4 5 #include "nvim/api/private/defs.h" // IWYU pragma: keep 6 #include "nvim/api/private/helpers.h" 7 #include "nvim/cmdexpand_defs.h" // IWYU pragma: keep 8 #include "nvim/eval/typval_defs.h" // IWYU pragma: keep 9 #include "nvim/ex_cmds_defs.h" // IWYU pragma: keep 10 #include "nvim/macros_defs.h" 11 #include "nvim/option_defs.h" // IWYU pragma: keep 12 #include "nvim/types_defs.h" // IWYU pragma: keep 13 14 /// flags for buf_copy_options() 15 enum { 16 BCO_ENTER = 1, ///< going to enter the buffer 17 BCO_ALWAYS = 2, ///< always copy the options 18 BCO_NOHELP = 4, ///< don't touch the help related options 19 }; 20 21 /// Flags for option-setting functions 22 /// 23 /// When OPT_GLOBAL and OPT_LOCAL are both missing, set both local and global 24 /// values, get local value. 25 typedef enum { 26 OPT_GLOBAL = 0x01, ///< Use global value. 27 OPT_LOCAL = 0x02, ///< Use local value. 28 OPT_MODELINE = 0x04, ///< Option in modeline. 29 OPT_WINONLY = 0x08, ///< Only set window-local options. 30 OPT_NOWIN = 0x10, ///< Don’t set window-local options. 31 OPT_ONECOLUMN = 0x20, ///< list options one per line 32 OPT_NO_REDRAW = 0x40, ///< ignore redraw flags on option 33 OPT_SKIPRTP = 0x80, ///< "skiprtp" in 'sessionoptions' 34 } OptionSetFlags; 35 36 /// Get name of OptValType as a string. 37 static inline const char *optval_type_get_name(const OptValType type) 38 { 39 switch (type) { 40 case kOptValTypeNil: 41 return "nil"; 42 case kOptValTypeBoolean: 43 return "boolean"; 44 case kOptValTypeNumber: 45 return "number"; 46 case kOptValTypeString: 47 return "string"; 48 } 49 UNREACHABLE; 50 } 51 52 // OptVal helper macros. 53 #define NIL_OPTVAL ((OptVal) { .type = kOptValTypeNil }) 54 #define BOOLEAN_OPTVAL(b) ((OptVal) { .type = kOptValTypeBoolean, .data.boolean = b }) 55 #define NUMBER_OPTVAL(n) ((OptVal) { .type = kOptValTypeNumber, .data.number = n }) 56 #define STRING_OPTVAL(s) ((OptVal) { .type = kOptValTypeString, .data.string = s }) 57 58 #define CSTR_AS_OPTVAL(s) STRING_OPTVAL(cstr_as_string(s)) 59 #define CSTR_TO_OPTVAL(s) STRING_OPTVAL(cstr_to_string(s)) 60 #define STATIC_CSTR_AS_OPTVAL(s) STRING_OPTVAL(STATIC_CSTR_AS_STRING(s)) 61 #define STATIC_CSTR_TO_OPTVAL(s) STRING_OPTVAL(STATIC_CSTR_TO_STRING(s)) 62 63 #include "option.h.generated.h"