diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index f0541ce7..39026253 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -116,8 +116,15 @@ local function pick_win_id() -- Setup UI for _, id in ipairs(selectable) do local char = M.window_picker.chars:sub(i, i) - local ok_status, statusline = pcall(vim.api.nvim_win_get_option, id, "statusline") - local ok_hl, winhl = pcall(vim.api.nvim_win_get_option, id, "winhl") + + local ok_status, statusline, ok_hl, winhl + if vim.fn.has "nvim-0.10" == 1 then + ok_status, statusline = pcall(vim.api.nvim_get_option_value, "statusline", { win = id }) + ok_hl, winhl = pcall(vim.api.nvim_get_option_value, "winhl", { win = id }) + else + ok_status, statusline = pcall(vim.api.nvim_win_get_option, id, "statusline") ---@diagnostic disable-line: deprecated + ok_hl, winhl = pcall(vim.api.nvim_win_get_option, id, "winhl") ---@diagnostic disable-line: deprecated + end win_opts[id] = { statusline = ok_status and statusline or "", @@ -125,8 +132,13 @@ local function pick_win_id() } win_map[char] = id - vim.api.nvim_win_set_option(id, "statusline", "%=" .. char .. "%=") - vim.api.nvim_win_set_option(id, "winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker") + if vim.fn.has "nvim-0.10" == 1 then + vim.api.nvim_set_option_value("statusline", "%=" .. char .. "%=", { win = id }) + vim.api.nvim_set_option_value("winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker", { win = id }) + else + vim.api.nvim_win_set_option(id, "statusline", "%=" .. char .. "%=") ---@diagnostic disable-line: deprecated + vim.api.nvim_win_set_option(id, "winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker") ---@diagnostic disable-line: deprecated + end i = i + 1 if i > #M.window_picker.chars then @@ -145,14 +157,22 @@ local function pick_win_id() -- Restore window options for _, id in ipairs(selectable) do for opt, value in pairs(win_opts[id]) do - vim.api.nvim_win_set_option(id, opt, value) + if vim.fn.has "nvim-0.10" == 1 then + vim.api.nvim_set_option_value(opt, value, { win = id }) + else + vim.api.nvim_win_set_option(id, opt, value) ---@diagnostic disable-line: deprecated + end end end if laststatus == 3 then for _, id in ipairs(not_selectable) do for opt, value in pairs(win_opts[id]) do - vim.api.nvim_win_set_option(id, opt, value) + if vim.fn.has "nvim-0.10" == 1 then + vim.api.nvim_set_option_value(opt, value, { win = id }) + else + vim.api.nvim_win_set_option(id, opt, value) ---@diagnostic disable-line: deprecated + end end end end