From f3585c8cdedc777572c5ead97165d92e20a2524f Mon Sep 17 00:00:00 2001 From: ShaolunWang Date: Wed, 24 Jul 2024 16:30:59 +0100 Subject: [PATCH] feat: support windows Summary: Add windows support by checking `dll` instead of `so` or `dylib` on windows in `libivy.lua` Author: @ShaolunWang Imported From: https://github.com/AdeAttwood/ivy.nvim/pull/90 Test Plan: None provided provided by the author. Differential Revision: https://ph.baln.co.uk/D7 --- lua/ivy/libivy.lua | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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"