diff --git a/lua/ivy/libivy.lua b/lua/ivy/libivy.lua index 36946dc..cb77ce6 100644 --- a/lua/ivy/libivy.lua +++ b/lua/ivy/libivy.lua @@ -1,7 +1,22 @@ local library_path = (function() local root = string.sub(debug.getinfo(1).source, 2, #"/libivy.lua" * -1) local release_path = root .. "../../target/release" - return package.searchpath("libivyrs", release_path .. "/?.so;" .. release_path .. "/?.dylib;") + local current_vim_version = vim.version() + local minimum_supported_version = vim.version.parse "0.9.5" + + local is_windows + + if vim.version.gt(current_vim_version, minimum_supported_version) then + is_windows = vim.uv.os_uname().sysname == "Windows_NT" + else + is_windows = vim.loop.os_uname().sysname == "Windows_NT" + end + + if is_windows then + return package.searchpath("ivyrs", release_path .. "/?.dll;") + else + return package.searchpath("libivyrs", release_path .. "/?.so;" .. release_path .. "/?.dylib;") + end end)() local ffi = require "ffi"