Files
dotfiles/desktop/nvim/lua/coderun.lua
T
2026-06-12 03:12:41 -04:00

69 lines
2.1 KiB
Lua

-- Coderun configuration: shortcuts for running code
-- Helper to easily set autocmds in Lua
local function buf_map(mode, lhs, rhs, opts)
opts = vim.tbl_extend("force", { noremap = true, silent = true, buffer = true }, opts or {})
vim.keymap.set(mode, lhs, rhs, opts)
end
-- Create all autocmds
vim.api.nvim_create_autocmd("FileType", {
pattern = "python",
callback = function()
buf_map("n", "<F10>", ":w<CR>:!python3 %<CR>")
buf_map("i", "<F10>", "<Esc>:w<CR>:!python3 %<CR>")
buf_map("n", "<F11>", ":w<CR>:FloatermNew --disposable --autoclose=0 python3 %<CR>")
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "sh",
callback = function()
buf_map("n", "<F10>", ":w<CR>:!/bin/bash %<CR>")
buf_map("i", "<F10>", "<Esc>:w<CR>:!/bin/bash %<CR>")
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "cpp",
callback = function()
buf_map("n", "<F10>", ":!g++ -o %:p:r %<CR>:!%:p:r<CR>")
buf_map("n", "<F9>", ":w<bar>:FloatermNew --autoclose=0 g++ -g -Wall % && ./a.out<CR>")
buf_map("n", "<F11>", ":w<bar>:FloatermNew --disposable --autoclose=0 g++ -o %:p:r %<bar>/%:p:r<CR>")
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "lua",
callback = function()
buf_map("n", "<F10>", ":w<CR>:!lua %<CR>")
buf_map("n", "<F11>", ":w<bar>:FloatermNew --disposable --autoclose=0 lua %<CR>")
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "typescript",
callback = function()
buf_map("n", "<F10>", ":w<CR>:!npx tsx %<CR>")
buf_map("n", "<F11>", ":w<CR>:FloatermNew --disposable --autoclose=0 npx tsx %<CR>")
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "go",
callback = function()
buf_map("n", "<F10>", ":w<CR>:!go run %<CR>")
buf_map("i", "<F10>", "<Esc>:w<CR>:!go run %<CR>")
buf_map("n", "<F11>", ":w<CR>:FloatermNew --disposable --autoclose=0 go run %<CR>")
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "zig",
callback = function()
buf_map("n", "<F10>", ":w<CR>:!zig run %<CR>")
buf_map("i", "<F10>", "<Esc>:w<CR>:!zig run %<CR>")
buf_map("n", "<F11>", ":w<CR>:FloatermNew --disposable --autoclose=0 zig run %<CR>")
end,
})