Mercurial > vim
diff src/evalfunc.c @ 16127:0375e54f0adc v8.1.1068
patch 8.1.1068: cannot get all the information about current completion
commit https://github.com/vim/vim/commit/fd133323d4e1cc9c0e61c0ce357df4d36ea148e3
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Mar 29 12:20:27 2019 +0100
patch 8.1.1068: cannot get all the information about current completion
Problem: Cannot get all the information about current completion.
Solution: Add complete_info(). (Shougo, Hirohito Higashi, closes https://github.com/vim/vim/issues/4106)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 29 Mar 2019 12:30:06 +0100 |
parents | 518f44125207 |
children | eb087f8a26a8 |
line wrap: on
line diff
--- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -113,6 +113,7 @@ static void f_col(typval_T *argvars, typ static void f_complete(typval_T *argvars, typval_T *rettv); static void f_complete_add(typval_T *argvars, typval_T *rettv); static void f_complete_check(typval_T *argvars, typval_T *rettv); +static void f_complete_info(typval_T *argvars, typval_T *rettv); #endif static void f_confirm(typval_T *argvars, typval_T *rettv); static void f_copy(typval_T *argvars, typval_T *rettv); @@ -593,6 +594,7 @@ static struct fst {"complete", 2, 2, f_complete}, {"complete_add", 1, 1, f_complete_add}, {"complete_check", 0, 0, f_complete_check}, + {"complete_info", 0, 1, f_complete_info}, #endif {"confirm", 1, 4, f_confirm}, {"copy", 1, 1, f_copy}, @@ -2600,6 +2602,29 @@ f_complete_check(typval_T *argvars UNUSE rettv->vval.v_number = compl_interrupted; RedrawingDisabled = saved; } + +/* + * "complete_info()" function + */ + static void +f_complete_info(typval_T *argvars, typval_T *rettv) +{ + list_T *what_list = NULL; + + if (rettv_dict_alloc(rettv) != OK) + return; + + if (argvars[0].v_type != VAR_UNKNOWN) + { + if (argvars[0].v_type != VAR_LIST) + { + emsg(_(e_listreq)); + return; + } + what_list = argvars[0].vval.v_list; + } + get_complete_info(what_list, rettv->vval.v_dict); +} #endif /*