From f72731226494372aa5e41bab3e0bacd81a4c27d3 Mon Sep 17 00:00:00 2001 From: sharezhou Date: Fri, 2 Aug 2024 22:06:28 +0800 Subject: [PATCH 1/3] Optimize start_with functions --- lua/gp/helper.lua | 4 ++++ lua/gp/init.lua | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lua/gp/helper.lua b/lua/gp/helper.lua index d82da999..330ddcfd 100644 --- a/lua/gp/helper.lua +++ b/lua/gp/helper.lua @@ -157,6 +157,10 @@ end ---@param str string # string to check ---@param start string # string to check for _H.starts_with = function(str, start) + if vim.fn.has("win32") then + str = str:gsub("\\", "/") + start = start:gsub("\\", "/") + end return str:sub(1, #start) == start end diff --git a/lua/gp/init.lua b/lua/gp/init.lua index 1fa5b0aa..3e3ab170 100644 --- a/lua/gp/init.lua +++ b/lua/gp/init.lua @@ -406,10 +406,6 @@ end M.not_chat = function(buf, file_name) file_name = vim.fn.resolve(file_name) local chat_dir = vim.fn.resolve(M.config.chat_dir) - if vim.fn.has("win32") then - file_name = file_name:gsub("\\", "/") - chat_dir = chat_dir:gsub("\\", "/") - end if not M.helpers.starts_with(file_name, chat_dir) then return "resolved file (" .. file_name .. ") not in chat dir (" .. chat_dir .. ")" end From 743029b7c2c891681574d786fdf89269f503a2d1 Mon Sep 17 00:00:00 2001 From: sharezhou Date: Sat, 3 Aug 2024 15:40:33 +0800 Subject: [PATCH 2/3] Fix `ChatToggle` not create new chat --- lua/gp/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/gp/init.lua b/lua/gp/init.lua index 25b163a8..eec0bda6 100644 --- a/lua/gp/init.lua +++ b/lua/gp/init.lua @@ -808,7 +808,7 @@ M.cmd.ChatToggle = function(params, system_prompt, agent) if params.range ~= 2 then -- check if last.md chat file exists and open it local last = M.config.chat_dir .. "/last.md" - if vim.fn.filereadable(last) == 1 then + if vim.fn.filereadable(last) == 1 and last ~= vim.fn.resolve(last) then -- resolve symlink last = vim.fn.resolve(last) M.open_buf(last, M.resolve_buf_target(params), M._toggle_kind.chat, true) From c57a21e8691fb4614e8d0b5ac0488ead70b51460 Mon Sep 17 00:00:00 2001 From: sharezhou Date: Sat, 3 Aug 2024 16:36:15 +0800 Subject: [PATCH 3/3] The grep command does not exclude symbolic links in Windows --- lua/gp/tasker.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/gp/tasker.lua b/lua/gp/tasker.lua index df630e3c..b0867312 100644 --- a/lua/gp/tasker.lua +++ b/lua/gp/tasker.lua @@ -193,7 +193,7 @@ M.grep_directory = function(buf, directory, pattern, callback) -- strip leading and trailing non alphanumeric characters local re = pattern:gsub("^%W*(.-)%W*$", "%1") - M.run(buf, "grep", { "-irEn", "--null", pattern, directory }, function(c, _, stdout, _) + M.run(buf, "grep", { "-irEn", "--null", "--exclude=last.md", pattern, directory }, function(c, _, stdout, _) local results = {} if c ~= 0 then callback(results, re)