improved upon F5 keybinds

This commit is contained in:
THEON-1
2025-11-20 09:35:59 +01:00
parent f3362a2187
commit 2b577db2e5

View File

@@ -1,10 +1,71 @@
vim.api.nvim_create_autocmd("FileType", {
pattern = { "markdown" },
callback = function()
vim.schedule(function()
vim.keymap.set("n", "<F5>", "<CMD>!pandoc %:p -o %:p:r.pdf --verbose &> .pandoc-log <CR>", {silent = true})
end)
end,
local function markdown()
local pandoc_process = vim.system({
"pandoc",
vim.fn.expand("%:p"),
"-o",
vim.fn.expand("%:p:r") .. ".pdf",
"--verbose",
})
local pandoc_result = pandoc_process:wait()
vim.notify(pandoc_result.stdout, vim.log.levels.INFO);
vim.notify(pandoc_result.stderr, vim.log.levels.ERROR);
end
local function arduino()
local arduino_process = vim.system({
"arduino-cli",
"board",
"listall",
"--json"
})
local boards_json = arduino_process:wait()
local jq_process = vim.system({
"jq",
"[.boards.[] | {(.name): .fqbn}] | add",
}, { stdin = boards_json.stdout })
local boards_jq = jq_process:wait().stdout or {}
local boards_table = vim.json.decode(boards_jq)
local function table_keys(t)
local keys = {}
for k in pairs(t) do keys[#keys + 1] = k end
return keys
end
local keys = table_keys(boards_table)
table.sort(keys)
require("fzf-lua").fzf_exec(keys, {
actions = {
['default'] = function(selected, opts)
local process = vim.system({
"arduino-cli",
"compile",
"--fqbn",
boards_table[selected[1]],
vim.fn.expand("%:p:h")
})
local result = process:wait()
vim.notify(result.stdout, vim.log.levels.INFO)
vim.notify(result.stderr, vim.log.levels.ERROR)
end,
}
})
end
vim.keymap.set("n", "<F5>", function()
local default = {
__index = function()
return function() end
end,
}
local fttable = {
["markdown"] = markdown,
["arduino"] = arduino,
}
setmetatable(fttable, default)
fttable[vim.bo.filetype]()
end)