/* vi:set ts=8 sts=4 sw=4:
*
* VIM - Vi IMproved by Bram Moolenaar
*
* Do ":help uganda" in Vim to read copying and usage conditions.
* Do ":help credits" in Vim to see a list of people who contributed.
*/
/*
* feature.h: Defines for optional code and preferences
*
* Edit this file to include/exclude parts of Vim, before compiling.
* The only other file that may be edited is Makefile, it contains machine
* specific options.
*
* To include specific options, change the "#if*" and "#endif" into comments,
* or uncomment the "#define".
* To exclude specific options, change the "#define" into a comment.
*/
/*
* When adding a new feature:
* - Add a #define below.
* - Add a message in the table above ex_version().
* - Add a string to f_has().
* - Add a feature to ":help feature-list" in doc/eval.txt.
* - Add feature to ":help +feature-list" in doc/various.txt.
* - Add comment for the documentation of commands that use the feature.
*/
/*
* Basic choices:
* ==============
*
* +tiny almost no features enabled, not even multiple windows
* +small few features enabled, as basic as possible
* +normal A default selection of features enabled
* +big many features enabled, as rich as possible.
* +huge all possible features enabled.
*
* When +small is used, +tiny is also included. +normal implies +small, etc.
*/
/*
* Uncomment one of these to override the default. For unix use a configure
* argument, see Makefile.
*/
#if !defined(FEAT_TINY) && !defined(FEAT_SMALL) && !defined(FEAT_NORMAL) \
&& !defined(FEAT_BIG) && !defined(FEAT_HUGE)
/* #define FEAT_TINY */
/* #define FEAT_SMALL */
/* #define FEAT_NORMAL */
/* #define FEAT_BIG */
/* #define FEAT_HUGE */
#endif
/*
* These executables are made available with the +big feature, because they
* are supposed to have enough RAM: Win32 (console & GUI), dos32, OS/2 and VMS.
* The dos16 version has very little RAM available, use +small.
*/
#if !defined(FEAT_TINY) && !defined(FEAT_SMALL) && !defined(FEAT_NORMAL) \
&& !defined(FEAT_BIG) && !defined(FEAT_HUGE)
# if defined(MSWIN) || defined(DJGPP) || defined(OS2) || defined(VMS) || defined(MACOS) || defined(AMIGA)
# define FEAT_BIG
# else
# ifdef MSDOS
# define FEAT_SMALL
# else
# define FEAT_NORMAL
# endif
# endif
#endif
/*
* Each feature implies including the "smaller" ones.
*/
#ifdef FEAT_HUGE
# define FEAT_BIG
#endif
#ifdef FEAT_BIG
# define FEAT_NORMAL
#endif
#ifdef FEAT_NORMAL
# define FEAT_SMALL
#endif
#ifdef FEAT_SMALL
# define FEAT_TINY
#endif
/*
* Optional code (see ":help +feature-list")
* =============
*/
/*
* +windows Multiple windows. Without this there is no help
* window and no status lines.
*/
#ifdef FEAT_SMALL
# define FEAT_WINDOWS
#endif
/*
* +listcmds Vim commands for the buffer list and the argument
* list. Without this there is no ":buffer" ":bnext",
* ":bdel", ":argdelete", etc.
*/
#ifdef FEAT_NORMAL
# define FEAT_LISTCMDS
#endif
/*
* +vertsplit Vertically split windows.
*/
#ifdef FEAT_NORMAL
# define FEAT_VERTSPLIT
#endif
#if defined(FEAT_VERTSPLIT) && !defined(FEAT_WINDOWS)
# define FEAT_WINDOWS
#endif
/*
* +cmdhist Command line history.
*/
#ifdef FEAT_SMALL
# define FEAT_CMDHIST
#endif
/*
* Message history is fixed at 200 message, 20 for the tiny version.
*/
#ifdef FEAT_SMALL
# define MAX_MSG_HIST_LEN 200
#else
# define MAX_MSG_HIST_LEN 20
#endif
/*
* +jumplist Jumplist, CTRL-O and CTRL-I commands.
*/
#ifdef FEAT_SMALL
# define FEAT_JUMPLIST
#endif
/* the cmdline-window requires FEAT_VERTSPLIT and FEAT_CMDHIST */
#if defined(FEAT_VERTSPLIT) && defined(FEAT_CMDHIST)
# define FEAT_CMDWIN
#endif
/*
* +folding Fold lines.
*/
#ifdef FEAT_NORMAL
# define FEAT_FOLDING
#endif
/*
* +digraphs Digraphs.
* In insert mode and on the command line you will be
* able to use digraphs. The CTRL-K command will work.
* Define OLD_DIGRAPHS to get digraphs compatible with
* Vim 5.x. The new ones are from RFC 1345.
*/
#ifdef FEAT_NORMAL
# define FEAT_DIGRAPHS
/* #define OLD_DIGRAPHS */
#endif
/*
* +langmap 'langmap' option. Only useful when you put your
* keyboard in a special language mode, e.g. for typing
* greek.
*/
#ifdef FEAT_BIG
# define FEAT_LANGMAP
#endif
/*
* +keymap 'keymap' option. Allows you to map typed keys in
* Insert mode for a special language.
*/
#ifdef FEAT_BIG
# define FEAT_KEYMAP
#endif
/*
* +localmap Mappings and abbreviations local to a buffer.
*/
#ifdef FEAT_NORMAL
# define FEAT_LOCALMAP
#endif
/*
* +insert_expand CTRL-N/CTRL-P/CTRL-X in insert mode. Takes about
* 4Kbyte of code.
*/
#ifdef FEAT_NORMAL
# define FEAT_INS_EXPAND
#endif
/*
* +cmdline_compl completion of mappings/abbreviations in cmdline mode.
* Takes a few Kbyte of code.
*/
#ifdef FEAT_NORMAL
# define FEAT_CMDL_COMPL
#endif
#ifdef FEAT_NORMAL
# define VIM_BACKTICK /* internal backtick expansion */
#endif
/*
* +visual Visual mode.
* +visualextra Extra features for Visual mode (mostly block operators).
*/
#ifdef FEAT_SMALL