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
|
||||||
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 function check_dir_and_ask(dir, purpose)
|
||||||
local ret = false
|
local ret = false
|
||||||
if dir ~= nil and Path:new(dir):exists() == false then
|
if dir ~= nil and Path:new(dir):exists() == false then
|
||||||
@@ -231,7 +225,7 @@ local function check_dir_and_ask(dir, purpose)
|
|||||||
ret = true
|
ret = true
|
||||||
else
|
else
|
||||||
-- unreachable: plenary.Path:mkdir() will error out
|
-- unreachable: plenary.Path:mkdir() will error out
|
||||||
print_error("Could not create directory " .. dir)
|
tkutils.print_error("Could not create directory " .. dir)
|
||||||
ret = false
|
ret = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -245,7 +239,7 @@ end
|
|||||||
local function global_dir_check()
|
local function global_dir_check()
|
||||||
local ret
|
local ret
|
||||||
if M.Cfg.home == nil then
|
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
|
ret = false
|
||||||
else
|
else
|
||||||
ret = check_dir_and_ask(M.Cfg.home, "home")
|
ret = check_dir_and_ask(M.Cfg.home, "home")
|
||||||
@@ -1661,7 +1655,7 @@ end
|
|||||||
local function RenameNote()
|
local function RenameNote()
|
||||||
local oldfile = Pinfo:new({ filepath = vim.fn.expand("%:p"), M.Cfg })
|
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 ""
|
local newpath = newname:match("(.*/)") or ""
|
||||||
newpath = M.Cfg.home .. "/" .. newpath
|
newpath = M.Cfg.home .. "/" .. newpath
|
||||||
|
|
||||||
@@ -1677,7 +1671,7 @@ local function RenameNote()
|
|||||||
local fname = M.Cfg.home .. "/" .. newname .. M.Cfg.extension
|
local fname = M.Cfg.home .. "/" .. newname .. M.Cfg.extension
|
||||||
local fexists = fileutils.file_exists(fname)
|
local fexists = fileutils.file_exists(fname)
|
||||||
if fexists then
|
if fexists then
|
||||||
print_error("File alreay exists. Renaming abandonned")
|
tkutils.print_error("File alreay exists. Renaming abandonned")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -2056,7 +2050,7 @@ local function CreateNoteSelectTemplate(opts)
|
|||||||
return
|
return
|
||||||
end
|
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)
|
on_create_with_template(opts, title)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
@@ -2129,7 +2123,7 @@ local function CreateNote(opts)
|
|||||||
return CreateNoteSelectTemplate(opts)
|
return CreateNoteSelectTemplate(opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
tkutils.prompt_title(M.Cfg.extension, nil, function(title)
|
fileutils.prompt_title(M.Cfg.extension, nil, function(title)
|
||||||
on_create(opts, title)
|
on_create(opts, title)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
|
-- Checks if file exists
|
||||||
function M.file_exists(fname)
|
function M.file_exists(fname)
|
||||||
if fname == nil then
|
if fname == nil then
|
||||||
return false
|
return false
|
||||||
@@ -14,4 +15,28 @@ function M.file_exists(fname)
|
|||||||
end
|
end
|
||||||
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
|
return M
|
||||||
|
|||||||
@@ -1,12 +1,19 @@
|
|||||||
local M = {}
|
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)
|
function M.escape(s)
|
||||||
-- return s:gsub("[^%w]", "%%%1") -- Escape everything ?
|
-- return s:gsub("[^%w]", "%%%1") -- Escape everything ?
|
||||||
return s:gsub("[%%%]%^%-$().[*+?]", "%%%1")
|
return s:gsub("[%%%]%^%-$().[*+?]", "%%%1")
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Returns string with listed chars removed (= safer gsub)
|
-- Returns string with listed chars removed (= safer gsub)
|
||||||
function M.strip(s, chars_to_remove)
|
function M.strip(s, chars_to_remove)
|
||||||
return s:gsub("[" .. M.escape(chars_to_remove) .. "]", "")
|
return s:gsub("[" .. M.escape(chars_to_remove) .. "]", "")
|
||||||
end
|
end
|
||||||
@@ -17,27 +24,4 @@ local function strip_extension(str, ext)
|
|||||||
return str:gsub("(" .. ext:gsub("%.", "%%.") .. ")$", "")
|
return str:gsub("(" .. ext:gsub("%.", "%%.") .. ")$", "")
|
||||||
end
|
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
|
return M
|
||||||
|
|||||||
Reference in New Issue
Block a user