diff options
-rw-r--r-- | src/nvim/menu.c | 3 | ||||
-rw-r--r-- | test/functional/ex_cmds/menu_spec.lua | 23 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/nvim/menu.c b/src/nvim/menu.c index 1dece58dfe..9857b8a778 100644 --- a/src/nvim/menu.c +++ b/src/nvim/menu.c @@ -1262,6 +1262,9 @@ void ex_emenu(exarg_T *eap) if (((State & INSERT) || restart_edit) && !current_SID) { mode = (char_u *)"Insert"; idx = MENU_INDEX_INSERT; + } else if (State & CMDLINE) { + mode = (char_u *)"Command"; + idx = MENU_INDEX_CMDLINE; } else if (get_real_state() & VISUAL) { /* Detect real visual mode -- if we are really in visual mode we * don't need to do any guesswork to figure out what the selection diff --git a/test/functional/ex_cmds/menu_spec.lua b/test/functional/ex_cmds/menu_spec.lua index 6af889bf9e..8f4a195fd7 100644 --- a/test/functional/ex_cmds/menu_spec.lua +++ b/test/functional/ex_cmds/menu_spec.lua @@ -1,4 +1,5 @@ local helpers = require('test.functional.helpers') +local Screen = require('test.functional.ui.screen').new(40,4) local clear, execute, nvim = helpers.clear, helpers.execute, helpers.nvim local expect = helpers.expect local feed = helpers.feed @@ -36,3 +37,25 @@ describe(':emenu', function() end) end) + +describe('emenu Edit.Paste while in commandline', function() + before_each(function() + clear() + screen = Screen.new(40, 4) + screen:attach() + end) + + it('ok', function() + nvim('command', 'runtime menu.vim') + feed('ithis is a sentence<esc>^"+yiwo<esc>') + nvim('command', 'emenu Edit.Paste') + feed(':') + nvim('command', 'emenu Edit.Paste') + screen:expect([[ + this is a sentence | + this | + ~ | + :this^ | + ]]) + end) +end) |