diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2016-09-19 19:21:18 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-09-19 19:21:18 +0200 |
| commit | d41e8af294d0e23820576a8612a7ec1b37482dee (patch) | |
| tree | b2eb7325368dc87a0aa07666e7b1513362da75a0 /sam.c | |
| parent | 121172e014a6b27f6baf5965a41555e91217d7ec (diff) | |
| download | vis-d41e8af294d0e23820576a8612a7ec1b37482dee.tar.gz vis-d41e8af294d0e23820576a8612a7ec1b37482dee.tar.xz | |
vis: also list :set options in :help output
The help formatting could probably be improved, short
single line help texts are still missing. Patches welcome.
Close #283
Diffstat (limited to 'sam.c')
| -rw-r--r-- | sam.c | 44 |
1 files changed, 44 insertions, 0 deletions
@@ -169,6 +169,50 @@ static const CommandDef cmddef_select = static const CommandDef cmddef_user = { NULL, NULL, CMD_ARGV|CMD_FORCE|CMD_ONCE, NULL, cmd_user }; +/* :set command options */ +typedef struct { + const char *names[3]; /* name and optional alias */ + enum { + OPTION_TYPE_STRING, + OPTION_TYPE_BOOL, + OPTION_TYPE_NUMBER, + OPTION_TYPE_UNSIGNED, + } type; + enum { + OPTION_FLAG_OPTIONAL = 1 << 0, /* value is optional */ + OPTION_FLAG_WINDOW = 1 << 1, /* option requires an active window */ + } flags; + const char *help; /* short, one line help text */ +} OptionDef; + +enum { + OPTION_AUTOINDENT, + OPTION_EXPANDTAB, + OPTION_TABWIDTH, + OPTION_THEME, + OPTION_SYNTAX, + OPTION_SHOW, + OPTION_NUMBER, + OPTION_NUMBER_RELATIVE, + OPTION_CURSOR_LINE, + OPTION_COLOR_COLUMN, + OPTION_HORIZON, +}; + +static const OptionDef options[] = { + [OPTION_AUTOINDENT] = { { "autoindent", "ai" }, OPTION_TYPE_BOOL }, + [OPTION_EXPANDTAB] = { { "expandtab", "et" }, OPTION_TYPE_BOOL }, + [OPTION_TABWIDTH] = { { "tabwidth", "tw" }, OPTION_TYPE_NUMBER }, + [OPTION_THEME] = { { "theme" }, OPTION_TYPE_STRING, }, + [OPTION_SYNTAX] = { { "syntax" }, OPTION_TYPE_STRING, OPTION_FLAG_WINDOW|OPTION_FLAG_OPTIONAL }, + [OPTION_SHOW] = { { "show" }, OPTION_TYPE_STRING, OPTION_FLAG_WINDOW }, + [OPTION_NUMBER] = { { "numbers", "nu" }, OPTION_TYPE_BOOL, OPTION_FLAG_WINDOW }, + [OPTION_NUMBER_RELATIVE] = { { "relativenumbers", "rnu" }, OPTION_TYPE_BOOL, OPTION_FLAG_WINDOW }, + [OPTION_CURSOR_LINE] = { { "cursorline", "cul" }, OPTION_TYPE_BOOL, OPTION_FLAG_WINDOW }, + [OPTION_COLOR_COLUMN] = { { "colorcolumn", "cc" }, OPTION_TYPE_NUMBER, OPTION_FLAG_WINDOW }, + [OPTION_HORIZON] = { { "horizon" }, OPTION_TYPE_UNSIGNED, OPTION_FLAG_WINDOW }, +}; + bool sam_init(Vis *vis) { if (!(vis->cmds = map_new())) return false; |
