diff --git a/lua/gp/init.lua b/lua/gp/init.lua index 55dcae02..f058c065 100644 --- a/lua/gp/init.lua +++ b/lua/gp/init.lua @@ -1312,13 +1312,22 @@ M.cmd.ChatFinder = function() return end + table.sort(results, function(a, b) + local af = a.file:sub(-24, -11) + local bf = b.file:sub(-24, -11) + if af == bf then + return a.lnum < b.lnum + end + return af > bf + end) + picker_files = {} preview_lines = {} local picker_lines = {} for _, f in ipairs(results) do if f.line:len() > 0 then table.insert(picker_files, dir .. "/" .. f.file) - local fline = string.format("%s:%s %s", f.file:sub(3, -11), f.lnum, f.line) + local fline = string.format("%s:%s %s", f.file:sub(-24, -11), f.lnum, f.line) table.insert(picker_lines, fline) table.insert(preview_lines, tonumber(f.lnum)) end diff --git a/lua/gp/tasker.lua b/lua/gp/tasker.lua index df630e3c..94c30c51 100644 --- a/lua/gp/tasker.lua +++ b/lua/gp/tasker.lua @@ -216,13 +216,6 @@ M.grep_directory = function(buf, directory, pattern, callback) }) end end - table.sort(results, function(a, b) - if a.file == b.file then - return a.lnum < b.lnum - else - return a.file > b.file - end - end) callback(results, re) end) end