diff options
author | Luuk van Baal <luukvbaal@gmail.com> | 2025-03-01 16:18:43 +0100 |
---|---|---|
committer | Luuk van Baal <luukvbaal@gmail.com> | 2025-03-03 11:30:15 +0100 |
commit | 124c655f56bcf31dfeaf91caee2e5f2fcbbfa089 (patch) | |
tree | c6622845253b60c35528d81cc632bba57e809504 /test/functional/ui/messages_spec.lua | |
parent | f7fa6d12668ab696fb1d64e04cfac6734cf86a4d (diff) | |
download | rneovim-124c655f56bcf31dfeaf91caee2e5f2fcbbfa089.tar.gz rneovim-124c655f56bcf31dfeaf91caee2e5f2fcbbfa089.tar.bz2 rneovim-124c655f56bcf31dfeaf91caee2e5f2fcbbfa089.zip |
feat(messages): "g<" mapping for ext_messages
Problem: Cannot use "g<" mapping with ext_messages. Mapping displays
the scrollback buffer since the last command, but the
scrollback buffer is not populated with ext_messages.
Solution: With ext_messages; store messages in the history that otherwise
wouldn't be. Mark them as temporary messages to be deleted when
the scrollback buffer would be cleared. To this end, make the
message history a doubly-linked list such that messages can be
removed from an arbitrary position.
Outlook: Default ext_messages UI might not show the hit-enter prompt
so we want "g<" to work as a recommended way to show messages
for the last command (prompted by an indicator).
Diffstat (limited to 'test/functional/ui/messages_spec.lua')
-rw-r--r-- | test/functional/ui/messages_spec.lua | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua index 4770c5e143..a6577f3ca0 100644 --- a/test/functional/ui/messages_spec.lua +++ b/test/functional/ui/messages_spec.lua @@ -1571,6 +1571,48 @@ stack traceback: end, }) end) + + it('g< mapping shows recent messages', function() + command('echo "foo" | echo "bar"') + local s1 = [[ + ^ | + {1:~ }|*4 + ]] + screen:expect({ + grid = s1, + messages = { + { + content = { { 'bar' } }, + history = false, + kind = 'echo', + }, + }, + }) + feed(':messages<CR>g<lt>') + screen:expect({ + grid = [[ + ^ | + {1:~ }|*4 + ]], + messages = { + { + content = { { 'Press ENTER or type command to continue', 6, 18 } }, + history = false, + kind = 'return_prompt', + }, + }, + msg_history = { + { + content = { { 'foo' } }, + kind = 'echo', + }, + { + content = { { 'bar' } }, + kind = 'echo', + }, + }, + }) + end) end) describe('ui/builtin messages', function() |