Problem: first completion request blocked the UI with a synchronous vim.system():wait() call, and every subsequent key completion unnecessarily deep-copied the entire cache. Solution: use vim.system with an async callback to initialize the cache without blocking. Queue pending completion requests during loading and serve them once parsing finishes. Return cached keys directly instead of deep-copying. |
||
|---|---|---|
| .. | ||
| ghostty_spec.lua | ||
| helpers.lua | ||
| minimal_init.lua | ||