fix(marks): preserve uri filenames with path_expand (#3029)
This commit is contained in:
@@ -1117,7 +1117,7 @@ internal.marks = function(opts)
|
|||||||
line = line,
|
line = line,
|
||||||
lnum = lnum,
|
lnum = lnum,
|
||||||
col = col,
|
col = col,
|
||||||
filename = vim.fs.normalize(v.file or bufname),
|
filename = utils.path_expand(v.file or bufname),
|
||||||
}
|
}
|
||||||
-- non alphanumeric marks goes to last
|
-- non alphanumeric marks goes to last
|
||||||
if mark:match "%w" then
|
if mark:match "%w" then
|
||||||
|
|||||||
@@ -39,6 +39,10 @@ utils.path_expand = function(path)
|
|||||||
path = { path, { "string" } },
|
path = { path, { "string" } },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if utils.is_uri(path) then
|
||||||
|
return path
|
||||||
|
end
|
||||||
|
|
||||||
if path:match "^[%%#<]" then
|
if path:match "^[%%#<]" then
|
||||||
path = vim.fn.expand(path)
|
path = vim.fn.expand(path)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -38,6 +38,26 @@ describe("path_expand()", function()
|
|||||||
local path_newline = [[/home/user/hello\nworld]]
|
local path_newline = [[/home/user/hello\nworld]]
|
||||||
eq(path_newline, utils.path_expand(path_newline))
|
eq(path_newline, utils.path_expand(path_newline))
|
||||||
end)
|
end)
|
||||||
|
describe("early return for uri", function()
|
||||||
|
local uris = {
|
||||||
|
[[https://www.example.com/index.html]],
|
||||||
|
[[ftp://ftp.example.com/files/document.pdf]],
|
||||||
|
[[mailto:user@example.com]],
|
||||||
|
[[tel:+1234567890]],
|
||||||
|
[[file:///home/user/documents/report.docx]],
|
||||||
|
[[news:comp.lang.python]],
|
||||||
|
[[ldap://ldap.example.com:389/dc=example,dc=com]],
|
||||||
|
[[git://github.com/user/repo.git]],
|
||||||
|
[[steam://run/123456]],
|
||||||
|
[[magnet:?xt=urn:btih:6B4C3343E1C63A1BC36AEB8A3D1F52C4EDEEB096]],
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, uri in ipairs(uris) do
|
||||||
|
it(uri, function()
|
||||||
|
eq(uri, utils.path_expand(uri))
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe("is_uri", function()
|
describe("is_uri", function()
|
||||||
|
|||||||
Reference in New Issue
Block a user