From c83f5b854457281f31a9cddcbe13a88d88b23dbe Mon Sep 17 00:00:00 2001 From: Sergei Shishkalov Date: Tue, 6 Jan 2026 05:37:40 +0300 Subject: [PATCH 1/3] fix: don't expect buffer to be loaded to add it to context --- lua/opencode/context.lua | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lua/opencode/context.lua b/lua/opencode/context.lua index 594753f..0fb1824 100644 --- a/lua/opencode/context.lua +++ b/lua/opencode/context.lua @@ -16,8 +16,7 @@ Context.__index = Context local ns_id = vim.api.nvim_create_namespace("OpencodeContext") local function is_buf_valid(buf) - return vim.api.nvim_buf_is_loaded(buf) - and vim.api.nvim_get_option_value("buftype", { buf = buf }) == "" + return vim.api.nvim_get_option_value("buftype", { buf = buf }) == "" and vim.api.nvim_buf_get_name(buf) ~= "" end @@ -26,7 +25,7 @@ local function last_used_valid_win() local latest_last_used = 0 for _, win in ipairs(vim.api.nvim_list_wins()) do local buf = vim.api.nvim_win_get_buf(win) - if is_buf_valid(buf) then + if vim.api.nvim_buf_is_loaded(buf) and is_buf_valid(buf) then local last_used = vim.fn.getbufinfo(buf)[1].lastused or 0 if last_used > latest_last_used then latest_last_used = last_used @@ -311,7 +310,7 @@ function Context:visible_text() local visible = {} for _, win in ipairs(vim.api.nvim_list_wins()) do local buf = vim.api.nvim_win_get_buf(win) - if is_buf_valid(buf) then + if vim.api.nvim_buf_is_loaded(buf) and is_buf_valid(buf) then local start_line = vim.fn.line("w0", win) local end_line = vim.fn.line("w$", win) table.insert( From 37637c1e2f8da63a4bc8d9f90c21b5db5407214b Mon Sep 17 00:00:00 2001 From: Sergei Shishkalov Date: Tue, 6 Jan 2026 05:46:43 +0300 Subject: [PATCH 2/3] Fix code style --- lua/opencode/context.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lua/opencode/context.lua b/lua/opencode/context.lua index 0fb1824..4af36da 100644 --- a/lua/opencode/context.lua +++ b/lua/opencode/context.lua @@ -16,8 +16,7 @@ Context.__index = Context local ns_id = vim.api.nvim_create_namespace("OpencodeContext") local function is_buf_valid(buf) - return vim.api.nvim_get_option_value("buftype", { buf = buf }) == "" - and vim.api.nvim_buf_get_name(buf) ~= "" + return vim.api.nvim_get_option_value("buftype", { buf = buf }) == "" and vim.api.nvim_buf_get_name(buf) ~= "" end local function last_used_valid_win() From 0675b8315d01ae8b81c47513abfdb560b01cf268 Mon Sep 17 00:00:00 2001 From: Sergei Shishkalov Date: Thu, 8 Jan 2026 06:37:11 +0300 Subject: [PATCH 3/3] Do not check for loaded buffer --- lua/opencode/context.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/opencode/context.lua b/lua/opencode/context.lua index 4af36da..5913fd4 100644 --- a/lua/opencode/context.lua +++ b/lua/opencode/context.lua @@ -24,7 +24,7 @@ local function last_used_valid_win() local latest_last_used = 0 for _, win in ipairs(vim.api.nvim_list_wins()) do local buf = vim.api.nvim_win_get_buf(win) - if vim.api.nvim_buf_is_loaded(buf) and is_buf_valid(buf) then + if is_buf_valid(buf) then local last_used = vim.fn.getbufinfo(buf)[1].lastused or 0 if last_used > latest_last_used then latest_last_used = last_used @@ -309,7 +309,7 @@ function Context:visible_text() local visible = {} for _, win in ipairs(vim.api.nvim_list_wins()) do local buf = vim.api.nvim_win_get_buf(win) - if vim.api.nvim_buf_is_loaded(buf) and is_buf_valid(buf) then + if is_buf_valid(buf) then local start_line = vim.fn.line("w0", win) local end_line = vim.fn.line("w$", win) table.insert(