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)  | 
