Closed1
vim.ui.selectを同期実行にする方法を調べる
vim.ui.selectの組み込みは同期実行だが、ドキュメント上非同期実行を許している。実際dressing.nvimは非同期実行されるみたい
ユーザーの選択を待ってほしいため待つ方法を探す
そもそもdressing.vimはどうやって非同期実行を実現しているのか
vim.scheduleを使っていそう
vim.schedule調べる
:h vim.schedule
vim.schedule({fn}) *vim.schedule()*
Schedules {fn} to be invoked soon by the main event-loop. Useful to avoid
|textlock| or other temporary restrictions.
Parameters: ~
• {fn} (`function`)
次のイベントループに積まれそう
実験
vim.print("1")
vim.schedule(function() vim.print("scheduled") end)
vim.print("2")
-- 1, 2, scheduled
予想通り
ついでに vim.schedule_wrap
も実験する
vim.print("1")
vim.schedule_wrap(function() vim.print("scheduled") end)()
vim.print("2")
-- 1, 2, scheduled
こちらも予想通り
結論
vim.scheduleを待つような機能は提供されていなさそう。無理やりするのも筋が悪いので大人しく非同期に対応する
このスクラップは2024/02/05にクローズされました