{"tabpanel", "tpl", P_STRING|P_VI_DEF|P_RALL,
(char_u *)&p_tpl, PV_NONE, NULL, NULL,
{(char_u *)"", (char_u *)0L} SCTX_INIT},
- {"tabpanelopt","tplo", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
+ {"tabpanelopt","tplo", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_COLON
+ |P_NODUP,
(char_u *)&p_tplo, PV_NONE, did_set_tabpanelopt,
expand_set_tabpanelopt,
{(char_u *)"", (char_u *)0L}
static char *(p_briopt_values[]) = {"shift:", "min:", "sbr", "list:", "column:", NULL};
#endif
#if defined(FEAT_TABPANEL)
-static char *(p_tpl_values[]) = {"wrap", "align:", "columns:", "vert:", NULL};
+// Note: Keep this in sync with tabpanelopt_changed()
+static char *(p_tplo_values[]) = {"align:", "columns:", "vert", NULL};
+static char *(p_tplo_align_values[]) = {"left", "right", NULL};
#endif
#if defined(FEAT_DIFF)
// Note: Keep this in sync with diffopt_changed()
int
expand_set_tabpanelopt(optexpand_T *args, int *numMatches, char_u ***matches)
{
+ expand_T *xp = args->oe_xp;
+
+ if (xp->xp_pattern > args->oe_set_arg && *(xp->xp_pattern-1) == ':')
+ {
+ // Within "align:", we have a subgroup of possible options.
+ int align_len = (int)STRLEN("align:");
+ if (xp->xp_pattern - args->oe_set_arg >= align_len &&
+ STRNCMP(xp->xp_pattern - align_len, "align:", align_len) == 0)
+ {
+ return expand_set_opt_string(
+ args,
+ p_tplo_align_values,
+ ARRAY_LENGTH(p_tplo_align_values) - 1,
+ numMatches,
+ matches);
+ }
+ return FAIL;
+ }
+
return expand_set_opt_string(
args,
- p_tpl_values,
- ARRAY_LENGTH(p_tpl_values) - 1,
+ p_tplo_values,
+ ARRAY_LENGTH(p_tplo_values) - 1,
numMatches,
matches);
}
p = p_tplo;
while (*p != NUL)
{
- if (STRNCMP(p, "align:left", 10) == 0)
+ if (STRNCMP(p, "align:", 6) == 0)
{
- p += 10;
- new_align = ALIGN_LEFT;
- }
- else if (STRNCMP(p, "align:right", 11) == 0)
- {
- p += 11;
- new_align = ALIGN_RIGHT;
+ p += 6;
+ if (STRNCMP(p, "left", 4) == 0)
+ {
+ p += 4;
+ new_align = ALIGN_LEFT;
+ }
+ else if (STRNCMP(p, "right", 5) == 0)
+ {
+ p += 5;
+ new_align = ALIGN_RIGHT;
+ }
+ else
+ return FAIL;
}
else if (STRNCMP(p, "columns:", 8) == 0 && VIM_ISDIGIT(p[8]))
{
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1403,
/**/
1402,
/**/