summaryrefslogtreecommitdiff
path: root/lua/aotrix/build.lua
diff options
context:
space:
mode:
authorAotrix <[email protected]>2026-08-30 16:12:13 +0200
committerAotrix <[email protected]>2026-08-30 16:12:13 +0200
commit5ac378c355f7539d44fc6b5e55cd6ea5513c3f04 (patch)
tree64e9333594ea65c196c90bb5fd085e4d2634c730 /lua/aotrix/build.lua
parent7044c35252a97d4e63f7556a68706e7df9d50072 (diff)
Added command for competitive programming
Diffstat (limited to 'lua/aotrix/build.lua')
-rw-r--r--lua/aotrix/build.lua78
1 files changed, 0 insertions, 78 deletions
diff --git a/lua/aotrix/build.lua b/lua/aotrix/build.lua
deleted file mode 100644
index 5b70627..0000000
--- a/lua/aotrix/build.lua
+++ /dev/null
@@ -1,78 +0,0 @@
-function Compile_and_run_cpp()
- local filename = vim.fn.expand("%:p")
- local basename = vim.fn.expand("%:r")
- local output_file = "output.txt" -- Change this to the desired output file name
- local input_file = "input.txt" -- Change this to the desired input file name
-
- -- Check if current file is a valid C++ or C file
- local valid_extensions = {"cpp", "c"}
- local valid_file = false
- for _, ext in ipairs(valid_extensions) do
- if filename:match("%." .. ext .. "$") then
- valid_file = true
- break
- end
- end
-
- -- Exit function if file is not valid
- if not valid_file then
- vim.api.nvim_err_writeln("Not a valid C++ or C file.")
- return
- end
-
- -- Check if input file exists, create if it doesn't
- local input_fd = io.open(input_file, "a+") -- Open in append mode to create if it doesn't exist
- if input_fd == nil then
- vim.api.nvim_err_writeln("Failed to open or create input file: " ..
- input_file)
- return
- end
- input_fd:close()
-
- -- Check if output file exists, create if it doesn't
- local output_fd = io.open(output_file, "a+") -- Open in append mode to create if it doesn't exist
- if output_fd == nil then
- vim.api.nvim_err_writeln("Failed to open or create output file: " ..
- output_file)
- return
- end
- output_fd:close()
-
- -- Check if input file buffer is already open
- local input_bufnr = vim.fn.bufnr(input_file)
- if input_bufnr == -1 then
- -- Open input file in a new split at top right side
- vim.cmd("vsp " .. input_file)
- else
- -- Switch to existing buffer for input file
- vim.cmd(input_bufnr .. "wincmd w")
- end
- -- Check if input file buffer is already open
- local output_butnr = vim.fn.bufnr(output_file)
- if output_butnr == -1 then
- -- Open input file in a new split at top right side
- vim.cmd("split " .. output_file)
- else
- -- Switch to existing buffer for input file
- vim.cmd(input_bufnr .. "wincmd w")
- end
-
- vim.cmd("vertical resize 40%")
-
- local file = vim.fn.bufnr(filename)
- vim.cmd(file .. "wincmd w")
-
- -- Compile and run C++ file
- local compile_cmd = string.format("g++ %s -o %s && ./%s < %s > %s",
- filename, basename, basename, input_file,
- output_file)
- vim.cmd("silent w") -- Save the current file
- vim.cmd("silent !clear") -- Clear the terminal
- vim.cmd("silent !" .. compile_cmd) -- Execute the compile and run command
-
- -- Open the output file in a new buffer
- -- vim.cmd("edit " .. output_file)
-end
-
-vim.api.nvim_set_keymap("n", "mt", ":lua Compile_and_run_cpp()<CR>",
- {noremap = true, silent = true})