Files
typstar/lua/typstar/anki.lua
2025-03-19 13:10:44 +01:00

39 lines
1.2 KiB
Lua

local M = {}
local config = require('typstar.config')
local utils = require('typstar.utils')
local cfg = config.config.anki
local function run_typstar_anki(args)
local cwd = vim.fn.getcwd()
local anki_key = ''
if cfg.ankiKey ~= nil then anki_key = ' --anki-key ' .. cfg.ankiKey end
local cmd = string.format(
'%s --root-dir %s --typst-cmd %s --anki-url %s %s %s',
cfg.typstarAnkiCmd,
cwd,
cfg.typstCmd,
cfg.ankiUrl,
anki_key,
args
)
local handle_output = function(msg)
if string.match(msg, 'Done') then vim.cmd('checktime') end
end
utils.run_shell_command(cmd, true, handle_output)
end
function M.scan() run_typstar_anki('') end
function M.scan_reimport() run_typstar_anki('--reimport') end
function M.scan_force() run_typstar_anki('--force-scan ' .. vim.fn.getcwd()) end
function M.scan_force_reimport() run_typstar_anki('--reimport --force-scan ' .. vim.fn.getcwd()) end
function M.scan_force_current() run_typstar_anki('--force-scan ' .. vim.fn.expand('%:p')) end
function M.scan_force_current_reimport() run_typstar_anki('--reimport --force-scan ' .. vim.fn.expand('%:p')) end
return M