menu_get(): Do not include empty items

Caused by a typo: `dict` instead of `dic`. Renamed variable to `d` to
make it less similar.
This commit is contained in:
Justin M. Keyes 2019-01-26 21:55:45 +01:00
parent 827ed144fb
commit d760e08fac
2 changed files with 20 additions and 21 deletions

View File

@ -660,7 +660,8 @@ static void free_menu_string(vimmenu_T *menu, int idx)
///
/// @param[in] menu if null, starts from root_menu
/// @param modes, a choice of \ref MENU_MODES
/// @return a dict with name/commands
/// @return dict with name/commands
/// @see show_menus_recursive
/// @see menu_get
static dict_T *menu_get_recursive(const vimmenu_T *menu, int modes)
{
@ -715,9 +716,9 @@ static dict_T *menu_get_recursive(const vimmenu_T *menu, int modes)
// visit recursively all children
list_T *const children_list = tv_list_alloc(kListLenMayKnow);
for (menu = menu->children; menu != NULL; menu = menu->next) {
dict_T *dic = menu_get_recursive(menu, modes);
if (tv_dict_len(dict) > 0) {
tv_list_append_dict(children_list, dic);
dict_T *d = menu_get_recursive(menu, modes);
if (tv_dict_len(d) > 0) {
tv_list_append_dict(children_list, d);
}
}
tv_dict_add_list(dict, S_LEN("submenus"), children_list);

View File

@ -63,19 +63,21 @@ describe('menu_get', function()
before_each(function()
clear()
command('nnoremenu &Test.Test inormal<ESC>')
command('inoremenu Test.Test insert')
command('vnoremenu Test.Test x')
command('cnoremenu Test.Test cmdmode')
command('menu Test.Nested.test level1')
command('menu Test.Nested.Nested2 level2')
command([=[
nnoremenu &Test.Test inormal<ESC>
inoremenu Test.Test insert
vnoremenu Test.Test x
cnoremenu Test.Test cmdmode
menu Test.Nested.test level1
menu Test.Nested.Nested2 level2
command('nnoremenu <script> Export.Script p')
command('tmenu Export.Script This is the tooltip')
command('menu ]Export.hidden thisoneshouldbehidden')
nnoremenu <script> Export.Script p
tmenu Export.Script This is the tooltip
menu ]Export.hidden thisoneshouldbehidden
command('nnoremenu Edit.Paste p')
command('cnoremenu Edit.Paste <C-R>"')
nnoremenu Edit.Paste p
cnoremenu Edit.Paste <C-R>"
]=])
end)
it("path='', modes='a'", function()
@ -306,7 +308,7 @@ describe('menu_get', function()
eq(expected, m)
end)
it('matching path, default modes', function()
it('matching path, all modes', function()
local m = funcs.menu_get("Export", "a")
local expected = {
{
@ -349,8 +351,6 @@ describe('menu_get', function()
name = "Test",
hidden = 0
},
{
}
},
priority = 500,
name = "Test"
@ -379,8 +379,6 @@ describe('menu_get', function()
name = "Test",
hidden = 0
},
{
},
},
priority = 500,
name = "Test",