Patch 8.0.1649
Problem: No completion for argument list commands.
Solution: Add arglist completion. (Yegappan Lakshmanan, closes #2706)
Files: runtime/doc/eval.txt, runtime/doc/map.txt, src/ex_cmds2.c,
src/ex_docmd.c, src/ex_getln.c, src/proto/ex_cmds2.pro,
src/testdir/test_cmdline.vim, src/vim.h
*** ../vim-8.0.1648/runtime/doc/eval.txt 2018-03-22 23:03:56.114361979
+0100
--- runtime/doc/eval.txt 2018-03-29 14:58:37.439802331 +0200
***************
*** 4454,4459 ****
--- 4469,4475 ----
specifies what for. The following completion types are
supported:
+ arglist file names in argument list
augroup autocmd groups
buffer buffer names
behave :behave suboptions
*** ../vim-8.0.1648/runtime/doc/map.txt 2017-09-17 20:32:15.298326050 +0200
--- runtime/doc/map.txt 2018-03-29 14:58:37.439802331 +0200
***************
*** 1271,1276 ****
--- 1272,1278 ----
However, by specifying one or the other of the following attributes, argument
completion can be enabled:
+ -complete=arglist file names in argument list
-complete=augroup autocmd groups
-complete=buffer buffer names
-complete=behave :behave suboptions
*** ../vim-8.0.1648/src/ex_cmds2.c 2018-03-10 20:27:32.067757685 +0100
--- src/ex_cmds2.c 2018-03-29 15:51:08.887804555 +0200
***************
*** 3314,3319 ****
--- 3314,3334 ----
#endif /* FEAT_LISTCMDS */
+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+ /*
+ * Function given to ExpandGeneric() to obtain the possible arguments of the
+ * argedit and argdelete commands.
+ */
+ char_u *
+ get_arglist_name(expand_T *xp UNUSED, int idx)
+ {
+ if (idx >= ARGCOUNT)
+ return NULL;
+
+ return alist_name(&ARGLIST[idx]);
+ }
+ #endif
+
#ifdef FEAT_EVAL
/*
* ":compiler[!] {name}"
*** ../vim-8.0.1648/src/ex_docmd.c 2018-03-11 14:43:53.080536844 +0100
--- src/ex_docmd.c 2018-03-29 15:52:06.531520954 +0200
***************
*** 4293,4298 ****
--- 4293,4305 ----
break;
#endif
+ case CMD_argdelete:
+ while ((xp->xp_pattern = vim_strchr(arg, ' ')) != NULL)
+ arg = xp->xp_pattern + 1;
+ xp->xp_context = EXPAND_ARGLIST;
+ xp->xp_pattern = arg;
+ break;
+
#endif /* FEAT_CMDL_COMPL */
default:
***************
*** 5879,5884 ****
--- 5886,5892 ----
char *name;
} command_complete[] =
{
+ {EXPAND_ARGLIST, "arglist"},
{EXPAND_AUGROUP, "augroup"},
{EXPAND_BEHAVE, "behave"},
{EXPAND_BUFFERS, "buffer"},
*** ../vim-8.0.1648/src/ex_getln.c 2018-03-04 18:07:04.252592449 +0100
--- src/ex_getln.c 2018-03-29 15:31:23.273186817 +0200
***************
*** 4989,4994 ****
--- 4989,4995 ----
#endif
{EXPAND_ENV_VARS, get_env_name, TRUE, TRUE},
{EXPAND_USER, get_users, TRUE, FALSE},
+ {EXPAND_ARGLIST, get_arglist_name, TRUE, FALSE},
};
int i;
*** ../vim-8.0.1648/src/proto/ex_cmds2.pro 2018-02-11 19:06:20.269418910
+0100
--- src/proto/ex_cmds2.pro 2018-03-29 14:58:37.443802305 +0200
***************
*** 67,72 ****
--- 67,73 ----
void ex_argadd(exarg_T *eap);
void ex_argdelete(exarg_T *eap);
void ex_listdo(exarg_T *eap);
+ char_u *get_arglist_name(expand_T *xp, int idx);
void ex_compiler(exarg_T *eap);
void ex_runtime(exarg_T *eap);
int do_in_path(char_u *path, char_u *name, int flags, void (*callback)(char_u
*fname, void *ck), void *cookie);
*** ../vim-8.0.1648/src/testdir/test_cmdline.vim 2017-10-28
17:53:00.387998480 +0200
--- src/testdir/test_cmdline.vim 2018-03-29 14:58:37.443802305 +0200
***************
*** 137,142 ****
--- 137,147 ----
let l = getcompletion('v:notexists', 'var')
call assert_equal([], l)
+ args a.c b.c
+ let l = getcompletion('', 'arglist')
+ call assert_equal(['a.c', 'b.c'], l)
+ %argdelete
+
let l = getcompletion('', 'augroup')
call assert_true(index(l, 'END') >= 0)
let l = getcompletion('blahblah', 'augroup')
*** ../vim-8.0.1648/src/vim.h 2018-03-16 20:46:52.674189967 +0100
--- src/vim.h 2018-03-29 14:58:37.443802305 +0200
***************
*** 781,786 ****
--- 781,787 ----
#define EXPAND_PACKADD 45
#define EXPAND_MESSAGES 46
#define EXPAND_MAPCLEAR 47
+ #define EXPAND_ARGLIST 48
/* Values for exmode_active (0 is no exmode) */
#define EXMODE_NORMAL 1
*** ../vim-8.0.1648/src/version.c 2018-03-27 21:11:56.446547165 +0200
--- src/version.c 2018-03-29 15:31:35.537140590 +0200
***************
*** 768,769 ****
--- 764,767 ----
{ /* Add new patch number below this line */
+ /**/
+ 1649,
/**/
--
>From "know your smileys":
y:-) Bad toupee
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.