Search notes:

VIM: src/optiondefs.h

Option definitions.

struct vimoption

The characteristics of each option is stored in a struct:
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[] = {
  …
};

Index