diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2024-04-15 04:33:09 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-15 04:33:09 -0700 |
commit | 57adf8c6e01d9395eb52fe03571c535571efdc4b (patch) | |
tree | f5f999287509f2970c4f9034934fbecdfadb83ca /runtime/lua/vim/_editor.lua | |
parent | 4ec8fd43bfdf1924ee03e07afc8a46dfdd3c9b12 (diff) | |
download | rneovim-57adf8c6e01d9395eb52fe03571c535571efdc4b.tar.gz rneovim-57adf8c6e01d9395eb52fe03571c535571efdc4b.tar.bz2 rneovim-57adf8c6e01d9395eb52fe03571c535571efdc4b.zip |
fix(vim.ui): open() may wait indefinitely #28325
Problem:
vim.ui.open "locks up" Nvim if the spawned process does not terminate. #27986
Solution:
- Change `vim.ui.open()`:
- Do not call `wait()`.
- Return a `SystemObj`. The caller can decide if it wants to `wait()`.
- Change `gx` to `wait()` only a short time.
- Allows `gx` to show a message if the command fails, without the
risk of waiting forever.
Diffstat (limited to 'runtime/lua/vim/_editor.lua')
-rw-r--r-- | runtime/lua/vim/_editor.lua | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/runtime/lua/vim/_editor.lua b/runtime/lua/vim/_editor.lua index 18f6cfa4ba..a40b298a37 100644 --- a/runtime/lua/vim/_editor.lua +++ b/runtime/lua/vim/_editor.lua @@ -121,6 +121,7 @@ vim.log = { --- asynchronously. Receives SystemCompleted object, see return of SystemObj:wait(). --- --- @return vim.SystemObj Object with the fields: +--- - cmd (string[]) Command name and args --- - pid (integer) Process ID --- - wait (fun(timeout: integer|nil): SystemCompleted) Wait for the process to complete. Upon --- timeout the process is sent the KILL signal (9) and the exit code is set to 124. Cannot |