Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions lua/recall/telescope.lua
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@ M.extension = function(opts)
})

local function display_entry(entry)
local _, lnum, _ = unpack(entry.value.info.pos)
return entry_layout({
{ config.opts.sign, config.opts.sign_highlight },
entry.value.info.file,
entry.value.char .. ":" .. vim.fn.fnamemodify(entry.value.info.file, ":.") .. ":" .. lnum,
})
end

Expand All @@ -28,12 +29,13 @@ M.extension = function(opts)
return telescope_finders.new_table({
results = marks,
entry_maker = function(entry)
local _, lnum, col = unpack(entry.info.pos)
return {
value = entry,
display = display_entry,
ordinal = entry.char,
lnum = entry.info.pos[2],
col = entry.info.pos[3] - 1,
ordinal = entry.char .. ":" .. vim.fn.fnamemodify(entry.info.file, ":.") .. ":" .. lnum,
lnum = lnum,
col = col - 1,
filename = entry.info.file,
}
end,
Expand Down
33 changes: 30 additions & 3 deletions tests/plenary/recall_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ describe("Recall", function()
local bufnr
local line_count = 100
local temp_paths = {}
local cwd = vim.fn.getcwd()

before_each(function()
local telescope = require("telescope")
Expand All @@ -58,6 +59,10 @@ describe("Recall", function()
set_lines(bufnr, line_count)

local temp_path = luv.os_tmpdir() .. "/nvim-recall-test-" .. luv.hrtime() .. ".txt"
if jit and jit.os == "OSX" then
-- Need to add this path prefix on macos
temp_path = "/private" .. temp_path
end
table.insert(temp_paths, temp_path)

vim.api.nvim_buf_set_name(bufnr, temp_path)
Expand All @@ -74,6 +79,7 @@ describe("Recall", function()
end

temp_paths = {}
vim.api.nvim_set_current_dir(cwd)
end)

it("can toggle marks and show/hide signs", function()
Expand Down Expand Up @@ -165,15 +171,36 @@ describe("Recall", function()

assert.are.equal(#results, 3)

assert.are.equal(results[1].ordinal, "A")
assert.are.equal(results[1].ordinal, "A:" .. temp_paths[1] .. ":1")
assert.are.equal(results[1].lnum, 1)
assert.are.equal(results[1].col, 0)

assert.are.equal(results[2].ordinal, "B:" .. temp_paths[1] .. ":10")
assert.are.equal(results[2].lnum, 10)
assert.are.equal(results[2].col, 0)

assert.are.equal(results[3].ordinal, "C:" .. temp_paths[1] .. ":20")
assert.are.equal(results[3].lnum, 20)
assert.are.equal(results[3].col, 0)

-- Switch to the temp dir to test relative filenames
vim.api.nvim_set_current_dir(vim.fs.dirname(temp_paths[1]))

vim.cmd("Telescope recall")

results = inspect_telescope_results()

assert.are.equal(#results, 3)

assert.are.equal(results[1].ordinal, "A:" .. vim.fn.fnamemodify(temp_paths[1], ":p:.") .. ":1")
assert.are.equal(results[1].lnum, 1)
assert.are.equal(results[1].col, 0)

assert.are.equal(results[2].ordinal, "B")
assert.are.equal(results[2].ordinal, "B:" .. vim.fn.fnamemodify(temp_paths[1], ":p:.") .. ":10")
assert.are.equal(results[2].lnum, 10)
assert.are.equal(results[2].col, 0)

assert.are.equal(results[3].ordinal, "C")
assert.are.equal(results[3].ordinal, "C:" .. vim.fn.fnamemodify(temp_paths[1], ":p:.") .. ":20")
assert.are.equal(results[3].lnum, 20)
assert.are.equal(results[3].col, 0)
end)
Expand Down