# HG changeset patch # User Bram Moolenaar # Date 1370697888 -7200 # Node ID 220bdea4f57919c290d92b1f6c83a7252cd660b6 # Parent 8adbe7dae7fd7f5f376ff7625b7b2ef57f3f947f updated for version 7.3.1148 Problem: No command line completion for ":syntime". Solution: Implement the completion. (Dominique Pelle) diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt --- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -1242,6 +1242,7 @@ completion can be enabled: -complete=shellcmd Shell command -complete=sign |:sign| suboptions -complete=syntax syntax file names |'syntax'| + -complete=syntime |:syntime| suboptions -complete=tag tags -complete=tag_listfiles tags, file names are shown when CTRL-D is hit -complete=user user names diff --git a/src/ex_cmds.h b/src/ex_cmds.h --- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -926,7 +926,7 @@ EX(CMD_swapname, "swapname", ex_swapname EX(CMD_syntax, "syntax", ex_syntax, EXTRA|NOTRLCOM|CMDWIN), EX(CMD_syntime, "syntime", ex_syntime, - WORD1|TRLBAR|CMDWIN), + NEEDARG|WORD1|TRLBAR|CMDWIN), EX(CMD_syncbind, "syncbind", ex_syncbind, TRLBAR), EX(CMD_t, "t", ex_copymove, diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -3994,6 +3994,12 @@ set_one_cmd_context(xp, buff) xp->xp_pattern = arg; break; #endif +#if defined(FEAT_PROFILE) + case CMD_syntime: + xp->xp_context = EXPAND_SYNTIME; + xp->xp_pattern = arg; + break; +#endif #endif /* FEAT_CMDL_COMPL */ @@ -5436,6 +5442,9 @@ static struct {EXPAND_MAPPINGS, "mapping"}, {EXPAND_MENUS, "menu"}, {EXPAND_OWNSYNTAX, "syntax"}, +#if defined(FEAT_PROFILE) + {EXPAND_SYNTIME, "syntime"}, +#endif {EXPAND_SETTINGS, "option"}, {EXPAND_SHELLCMD, "shellcmd"}, #if defined(FEAT_SIGNS) diff --git a/src/ex_getln.c b/src/ex_getln.c --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -4674,6 +4674,9 @@ ExpandFromContext(xp, pat, num_file, fil #ifdef FEAT_SYN_HL {EXPAND_SYNTAX, get_syntax_name, TRUE, TRUE}, #endif +#ifdef FEAT_PROFILE + {EXPAND_SYNTIME, get_syntime_arg, TRUE, TRUE}, +#endif {EXPAND_HIGHLIGHT, get_highlight_name, TRUE, TRUE}, #ifdef FEAT_AUTOCMD {EXPAND_EVENTS, get_event_name, TRUE, TRUE}, diff --git a/src/proto/syntax.pro b/src/proto/syntax.pro --- a/src/proto/syntax.pro +++ b/src/proto/syntax.pro @@ -20,6 +20,7 @@ int syn_get_sub_char __ARGS((void)); int syn_get_stack_item __ARGS((int i)); int syn_get_foldlevel __ARGS((win_T *wp, long lnum)); void ex_syntime __ARGS((exarg_T *eap)); +char_u *get_syntime_arg __ARGS((expand_T *xp, int idx)); void init_highlight __ARGS((int both, int reset)); int load_colors __ARGS((char_u *name)); void do_highlight __ARGS((char_u *line, int forceit, int init)); diff --git a/src/syntax.c b/src/syntax.c --- a/src/syntax.c +++ b/src/syntax.c @@ -6577,6 +6577,27 @@ syntime_clear() } } +#if defined(FEAT_CMDL_COMPL) || defined(PROTO) +/* + * Function given to ExpandGeneric() to obtain the possible arguments of the + * ":syntime {on,off,clear,report}" command. + */ + char_u * +get_syntime_arg(xp, idx) + expand_T *xp UNUSED; + int idx; +{ + switch (idx) + { + case 0: return (char_u *)"on"; + case 1: return (char_u *)"off"; + case 2: return (char_u *)"clear"; + case 3: return (char_u *)"report"; + } + return NULL; +} +#endif + typedef struct { proftime_T total; @@ -6610,7 +6631,9 @@ syntime_report() { int idx; synpat_T *spp; +# ifdef FEAT_FLOAT proftime_T tm; +# endif int len; proftime_T total_total; int total_count = 0; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1148, +/**/ 1147, /**/ 1146, diff --git a/src/vim.h b/src/vim.h --- a/src/vim.h +++ b/src/vim.h @@ -783,6 +783,7 @@ extern char *(*dyn_libintl_textdomain)(c #define EXPAND_LOCALES 40 #define EXPAND_HISTORY 41 #define EXPAND_USER 42 +#define EXPAND_SYNTIME 43 /* Values for exmode_active (0 is no exmode) */ #define EXMODE_NORMAL 1