draft
This commit is contained in:
commit
7b40b51027
50
lua/copy_path/init.lua
Normal file
50
lua/copy_path/init.lua
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
local M = {
|
||||||
|
path = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
function M.copy_file_path()
|
||||||
|
local file_path = vim.fn.expand('<cWORD>')
|
||||||
|
|
||||||
|
if file_path == '' then
|
||||||
|
print('No file path found under the cursor')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
M.path = file_path
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.open_file()
|
||||||
|
local path = M.path
|
||||||
|
|
||||||
|
if path == nil or path == '' then
|
||||||
|
print('Register "c" is empty')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- possible path, path:<line>, path:<line>:<col>, path:<line>:<col>:
|
||||||
|
local pattern = "^([^:]*):?(%d*):?(%d*):?$"
|
||||||
|
|
||||||
|
local file_path, line_number, line_col = string.match(path, pattern)
|
||||||
|
|
||||||
|
if line_number and line_number == "" then
|
||||||
|
line_number = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
if line_col and line_col == "" then
|
||||||
|
line_col = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
if file_path and line_number then
|
||||||
|
line_number = tonumber(line_number)
|
||||||
|
line_col = (line_col and tonumber(line_col) - 1) or 0
|
||||||
|
vim.cmd('edit ' .. file_path)
|
||||||
|
vim.api.nvim_win_set_cursor(0, {line_number, line_col})
|
||||||
|
elseif file_path and file_path ~= "" then
|
||||||
|
vim.cmd('edit ' .. file_path)
|
||||||
|
else
|
||||||
|
print('Invalid format in register "c". Expected "filepath:linenumber" but get', path)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
|
|
9
readme.md
Normal file
9
readme.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
### Copy path
|
||||||
|
|
||||||
|
This plugin allows you to copy the path that the cursor points to in the vim, and then open this file in any buffer
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
vim.keymap.set("n", "gy", require("copy_path").copy_file_path)
|
||||||
|
vim.keymap.set("n", "gp", require("copy_path").open_file)
|
||||||
|
```
|
Loading…
Reference in a new issue