9月12日·星期六 10:00·来源:InfoQ

Neovim 加入 vim.async:告别回调地狱

Neovim 在 Lua 标准库 vim.async 命名空间下推出原生结构化并发库,为异步工作流提供标准化编排方式,且不阻塞主事件循环。此前插件依赖 vim.uv 或 plenary.nvim、async.nvim 等外部库,易导致回调嵌套和协程实现分裂。新模型通过 vim.async.run() 创建 Task,采用协作式调度,await() 等待时暂停执行帧并交还事件循环。框架强制父子任务关系,子任务未处理异常会传播并触发兄弟任务取消,Task() 可提升为独立顶层任务。同时提供 semaphore()、timeout()、iter() 和 pawait() 等原语。社区反响积极,认为统一抽象解决了插件依赖冲突等痛点。
本文摘要由千智坊基于公开报道整理,查看完整内容:阅读原文(InfoQ)→