#ifndef NVIM_OPTION_DEFS_H #define NVIM_OPTION_DEFS_H #include "nvim/types.h" #include "nvim/macros.h" // For EXTERN // option_defs.h: definition of global variables for settable options // Return value from get_option_value_strict */ #define SOPT_BOOL 0x01 // Boolean option #define SOPT_NUM 0x02 // Number option #define SOPT_STRING 0x04 // String option #define SOPT_GLOBAL 0x08 // Option has global value #define SOPT_WIN 0x10 // Option has window-local value #define SOPT_BUF 0x20 // Option has buffer-local value #define SOPT_UNSET 0x40 // Option does not have local value set // Option types for various functions in option.c #define SREQ_GLOBAL 0 // Request global option value #define SREQ_WIN 1 // Request window-local option value #define SREQ_BUF 2 // Request buffer-local option value /* * Default values for 'errorformat'. * The "%f|%l| %m" one is used for when the contents of the quickfix window is * written to a file. */ #define DFLT_EFM \ "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: Leaving directory %*[`']%f',%D%*\\a: Entering directory %*[`']%f',%X%*\\a: Leaving directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m" #define DFLT_GREPFORMAT "%f:%l:%m,%f:%l%m,%f %l%m" /* default values for b_p_ff 'fileformat' and p_ffs 'fileformats' */ #define FF_DOS "dos" #define FF_MAC "mac" #define FF_UNIX "unix" #ifdef USE_CRNL # define DFLT_FF "dos" # define DFLT_FFS_VIM "dos,unix" # define DFLT_FFS_VI "dos,unix" /* also autodetect in compatible mode */ #else # define DFLT_FF "unix" # define DFLT_FFS_VIM "unix,dos" # define DFLT_FFS_VI "" #endif /* Possible values for 'encoding' */ # define ENC_UCSBOM "ucs-bom" /* check for BOM at start of file */ /* default value for 'encoding' */ # define ENC_DFLT "utf-8" /* end-of-line style */ #define EOL_UNKNOWN -1 /* not defined yet */ #define EOL_UNIX 0 /* NL */ #define EOL_DOS 1 /* CR NL */ #define EOL_MAC 2 /* CR */ /* Formatting options for p_fo 'formatoptions' */ #define FO_WRAP 't' #define FO_WRAP_COMS 'c' #define FO_RET_COMS 'r' #define FO_OPEN_COMS 'o' #define FO_Q_COMS 'q' #define FO_Q_NUMBER 'n' #define FO_Q_SECOND '2' #define FO_INS_VI 'v' #define FO_INS_LONG 'l' #define FO_INS_BLANK 'b' #define FO_MBYTE_BREAK 'm' /* break before/after multi-byte char */ #define FO_MBYTE_JOIN 'M' /* no space before/after multi-byte char */ #define FO_MBYTE_JOIN2 'B' /* no space between multi-byte chars */ #define FO_ONE_LETTER '1' #define FO_WHITE_PAR 'w' /* trailing white space continues paragr. */ #define FO_AUTO 'a' /* automatic formatting */ #define FO_REMOVE_COMS 'j' /* remove comment leaders when joining lines */ #define DFLT_FO_VI "vt" #define DFLT_FO_VIM "tcqj" #define FO_ALL "tcroq2vlb1mMBn,awj" /* for do_set() */ // characters for the p_cpo option: #define CPO_ALTREAD 'a' // ":read" sets alternate file name #define CPO_ALTWRITE 'A' // ":write" sets alternate file name #define CPO_BAR 'b' // "\|" ends a mapping #define CPO_BSLASH 'B' // backslash in mapping is not special #define CPO_SEARCH 'c' #define CPO_CONCAT 'C' // Don't concatenate sourced lines #define CPO_DOTTAG 'd' // "./tags" in 'tags' is in current dir #define CPO_DIGRAPH 'D' // No digraph after "r", "f", etc. #define CPO_EXECBUF 'e' #define CPO_EMPTYREGION 'E' // operating on empty region is an error #define CPO_FNAMER 'f' // set file name for ":r file" #define CPO_FNAMEW 'F' // set file name for ":w file" #define CPO_INTMOD 'i' // interrupt a read makes buffer modified #define CPO_INDENT 'I' // remove auto-indent more often #define CPO_ENDOFSENT 'J' // need two spaces to detect end of sentence #define CPO_KOFFSET 'K' // don't wait for key code in mappings #define CPO_LITERAL 'l' // take char after backslash in [] literal #define CPO_LISTWM 'L' // 'list' changes wrapmargin #define CPO_SHOWMATCH 'm' #define CPO_MATCHBSL 'M' // "%" ignores use of backslashes #define CPO_NUMCOL 'n' // 'number' column also used for text #define CPO_LINEOFF 'o' #define CPO_OVERNEW 'O' // silently overwrite new file #define CPO_LISP 'p' // 'lisp' indenting #define CPO_FNAMEAPP 'P' // set file name for ":w >>file" #define CPO_JOINCOL 'q' // with "3J" use column after first join #define CPO_REDO 'r' #define CPO_REMMARK 'R' // remove marks when filtering #define CPO_BUFOPT 's' #define CPO_BUFOPTGLOB 'S' #define CPO_TAGPAT 't' #define CPO_UNDO 'u' // "u" undoes itself #define CPO_BACKSPACE 'v' // "v" keep deleted text #define CPO_FWRITE 'W' // "w!" doesn't overwrite readonly files #define CPO_ESC 'x' #define CPO_REPLCNT 'X' // "R" with a count only deletes chars once #define CPO_YANK 'y' #define CPO_KEEPRO 'Z' // don't reset 'readonly' on ":w!" #define CPO_DOLLAR '$' #define CPO_FILTER '!' #define CPO_MATCH '%' #define CPO_PLUS '+' // ":write file" resets 'modified' #define CPO_REGAPPEND '>' // insert NL when appending to a register #define CPO_SCOLON ';' // using "," and ";" will skip over char if // cursor would not move #define CPO_CHANGEW '_' // "cw" special-case // default values for Vim and Vi #define CPO_VIM "aABceFs_" #define CPO_VI "aAbBcCdDeEfFiIJKlLmMnoOpPqrRsStuvWxXyZ$!%+>;_" /* characters for p_ww option: */ #define WW_ALL "bshl<>[],~" /* characters for p_mouse option: */ #define MOUSE_NORMAL 'n' /* use mouse in Normal mode */ #define MOUSE_VISUAL 'v' /* use mouse in Visual/Select mode */ #define MOUSE_INSERT 'i' /* use mouse in Insert mode */ #define MOUSE_COMMAND 'c' /* use mouse in Command-line mode */ #define MOUSE_HELP 'h' /* use mouse in help buffers */ #define MOUSE_RETURN 'r' /* use mouse for hit-return message */ #define MOUSE_A "nvich" /* used for 'a' flag */ #define MOUSE_ALL "anvichr" /* all possible characters */ #define MOUSE_NONE ' ' /* don't use Visual selection */ #define MOUSE_NONEF 'x' /* forced modeless selection */ #define COCU_ALL "nvic" /* flags for 'concealcursor' */ /// characters for p_shm option: enum { SHM_RO = 'r', ///< Readonly. SHM_MOD = 'm', ///< Modified. SHM_FILE = 'f', ///< (file 1 of 2) SHM_LAST = 'i', ///< Last line incomplete. SHM_TEXT = 'x', ///< Tx instead of textmode. SHM_LINES = 'l', ///< "L" instead of "lines". SHM_NEW = 'n', ///< "[New]" instead of "[New file]". SHM_WRI = 'w', ///< "[w]" instead of "written". SHM_ABBREVIATIONS = 'a', ///< Use abbreviations from #SHM_ALL_ABBREVIATIONS. SHM_WRITE = 'W', ///< Don't use "written" at all. SHM_TRUNC = 't', ///< Trunctate file messages. SHM_TRUNCALL = 'T', ///< Trunctate all messages. SHM_OVER = 'o', ///< Overwrite file messages. SHM_OVERALL = 'O', ///< Overwrite more messages. SHM_SEARCH = 's', ///< No search hit bottom messages. SHM_ATTENTION = 'A', ///< No ATTENTION messages. SHM_INTRO = 'I', ///< Intro messages. SHM_COMPLETIONMENU = 'c', ///< Completion menu messages. SHM_RECORDING = 'q', ///< Short recording message. SHM_FILEINFO = 'F', ///< No file info messages. }; /// Represented by 'a' flag. #define SHM_ALL_ABBREVIATIONS ((char_u[]) { \ SHM_RO, SHM_MOD, SHM_FILE, SHM_LAST, SHM_TEXT, SHM_LINES, SHM_NEW, SHM_WRI, \ 0, \ }) /// All possible flags for 'shm'. #define SHM_ALL ((char_u[]) { \ SHM_RO, SHM_MOD, SHM_FILE, SHM_LAST, SHM_TEXT, SHM_LINES, SHM_NEW, SHM_WRI, \ SHM_ABBREVIATIONS, SHM_WRITE, SHM_TRUNC, SHM_TRUNCALL, SHM_OVER, \ SHM_OVERALL, SHM_SEARCH, SHM_ATTENTION, SHM_INTRO, SHM_COMPLETIONMENU, \ SHM_RECORDING, SHM_FILEINFO, \ 0, \ }) /* characters for p_go: */ #define GO_ASEL 'a' /* autoselect */ #define GO_ASELML 'A' /* autoselect modeless selection */ #define GO_BOT 'b' /* use bottom scrollbar */ #define GO_CONDIALOG 'c' /* use console dialog */ #define GO_TABLINE 'e' /* may show tabline */ #define GO_FORG 'f' /* start GUI in foreground */ #define GO_GREY 'g' /* use grey menu items */ #define GO_HORSCROLL 'h' /* flexible horizontal scrolling */ #define GO_ICON 'i' /* use Vim icon */ #define GO_LEFT 'l' /* use left scrollbar */ #define GO_VLEFT 'L' /* left scrollbar with vert split */ #define GO_MENUS 'm' /* use menu bar */ #define GO_NOSYSMENU 'M' /* don't source system menu */ #define GO_POINTER 'p' /* pointer enter/leave callbacks */ #define GO_ASELPLUS 'P' /* autoselectPlus */ #define GO_RIGHT 'r' /* use right scrollbar */ #define GO_VRIGHT 'R' /* right scrollbar with vert split */ #define GO_TOOLBAR 'T' /* add toolbar */ #define GO_FOOTER 'F' /* add footer */ #define GO_VERTICAL 'v' /* arrange dialog buttons vertically */ #define GO_ALL "aAbcefFghilmMprTv" /* all possible flags for 'go' */ /* flags for 'comments' option */ #define COM_NEST 'n' /* comments strings nest */ #define COM_BLANK 'b' /* needs blank after string */ #define COM_START 's' /* start of comment */ #define COM_MIDDLE 'm' /* middle of comment */ #define COM_END 'e' /* end of comment */ #define COM_AUTO_END 'x' /* last char of end closes comment */ #define COM_FIRST 'f' /* first line comment only */ #define COM_LEFT 'l' /* left adjusted */ #define COM_RIGHT 'r' /* right adjusted */ #define COM_NOBACK 'O' /* don't use for "O" command */ #define COM_ALL "nbsmexflrO" /* all flags for 'comments' option */ #define COM_MAX_LEN 50 /* maximum length of a part */ /// 'statusline' option flags enum { STL_FILEPATH = 'f', ///< Path of file in buffer. STL_FULLPATH = 'F', ///< Full path of file in buffer. STL_FILENAME = 't', ///< Last part (tail) of file path. STL_COLUMN = 'c', ///< Column og cursor. STL_VIRTCOL = 'v', ///< Virtual column. STL_VIRTCOL_ALT = 'V', ///< - with 'if different' display. STL_LINE = 'l', ///< Line number of cursor. STL_NUMLINES = 'L', ///< Number of lines in buffer. STL_BUFNO = 'n', ///< Current buffer number. STL_KEYMAP = 'k', ///< 'keymap' when active. STL_OFFSET = 'o', ///< Offset of character under cursor. STL_OFFSET_X = 'O', ///< - in hexadecimal. STL_BYTEVAL = 'b', ///< Byte value of character. STL_BYTEVAL_X = 'B', ///< - in hexadecimal. STL_ROFLAG = 'r', ///< Readonly flag. STL_ROFLAG_ALT = 'R', ///< - other display. STL_HELPFLAG = 'h', ///< Window is showing a help file. STL_HELPFLAG_ALT = 'H', ///< - other display. STL_FILETYPE = 'y', ///< 'filetype'. STL_FILETYPE_ALT = 'Y', ///< - other display. STL_PREVIEWFLAG = 'w', ///< Window is showing the preview buf. STL_PREVIEWFLAG_ALT = 'W', ///< - other display. STL_MODIFIED = 'm', ///< Modified flag. STL_MODIFIED_ALT = 'M', ///< - other display. STL_QUICKFIX = 'q', ///< Quickfix window description. STL_PERCENTAGE = 'p', ///< Percentage through file. STL_ALTPERCENT = 'P', ///< Percentage as TOP BOT ALL or NN%. STL_ARGLISTSTAT = 'a', ///< Argument list status as (x of y). STL_PAGENUM = 'N', ///< Page number (when printing). STL_VIM_EXPR = '{', ///< Start of expression to substitute. STL_SEPARATE = '=', ///< Separation between alignment sections. STL_TRUNCMARK = '<', ///< Truncation mark if line is too long. STL_USER_HL = '*', ///< Highlight from (User)1..9 or 0. STL_HIGHLIGHT = '#', ///< Highlight name. STL_TABPAGENR = 'T', ///< Tab page label nr. STL_TABCLOSENR = 'X', ///< Tab page close nr. STL_CLICK_FUNC = '@', ///< Click region start. }; /// C string containing all 'statusline' option flags #define STL_ALL ((char_u[]) { \ STL_FILEPATH, STL_FULLPATH, STL_FILENAME, STL_COLUMN, STL_VIRTCOL, \ STL_VIRTCOL_ALT, STL_LINE, STL_NUMLINES, STL_BUFNO, STL_KEYMAP, STL_OFFSET, \ STL_OFFSET_X, STL_BYTEVAL, STL_BYTEVAL_X, STL_ROFLAG, STL_ROFLAG_ALT, \ STL_HELPFLAG, STL_HELPFLAG_ALT, STL_FILETYPE, STL_FILETYPE_ALT, \ STL_PREVIEWFLAG, STL_PREVIEWFLAG_ALT, STL_MODIFIED, STL_MODIFIED_ALT, \ STL_QUICKFIX, STL_PERCENTAGE, STL_ALTPERCENT, STL_ARGLISTSTAT, STL_PAGENUM, \ STL_VIM_EXPR, STL_SEPARATE, STL_TRUNCMARK, STL_USER_HL, STL_HIGHLIGHT, \ STL_TABPAGENR, STL_TABCLOSENR, STL_CLICK_FUNC, \ 0, \ }) /* flags used for parsed 'wildmode' */ #define WIM_FULL 1 #define WIM_LONGEST 2 #define WIM_LIST 4 /* arguments for can_bs() */ #define BS_INDENT 'i' /* "Indent" */ #define BS_EOL 'o' /* "eOl" */ #define BS_START 's' /* "Start" */ #define LISPWORD_VALUE \ "defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,define-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etypecase,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-prog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-from-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,define-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accessors,with-accessors*,defclass,defmethod,print-unreadable-object" /* * The following are actual variables for the options */ EXTERN long p_aleph; // 'aleph' EXTERN int p_acd; // 'autochdir' EXTERN char_u *p_ambw; // 'ambiwidth' EXTERN int p_ar; // 'autoread' EXTERN int p_aw; // 'autowrite' EXTERN int p_awa; // 'autowriteall' EXTERN char_u *p_bs; // 'backspace' EXTERN char_u *p_bg; // 'background' EXTERN int p_bk; // 'backup' EXTERN char_u *p_bkc; // 'backupcopy' EXTERN unsigned int bkc_flags; ///< flags from 'backupcopy' #ifdef IN_OPTION_C static char *(p_bkc_values[]) = {"yes", "auto", "no", "breaksymlink", "breakhardlink", NULL}; #endif # define BKC_YES 0x001 # define BKC_AUTO 0x002 # define BKC_NO 0x004 # define BKC_BREAKSYMLINK 0x008 # define BKC_BREAKHARDLINK 0x010 EXTERN char_u *p_bdir; /* 'backupdir' */ EXTERN char_u *p_bex; /* 'backupext' */ EXTERN char_u *p_bo; // 'belloff' EXTERN unsigned bo_flags; # ifdef IN_OPTION_C static char *(p_bo_values[]) = {"all", "backspace", "cursor", "complete", "copy", "ctrlg", "error", "esc", "ex", "hangul", "insertmode", "lang", "mess", "showmatch", "operator", "register", "shell", "spell", "wildmode", NULL}; # endif // values for the 'belloff' option #define BO_ALL 0x0001 #define BO_BS 0x0002 #define BO_CRSR 0x0004 #define BO_COMPL 0x0008 #define BO_COPY 0x0010 #define BO_CTRLG 0x0020 #define BO_ERROR 0x0040 #define BO_ESC 0x0080 #define BO_EX 0x0100 #define BO_HANGUL 0x0200 #define BO_IM 0x0400 #define BO_LANG 0x0800 #define BO_MESS 0x1000 #define BO_MATCH 0x2000 #define BO_OPER 0x4000 #define BO_REG 0x8000 #define BO_SH 0x10000 #define BO_SPELL 0x20000 #define BO_WILD 0x40000 EXTERN char_u *p_bsk; /* 'backupskip' */ EXTERN char_u *p_breakat; /* 'breakat' */ EXTERN char_u *p_cmp; /* 'casemap' */ EXTERN unsigned cmp_flags; # ifdef IN_OPTION_C static char *(p_cmp_values[]) = {"internal", "keepascii", NULL}; # endif # define CMP_INTERNAL 0x001 # define CMP_KEEPASCII 0x002 EXTERN char_u *p_enc; /* 'encoding' */ EXTERN int p_deco; /* 'delcombine' */ EXTERN char_u *p_ccv; /* 'charconvert' */ EXTERN char_u *p_cedit; /* 'cedit' */ EXTERN char_u *p_cb; /* 'clipboard' */ EXTERN unsigned cb_flags; #ifdef IN_OPTION_C static char *(p_cb_values[]) = {"unnamed", "unnamedplus", NULL}; #endif # define CB_UNNAMED 0x001 # define CB_UNNAMEDPLUS 0x002 # define CB_UNNAMEDMASK (CB_UNNAMED | CB_UNNAMEDPLUS) EXTERN long p_cwh; // 'cmdwinheight' EXTERN long p_ch; // 'cmdheight' EXTERN int p_confirm; // 'confirm' EXTERN int p_cp; // 'compatible' EXTERN char_u *p_cot; // 'completeopt' EXTERN long p_ph; // 'pumheight' EXTERN char_u *p_cpo; // 'cpoptions' EXTERN char_u *p_csprg; // 'cscopeprg' EXTERN int p_csre; // 'cscoperelative' EXTERN char_u *p_csqf; // 'cscopequickfix' # define CSQF_CMDS "sgdctefia" # define CSQF_FLAGS "+-0" EXTERN int p_cst; /* 'cscopetag' */ EXTERN long p_csto; /* 'cscopetagorder' */ EXTERN long p_cspc; /* 'cscopepathcomp' */ EXTERN int p_csverbose; /* 'cscopeverbose' */ EXTERN char_u *p_debug; /* 'debug' */ EXTERN char_u *p_def; /* 'define' */ EXTERN char_u *p_inc; EXTERN char_u *p_dip; /* 'diffopt' */ EXTERN char_u *p_dex; /* 'diffexpr' */ EXTERN char_u *p_dict; /* 'dictionary' */ EXTERN int p_dg; /* 'digraph' */ EXTERN char_u *p_dir; /* 'directory' */ EXTERN char_u *p_dy; /* 'display' */ EXTERN unsigned dy_flags; #ifdef IN_OPTION_C static char *(p_dy_values[]) = { "lastline", "truncate", "uhex", NULL }; #endif #define DY_LASTLINE 0x001 #define DY_TRUNCATE 0x002 #define DY_UHEX 0x004 EXTERN int p_ed; // 'edcompatible' EXTERN int p_emoji; // 'emoji' EXTERN char_u *p_ead; // 'eadirection' EXTERN int p_ea; // 'equalalways' EXTERN char_u *p_ep; // 'equalprg' EXTERN int p_eb; // 'errorbells' EXTERN char_u *p_ef; // 'errorfile' EXTERN char_u *p_efm; // 'errorformat' EXTERN char_u *p_gefm; // 'grepformat' EXTERN char_u *p_gp; // 'grepprg' EXTERN char_u *p_ei; // 'eventignore' EXTERN int p_exrc; // 'exrc' EXTERN char_u *p_fencs; // 'fileencodings' EXTERN char_u *p_ffs; // 'fileformats' EXTERN int p_fic; // 'fileignorecase' EXTERN char_u *p_fcl; // 'foldclose' EXTERN long p_fdls; // 'foldlevelstart' EXTERN char_u *p_fdo; // 'foldopen' EXTERN unsigned fdo_flags; # ifdef IN_OPTION_C static char *(p_fdo_values[]) = {"all", "block", "hor", "mark", "percent", "quickfix", "search", "tag", "insert", "undo", "jump", NULL}; # endif # define FDO_ALL 0x001 # define FDO_BLOCK 0x002 # define FDO_HOR 0x004 # define FDO_MARK 0x008 # define FDO_PERCENT 0x010 # define FDO_QUICKFIX 0x020 # define FDO_SEARCH 0x040 # define FDO_TAG 0x080 # define FDO_INSERT 0x100 # define FDO_UNDO 0x200 # define FDO_JUMP 0x400 EXTERN char_u *p_fp; // 'formatprg' EXTERN int p_fs; // 'fsync' EXTERN int p_gd; // 'gdefault' EXTERN char_u *p_pdev; // 'printdevice' EXTERN char_u *p_penc; // 'printencoding' EXTERN char_u *p_pexpr; // 'printexpr' EXTERN char_u *p_pmfn; // 'printmbfont' EXTERN char_u *p_pmcs; // 'printmbcharset' EXTERN char_u *p_pfn; // 'printfont' EXTERN char_u *p_popt; // 'printoptions' EXTERN char_u *p_header; // 'printheader' EXTERN int p_prompt; // 'prompt' EXTERN char_u *p_guicursor; // 'guicursor' EXTERN char_u *p_hf; // 'helpfile' EXTERN long p_hh; // 'helpheight' EXTERN char_u *p_hlg; // 'helplang' EXTERN int p_hid; // 'hidden' // Use P_HID to check if a buffer is to be hidden when it is no longer // visible in a window. # define P_HID(buf) (buf_hide(buf)) EXTERN char_u *p_hl; // 'highlight' EXTERN int p_hls; // 'hlsearch' EXTERN long p_hi; // 'history' EXTERN int p_hkmap; // 'hkmap' EXTERN int p_hkmapp; // 'hkmapp' EXTERN int p_fkmap; // 'fkmap' EXTERN int p_altkeymap; // 'altkeymap' EXTERN int p_arshape; // 'arabicshape' EXTERN int p_icon; // 'icon' EXTERN char_u *p_iconstring; // 'iconstring' EXTERN int p_ic; // 'ignorecase' EXTERN int p_is; // 'incsearch' EXTERN char_u *p_icm; // 'inccommand' EXTERN int p_im; // 'insertmode' EXTERN char_u *p_isf; // 'isfname' EXTERN char_u *p_isi; // 'isident' EXTERN char_u *p_isp; // 'isprint' EXTERN int p_js; // 'joinspaces' EXTERN char_u *p_kp; // 'keywordprg' EXTERN char_u *p_km; // 'keymodel' EXTERN char_u *p_langmap; // 'langmap' EXTERN int p_lnr; // 'langnoremap' EXTERN int p_lrm; // 'langremap' EXTERN char_u *p_lm; // 'langmenu' EXTERN char_u *p_lispwords; // 'lispwords' EXTERN long p_ls; // 'laststatus' EXTERN long p_stal; // 'showtabline' EXTERN char_u *p_lcs; // 'listchars' EXTERN int p_lz; // 'lazyredraw' EXTERN int p_lpl; // 'loadplugins' EXTERN int p_magic; // 'magic' EXTERN char_u *p_mef; // 'makeef' EXTERN char_u *p_mp; // 'makeprg' EXTERN char_u *p_cc; // 'colorcolumn' EXTERN int p_cc_cols[256]; // array for 'colorcolumn' columns EXTERN long p_mat; // 'matchtime' EXTERN long p_mco; // 'maxcombine' EXTERN long p_mfd; // 'maxfuncdepth' EXTERN long p_mmd; // 'maxmapdepth' EXTERN long p_mm; // 'maxmem' EXTERN long p_mmp; // 'maxmempattern' EXTERN long p_mmt; // 'maxmemtot' EXTERN long p_mis; // 'menuitems' EXTERN char_u *p_msm; // 'mkspellmem' EXTERN long p_mls; // 'modelines' EXTERN char_u *p_mouse; // 'mouse' EXTERN char_u *p_mousem; // 'mousemodel' EXTERN long p_mouset; // 'mousetime' EXTERN int p_more; // 'more' EXTERN char_u *p_opfunc; // 'operatorfunc' EXTERN char_u *p_para; // 'paragraphs' EXTERN int p_paste; // 'paste' EXTERN char_u *p_pt; // 'pastetoggle' EXTERN char_u *p_pex; // 'patchexpr' EXTERN char_u *p_pm; // 'patchmode' EXTERN char_u *p_path; // 'path' EXTERN char_u *p_cdpath; // 'cdpath' EXTERN long p_rdt; // 'redrawtime' EXTERN int p_remap; // 'remap' EXTERN long p_re; // 'regexpengine' EXTERN long p_report; // 'report' EXTERN long p_pvh; // 'previewheight' EXTERN int p_ari; // 'allowrevins' EXTERN int p_ri; // 'revins' EXTERN int p_ru; // 'ruler' EXTERN char_u *p_ruf; // 'rulerformat' EXTERN char_u *p_pp; // 'packpath' EXTERN char_u *p_rtp; // 'runtimepath' EXTERN long p_scbk; // 'scrollback' EXTERN long p_sj; // 'scrolljump' EXTERN long p_so; // 'scrolloff' EXTERN char_u *p_sbo; // 'scrollopt' EXTERN char_u *p_sections; // 'sections' EXTERN int p_secure; // 'secure' EXTERN char_u *p_sel; // 'selection' EXTERN char_u *p_slm; // 'selectmode' EXTERN char_u *p_ssop; // 'sessionoptions' EXTERN unsigned ssop_flags; # ifdef IN_OPTION_C /* Also used for 'viewoptions'! */ static char *(p_ssop_values[]) = {"buffers", "winpos", "resize", "winsize", "localoptions", "options", "help", "blank", "globals", "slash", "unix", "sesdir", "curdir", "folds", "cursor", "tabpages", NULL}; # endif # define SSOP_BUFFERS 0x001 # define SSOP_WINPOS 0x002 # define SSOP_RESIZE 0x004 # define SSOP_WINSIZE 0x008 # define SSOP_LOCALOPTIONS 0x010 # define SSOP_OPTIONS 0x020 # define SSOP_HELP 0x040 # define SSOP_BLANK 0x080 # define SSOP_GLOBALS 0x100 # define SSOP_SLASH 0x200 # define SSOP_UNIX 0x400 # define SSOP_SESDIR 0x800 # define SSOP_CURDIR 0x1000 # define SSOP_FOLDS 0x2000 # define SSOP_CURSOR 0x4000 # define SSOP_TABPAGES 0x8000 EXTERN char_u *p_sh; /* 'shell' */ EXTERN char_u *p_shcf; /* 'shellcmdflag' */ EXTERN char_u *p_sp; /* 'shellpipe' */ EXTERN char_u *p_shq; /* 'shellquote' */ EXTERN char_u *p_sxq; /* 'shellxquote' */ EXTERN char_u *p_sxe; /* 'shellxescape' */ EXTERN char_u *p_srr; /* 'shellredir' */ EXTERN int p_stmp; /* 'shelltemp' */ #ifdef BACKSLASH_IN_FILENAME EXTERN int p_ssl; /* 'shellslash' */ #endif EXTERN char_u *p_stl; // 'statusline' EXTERN int p_sr; // 'shiftround' EXTERN char_u *p_shm; // 'shortmess' EXTERN char_u *p_sbr; // 'showbreak' EXTERN int p_sc; // 'showcmd' EXTERN int p_sft; // 'showfulltag' EXTERN int p_sm; // 'showmatch' EXTERN int p_smd; // 'showmode' EXTERN long p_ss; // 'sidescroll' EXTERN long p_siso; // 'sidescrolloff' EXTERN int p_scs; // 'smartcase' EXTERN int p_sta; // 'smarttab' EXTERN int p_sb; // 'splitbelow' EXTERN long p_tpm; // 'tabpagemax' EXTERN char_u *p_tal; // 'tabline' EXTERN char_u *p_sps; // 'spellsuggest' EXTERN int p_spr; // 'splitright' EXTERN int p_sol; // 'startofline' EXTERN char_u *p_su; // 'suffixes' EXTERN char_u *p_swb; // 'switchbuf' EXTERN unsigned swb_flags; #ifdef IN_OPTION_C static char *(p_swb_values[]) = { "useopen", "usetab", "split", "newtab", "vsplit", NULL }; #endif #define SWB_USEOPEN 0x001 #define SWB_USETAB 0x002 #define SWB_SPLIT 0x004 #define SWB_NEWTAB 0x008 #define SWB_VSPLIT 0x010 EXTERN int p_tbs; ///< 'tagbsearch' EXTERN char_u *p_tc; ///< 'tagcase' EXTERN unsigned tc_flags; ///< flags from 'tagcase' #ifdef IN_OPTION_C static char *(p_tc_values[]) = { "followic", "ignore", "match", "followscs", "smart", NULL }; #endif #define TC_FOLLOWIC 0x01 #define TC_IGNORE 0x02 #define TC_MATCH 0x04 #define TC_FOLLOWSCS 0x08 #define TC_SMART 0x10 EXTERN long p_tl; ///< 'taglength' EXTERN int p_tr; ///< 'tagrelative' EXTERN char_u *p_tags; ///< 'tags' EXTERN int p_tgst; ///< 'tagstack' EXTERN int p_tbidi; ///< 'termbidi' EXTERN int p_terse; ///< 'terse' EXTERN int p_to; ///< 'tildeop' EXTERN int p_timeout; ///< 'timeout' EXTERN long p_tm; ///< 'timeoutlen' EXTERN int p_title; ///< 'title' EXTERN long p_titlelen; ///< 'titlelen' EXTERN char_u *p_titleold; ///< 'titleold' EXTERN char_u *p_titlestring; ///< 'titlestring' EXTERN char_u *p_tsr; ///< 'thesaurus' EXTERN int p_tgc; ///< 'termguicolors' EXTERN int p_ttimeout; ///< 'ttimeout' EXTERN long p_ttm; ///< 'ttimeoutlen' EXTERN char_u *p_udir; ///< 'undodir' EXTERN long p_ul; ///< 'undolevels' EXTERN long p_ur; ///< 'undoreload' EXTERN long p_uc; ///< 'updatecount' EXTERN long p_ut; ///< 'updatetime' EXTERN char_u *p_fcs; ///< 'fillchar' EXTERN char_u *p_shada; ///< 'shada' EXTERN char_u *p_vdir; ///< 'viewdir' EXTERN char_u *p_vop; ///< 'viewoptions' EXTERN unsigned vop_flags; ///< uses SSOP_ flags EXTERN int p_vb; ///< 'visualbell' EXTERN char_u *p_ve; ///< 'virtualedit' EXTERN unsigned ve_flags; # ifdef IN_OPTION_C static char *(p_ve_values[]) = {"block", "insert", "all", "onemore", NULL}; # endif # define VE_BLOCK 5 /* includes "all" */ # define VE_INSERT 6 /* includes "all" */ # define VE_ALL 4 # define VE_ONEMORE 8 EXTERN long p_verbose; /* 'verbose' */ #ifdef IN_OPTION_C char_u *p_vfile = (char_u *)""; /* used before options are initialized */ #else extern char_u *p_vfile; /* 'verbosefile' */ #endif EXTERN int p_warn; // 'warn' EXTERN char_u *p_wop; // 'wildoptions' EXTERN long p_window; // 'window' EXTERN char_u *p_wak; // 'winaltkeys' EXTERN char_u *p_wig; // 'wildignore' EXTERN char_u *p_ww; // 'whichwrap' EXTERN long p_wc; // 'wildchar' EXTERN long p_wcm; // 'wildcharm' EXTERN int p_wic; // 'wildignorecase' EXTERN char_u *p_wim; // 'wildmode' EXTERN int p_wmnu; // 'wildmenu' EXTERN long p_wh; // 'winheight' EXTERN long p_wmh; // 'winminheight' EXTERN long p_wmw; // 'winminwidth' EXTERN long p_wiw; // 'winwidth' EXTERN int p_ws; // 'wrapscan' EXTERN int p_write; // 'write' EXTERN int p_wa; // 'writeany' EXTERN int p_wb; // 'writebackup' EXTERN long p_wd; // 'writedelay' EXTERN int p_force_on; ///< options that cannot be turned off. EXTERN int p_force_off; ///< options that cannot be turned on. /* * "indir" values for buffer-local opions. * These need to be defined globally, so that the BV_COUNT can be used with * b_p_scriptID[]. */ enum { BV_AI = 0 , BV_AR , BV_BH , BV_BKC , BV_BT , BV_EFM , BV_GP , BV_MP , BV_BIN , BV_BL , BV_BOMB , BV_CI , BV_CIN , BV_CINK , BV_CINO , BV_CINW , BV_CM , BV_CMS , BV_COM , BV_CPT , BV_DICT , BV_TSR , BV_CFU , BV_DEF , BV_INC , BV_EOL , BV_FIXEOL , BV_EP , BV_ET , BV_FENC , BV_FP , BV_BEXPR , BV_FEX , BV_FF , BV_FLP , BV_FO , BV_FT , BV_IMI , BV_IMS , BV_INDE , BV_INDK , BV_INEX , BV_INF , BV_ISK , BV_KMAP , BV_KP , BV_LISP , BV_LW , BV_MA , BV_ML , BV_MOD , BV_MPS , BV_NF , BV_OFU , BV_PATH , BV_PI , BV_QE , BV_RO , BV_SCBK , BV_SI , BV_SMC , BV_SYN , BV_SPC , BV_SPF , BV_SPL , BV_STS , BV_SUA , BV_SW , BV_SWF , BV_TAGS , BV_TC , BV_TS , BV_TW , BV_TX , BV_UDF , BV_UL , BV_WM , BV_COUNT /* must be the last one */ }; /* * "indir" values for window-local options. * These need to be defined globally, so that the WV_COUNT can be used in the * window structure. */ enum { WV_LIST = 0 , WV_ARAB , WV_COCU , WV_COLE , WV_CRBIND , WV_BRI , WV_BRIOPT , WV_DIFF , WV_FDC , WV_FEN , WV_FDI , WV_FDL , WV_FDM , WV_FML , WV_FDN , WV_FDE , WV_FDT , WV_FMR , WV_LBR , WV_NU , WV_RNU , WV_NUW , WV_PVW , WV_RL , WV_RLC , WV_SCBIND , WV_SCROLL , WV_SPELL , WV_CUC , WV_CUL , WV_CC , WV_STL , WV_WFH , WV_WFW , WV_WRAP , WV_SCL , WV_WINHL , WV_COUNT // must be the last one }; /* Value for b_p_ul indicating the global value must be used. */ #define NO_LOCAL_UNDOLEVEL -123456 #define SB_MAX 100000 // Maximum 'scrollback' value. #endif // NVIM_OPTION_DEFS_H