diff --git a/README.md b/README.md index 82e3e5f..9b5f58f 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,8 @@ Note that you can [customize](#custom-snippets) (enable, disable and modify) eve create a new drawing using the [configured](#configuration) template, insert a figure displaying it and open it in Obsidian/Rnote. - To open an inserted drawing in Obsidian/Rnote, - simply run `:TypstarOpenDrawing` while your cursor is on a line referencing the drawing. + simply run `:TypstarOpenDrawing` (or `:TypstarOpenExcalidraw`/`:TypstarOpenRnote` if you are using the same file extension for both) + while your cursor is on a line referencing the drawing. ### Anki Use the `flA` snippet to create a new flashcard diff --git a/lua/typstar/drawings.lua b/lua/typstar/drawings.lua index 701b303..cdb5555 100644 --- a/lua/typstar/drawings.lua +++ b/lua/typstar/drawings.lua @@ -85,11 +85,8 @@ local rnote = { } local providers = { excalidraw, rnote } -function M.insert_obsidian_excalidraw() insert_drawing(excalidraw) end -function M.insert_rnote() insert_drawing(rnote) end - -function M.open_drawing() - for _, provider in pairs(providers) do +local open_drawing = function(prov) + for _, provider in ipairs(prov) do local cfg = provider[1] local line = vim.api.nvim_get_current_line() local filename = line:match('"(.*)' .. string.gsub(cfg.fileExtensionInserted, '%.', '%%%.')) @@ -102,4 +99,10 @@ function M.open_drawing() end end +function M.insert_obsidian_excalidraw() insert_drawing(excalidraw) end +function M.insert_rnote() insert_drawing(rnote) end +function M.open_obsidian_excalidraw() open_drawing({ excalidraw }) end +function M.open_rnote() open_drawing({ rnote }) end +function M.open_drawing() open_drawing(providers) end + return M diff --git a/lua/typstar/init.lua b/lua/typstar/init.lua index 5be4f29..058dfdc 100644 --- a/lua/typstar/init.lua +++ b/lua/typstar/init.lua @@ -15,6 +15,8 @@ M.setup = function(args) vim.api.nvim_create_user_command('TypstarInsertExcalidraw', drawings.insert_obsidian_excalidraw, {}) vim.api.nvim_create_user_command('TypstarInsertRnote', drawings.insert_rnote, {}) + vim.api.nvim_create_user_command('TypstarOpenExcalidraw', drawings.open_obsidian_excalidraw, {}) + vim.api.nvim_create_user_command('TypstarOpenRnote', drawings.open_rnote, {}) vim.api.nvim_create_user_command('TypstarOpenDrawing', drawings.open_drawing, {}) vim.api.nvim_create_user_command('TypstarAnkiScan', anki.scan, {})