refact: print_error and prompt_title

This commit is contained in:
Thomas Lambert
2023-04-29 00:09:53 +02:00
parent fb7c5312a7
commit 43408481a2
3 changed files with 40 additions and 37 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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