mirror of
https://github.com/Ascyii/telekasten.nvim.git
synced 2026-01-01 06:14:23 -05:00
refact: print_error and prompt_title
This commit is contained in:
@@ -205,12 +205,6 @@ local function generate_note_filename(uuid, title)
|
||||
end
|
||||
end
|
||||
|
||||
local function print_error(s)
|
||||
vim.cmd("echohl ErrorMsg")
|
||||
vim.cmd("echomsg " .. '"' .. s .. '"')
|
||||
vim.cmd("echohl None")
|
||||
end
|
||||
|
||||
local function check_dir_and_ask(dir, purpose)
|
||||
local ret = false
|
||||
if dir ~= nil and Path:new(dir):exists() == false then
|
||||
@@ -231,7 +225,7 @@ local function check_dir_and_ask(dir, purpose)
|
||||
ret = true
|
||||
else
|
||||
-- unreachable: plenary.Path:mkdir() will error out
|
||||
print_error("Could not create directory " .. dir)
|
||||
tkutils.print_error("Could not create directory " .. dir)
|
||||
ret = false
|
||||
end
|
||||
end
|
||||
@@ -245,7 +239,7 @@ end
|
||||
local function global_dir_check()
|
||||
local ret
|
||||
if M.Cfg.home == nil then
|
||||
print_error("Telekasten.nvim: home is not configured!")
|
||||
tkutils.print_error("Telekasten.nvim: home is not configured!")
|
||||
ret = false
|
||||
else
|
||||
ret = check_dir_and_ask(M.Cfg.home, "home")
|
||||
@@ -1661,7 +1655,7 @@ end
|
||||
local function RenameNote()
|
||||
local oldfile = Pinfo:new({ filepath = vim.fn.expand("%:p"), M.Cfg })
|
||||
|
||||
tkutils.prompt_title(M.Cfg.extension, oldfile.title, function(newname)
|
||||
fileutils.prompt_title(M.Cfg.extension, oldfile.title, function(newname)
|
||||
local newpath = newname:match("(.*/)") or ""
|
||||
newpath = M.Cfg.home .. "/" .. newpath
|
||||
|
||||
@@ -1677,7 +1671,7 @@ local function RenameNote()
|
||||
local fname = M.Cfg.home .. "/" .. newname .. M.Cfg.extension
|
||||
local fexists = fileutils.file_exists(fname)
|
||||
if fexists then
|
||||
print_error("File alreay exists. Renaming abandonned")
|
||||
tkutils.print_error("File alreay exists. Renaming abandonned")
|
||||
return
|
||||
end
|
||||
|
||||
@@ -2056,7 +2050,7 @@ local function CreateNoteSelectTemplate(opts)
|
||||
return
|
||||
end
|
||||
|
||||
tkutils.prompt_title(M.Cfg.extension, nil, function(title)
|
||||
fileutils.prompt_title(M.Cfg.extension, nil, function(title)
|
||||
on_create_with_template(opts, title)
|
||||
end)
|
||||
end
|
||||
@@ -2129,7 +2123,7 @@ local function CreateNote(opts)
|
||||
return CreateNoteSelectTemplate(opts)
|
||||
end
|
||||
|
||||
tkutils.prompt_title(M.Cfg.extension, nil, function(title)
|
||||
fileutils.prompt_title(M.Cfg.extension, nil, function(title)
|
||||
on_create(opts, title)
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
local M = {}
|
||||
|
||||
-- Checks if file exists
|
||||
function M.file_exists(fname)
|
||||
if fname == nil then
|
||||
return false
|
||||
@@ -14,4 +15,28 @@ function M.file_exists(fname)
|
||||
end
|
||||
end
|
||||
|
||||
-- Prompts the user for a note title
|
||||
function M.prompt_title(ext, defaultFile, callback)
|
||||
local canceledStr = "__INPUT_CANCELLED__"
|
||||
|
||||
vim.ui.input({
|
||||
prompt = "Title: ",
|
||||
cancelreturn = canceledStr,
|
||||
completion = "file",
|
||||
default = defaultFile,
|
||||
}, function(title)
|
||||
if not title then
|
||||
title = ""
|
||||
end
|
||||
if title == canceledStr then
|
||||
vim.cmd("echohl WarningMsg")
|
||||
vim.cmd("echomsg 'Note creation cancelled!'")
|
||||
vim.cmd("echohl None")
|
||||
else
|
||||
title = strip_extension(title, ext)
|
||||
callback(title)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
local M = {}
|
||||
|
||||
--- Escapes Lua pattern characters for use in gsub
|
||||
-- Prints a basic error message
|
||||
local function print_error(s)
|
||||
vim.cmd("echohl ErrorMsg")
|
||||
vim.cmd("echomsg " .. '"' .. s .. '"')
|
||||
vim.cmd("echohl None")
|
||||
end
|
||||
|
||||
-- Escapes Lua pattern characters for use in gsub
|
||||
function M.escape(s)
|
||||
-- return s:gsub("[^%w]", "%%%1") -- Escape everything ?
|
||||
return s:gsub("[%%%]%^%-$().[*+?]", "%%%1")
|
||||
end
|
||||
|
||||
--- Returns string with listed chars removed (= safer gsub)
|
||||
-- Returns string with listed chars removed (= safer gsub)
|
||||
function M.strip(s, chars_to_remove)
|
||||
return s:gsub("[" .. M.escape(chars_to_remove) .. "]", "")
|
||||
end
|
||||
@@ -17,27 +24,4 @@ local function strip_extension(str, ext)
|
||||
return str:gsub("(" .. ext:gsub("%.", "%%.") .. ")$", "")
|
||||
end
|
||||
|
||||
function M.prompt_title(ext, defaultFile, callback)
|
||||
local canceledStr = "__INPUT_CANCELLED__"
|
||||
|
||||
vim.ui.input({
|
||||
prompt = "Title: ",
|
||||
cancelreturn = canceledStr,
|
||||
completion = "file",
|
||||
default = defaultFile,
|
||||
}, function(title)
|
||||
if not title then
|
||||
title = ""
|
||||
end
|
||||
if title == canceledStr then
|
||||
vim.cmd("echohl WarningMsg")
|
||||
vim.cmd("echomsg 'Note creation cancelled!'")
|
||||
vim.cmd("echohl None")
|
||||
else
|
||||
title = strip_extension(title, ext)
|
||||
callback(title)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
||||
|
||||
Reference in New Issue
Block a user