From c0d3617e0b45b68abc522778837ff8a472273c15 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sun, 18 Dec 2022 13:41:02 +0100 Subject: [PATCH] feat: check if ffi is available and error if not --- lua/lazy/init.lua | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lua/lazy/init.lua b/lua/lazy/init.lua index 6b316cd..57c48fd 100644 --- a/lua/lazy/init.lua +++ b/lua/lazy/init.lua @@ -4,18 +4,22 @@ local M = {} ---@param spec LazySpec Should be a module name to load, or a plugin spec ---@param opts? LazyConfig function M.setup(spec, opts) - if vim.fn.has("nvim-0.8.0") ~= 1 then - vim.notify("lazy.nvim requires Neovim >= 0.8.0", vim.log.levels.ERROR, { title = "lazy.nvim" }) - return - end if not vim.go.loadplugins then return end - if vim.g.lazy_did_setup then - vim.notify("Re-sourcing your config is not supported with lazy.nvim", vim.log.levels.WARN, { title = "lazy.nvim" }) - return + if vim.fn.has("nvim-0.8.0") ~= 1 then + return vim.notify("lazy.nvim requires Neovim >= 0.8.0", vim.log.levels.ERROR, { title = "lazy.nvim" }) + end + if not pcall(require, "ffi") then + return vim.notify("lazy.nvim requires Neovim built with LuaJIT", vim.log.levels.ERROR, { title = "lazy.nvim" }) + end + if vim.g.lazy_did_setup then + return vim.notify( + "Re-sourcing your config is not supported with lazy.nvim", + vim.log.levels.WARN, + { title = "lazy.nvim" } + ) end - vim.g.lazy_did_setup = true local start = vim.loop.hrtime()