prefill old name when duplicating or renaming
parent
54a121ac11
commit
39187dee12
|
|
@ -1,6 +1,7 @@
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
local logError = vim.log.levels.ERROR
|
local logError = vim.log.levels.ERROR
|
||||||
|
local logWarn = vim.log.levels.WARN
|
||||||
local expand = vim.fn.expand
|
local expand = vim.fn.expand
|
||||||
local fn = vim.fn
|
local fn = vim.fn
|
||||||
local cmd = vim.cmd
|
local cmd = vim.cmd
|
||||||
|
|
@ -18,6 +19,7 @@ end
|
||||||
local function fileOp(op)
|
local function fileOp(op)
|
||||||
local dir = expand("%:p:h")
|
local dir = expand("%:p:h")
|
||||||
local oldName = expand("%:t")
|
local oldName = expand("%:t")
|
||||||
|
local oldNameNoExt = oldName:gsub("%.%w+$", "")
|
||||||
local oldExt = expand("%:e")
|
local oldExt = expand("%:e")
|
||||||
if oldExt ~= "" then oldExt = "." .. oldExt end
|
if oldExt ~= "" then oldExt = "." .. oldExt end
|
||||||
local prevReg
|
local prevReg
|
||||||
|
|
@ -28,13 +30,19 @@ local function fileOp(op)
|
||||||
cmd [['<,'>delete z]]
|
cmd [['<,'>delete z]]
|
||||||
end
|
end
|
||||||
|
|
||||||
local promptStr
|
local promptStr, prefill
|
||||||
if op == "duplicate" then promptStr = "Duplicate File as: "
|
if op == "duplicate" then
|
||||||
elseif op == "rename" then promptStr = "Rename File to: "
|
promptStr = "Duplicate File as: "
|
||||||
elseif op == "new" or op == "newFromSel" then promptStr = "Name for New File: "
|
prefill = oldNameNoExt.. "-1"
|
||||||
|
elseif op == "rename" then
|
||||||
|
promptStr = "Rename File to: "
|
||||||
|
prefill = oldNameNoExt
|
||||||
|
elseif op == "new" or op == "newFromSel" then
|
||||||
|
promptStr = "Name for New File: "
|
||||||
|
prefill = ""
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.ui.input({prompt = promptStr}, function(newName)
|
vim.ui.input({prompt = promptStr, default = prefill}, function(newName)
|
||||||
local invalidName = false
|
local invalidName = false
|
||||||
local sameName
|
local sameName
|
||||||
if newName then
|
if newName then
|
||||||
|
|
@ -49,7 +57,7 @@ local function fileOp(op)
|
||||||
if invalidName then
|
if invalidName then
|
||||||
vim.notify(" Invalid filename. ", logError)
|
vim.notify(" Invalid filename. ", logError)
|
||||||
elseif sameName then
|
elseif sameName then
|
||||||
vim.notify(" Cannot use the same filename. ", logError)
|
vim.notify(" Cannot use the same filename. ", logWarn)
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue