pojokcodeid.nvim-lazy/lua/pcode/plugins/coderunner.lua
2025-06-21 13:33:57 +07:00

64 lines
1.7 KiB
Lua

--typescript = "deno run",
-- cpp="gcc $fileName -lstdc++ -o $fileNameWithoutExt && $fileNameWithoutExt"
local pyrun = "python -u"
if vim.fn.has("win32") == 0 then
pyrun = "python3 -u"
end
local rfile = {
java = "cd $dir && javac $fileName && java $fileNameWithoutExt",
python = pyrun,
typescript = "ts-node $dir/$fileName",
rust = "cd $dir && rustc $fileName && $dir/$fileNameWithoutExt",
cpp = "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir/$fileNameWithoutExt",
scss = "sass $dir/$fileName $dir/$fileNameWithoutExt.css",
javascript = 'node "$dir/$fileName"',
-- go = "go run .",
go = "go run $fileName",
}
local runProject = {}
local cwd = vim.fn.getcwd()
local go_mod_path = cwd .. "/go.mod"
if vim.fn.filereadable(go_mod_path) ~= 0 then
runProject[cwd] = {
name = "Go Project (cwd)",
command = "go run .",
}
end
return {
"CRAG666/code_runner.nvim",
lazy = true,
cmd = { "RunCode", "RunFile", "RunProject", "RunClose" },
opts = {
filetype = rfile,
project = runProject,
mode = "float",
focus = true,
startinsert = true,
term = {
position = "bot",
size = 50,
},
float = {
close_key = "<ESC>",
border = "rounded",
height = 0.8,
width = 0.8,
x = 0.5,
y = 0.5,
border_hl = "FloatBorder",
float_hl = "Normal",
blend = 0,
},
},
config = function(_, opts)
require("code_runner").setup(opts)
end,
keys = {
{ "<leader>r", "", desc = "  Run", mode = "n" },
{ "<leader>rr", "<cmd>RunCode<CR>", desc = "Run Code", mode = "n" },
{ "<leader>rf", "<cmd>RunFile<CR>", desc = "Run File", mode = "n" },
{ "<leader>rp", "<cmd>RunProject<CR>", desc = "Run Project", mode = "n" },
},
}