aboutsummaryrefslogtreecommitdiff
path: root/test/functional/terminal/helpers.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2016-09-30 02:33:50 +0200
committerJustin M. Keyes <justinkz@gmail.com>2016-12-09 18:51:17 +0100
commit97204e1cef4f922cc1f8e67f8a1f2f695d7da826 (patch)
treedac7ed60f3f1f41a9a320da2b7b6774da202f26f /test/functional/terminal/helpers.lua
parent043f85210a06168e36f103950897e00918504f6f (diff)
downloadrneovim-97204e1cef4f922cc1f8e67f8a1f2f695d7da826.tar.gz
rneovim-97204e1cef4f922cc1f8e67f8a1f2f695d7da826.tar.bz2
rneovim-97204e1cef4f922cc1f8e67f8a1f2f695d7da826.zip
os/shell: Throttle :! output, pulse "..." message.
Periodically skip :! spam. This is a "cheat" that works for all UIs and greatly improves responsiveness when :! spams MB or GB of output: :!yes :!while true; do date; done :!git grep '' :grep -r '' * After ~10KB of data is seen from a single :! invocation, output will be skipped for ~1s and three dots "..." will pulse in the bottom-left. Thereafter the behavior alternates at every: * 10KB received * ~1s throttled This also avoids out-of-memory which could happen with large :! outputs. Note: This commit does not change the behavior of execute(':!foo'). execute(':!foo') returns the string ':!foo^M', it captures *only* Vim messages, *not* shell command output. Vim behaves the same way. Use system('foo') for capturing shell command output. Closes #1234 Helped-by: oni-link <knil.ino@gmail.com>
Diffstat (limited to 'test/functional/terminal/helpers.lua')
-rw-r--r--test/functional/terminal/helpers.lua1
1 files changed, 1 insertions, 0 deletions
diff --git a/test/functional/terminal/helpers.lua b/test/functional/terminal/helpers.lua
index aacf109f2f..ae5e6d4b1f 100644
--- a/test/functional/terminal/helpers.lua
+++ b/test/functional/terminal/helpers.lua
@@ -51,6 +51,7 @@ local function screen_setup(extra_height, command)
[7] = {foreground = 130},
[8] = {foreground = 15, background = 1}, -- error message
[9] = {foreground = 4},
+ [10] = {foreground = 2}, -- "Press ENTER" in embedded :terminal session.
})
screen:attach({rgb=false})