struct vimoption
struct vimoption
{
char *fullname; // full option name
char *shortname; // permissible abbreviation
long_u flags; // Combination of option flags
char_u *var; // global option: pointer to variable;
// window-local option: VAR_WIN;
// buffer-local option: global value
// NULL indicates a hidden option
idopt_T indir; // global option: PV_NONE;
// local option: indirect option index
char_u *def_val[2]; // default values for variable (vi and vim)
#ifdef FEAT_EVAL
sctx_T script_ctx; // script context where the option was last set
# define SCTX_INIT , {0, 0, 0, 1}
#else
# define SCTX_INIT
#endif
};
Later, an array of such structs is defined for each(?) option:
static struct vimoption options[] = {
…
};