From b265c328f04362225a9d001580d0b8f5963ee1d9 Mon Sep 17 00:00:00 2001 From: justanothercatgirl Date: Fri, 17 Jan 2025 12:47:53 +0300 Subject: I don't even know at this point --- .config/nvim/lua/user/coderunner.lua | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to '.config/nvim/lua/user/coderunner.lua') diff --git a/.config/nvim/lua/user/coderunner.lua b/.config/nvim/lua/user/coderunner.lua index 77330ab..843534f 100644 --- a/.config/nvim/lua/user/coderunner.lua +++ b/.config/nvim/lua/user/coderunner.lua @@ -1,5 +1,15 @@ local term = require'toggleterm' +cxx = function() + local script = + 'echo $file > /dev/null;' .. + 'OLDPWD_=\\${PWD};' .. + 'while [[ ! -f CMakeLists.txt || ! -f compile_commands.json && \\\"\\$PWD\\\" != / ]]; do cd ..; done;' .. + 'if [[ -f CMakeLists.txt && -f compile_commands.json ]]; then mkdir -p build && cd build && cmake -DCMAKE_BUILD_TYPE=Debug .. && make -j24 && ' .. + './\\$(sed -nr \\\"/add_executable/s/.*add_executable\\\\((\\\\S+).+/\\\\1/p\\\" ../CMakeLists.txt); fi;' .. + 'cd ${OLDPWD_}' + vim.cmd(string.format("TermExec cmd='%s'", script)) +end -- Define the code runner configuration require('code_runner').setup({ mode = "toggleterm", @@ -7,16 +17,9 @@ require('code_runner').setup({ startinsert = true, filetype = { rust = 'cargo check; if [ \\$? -ne 0 ]; then echo cargo check failed; else cargo run || cargo test -- --nocapture --test-threads=1; fi; echo $file > /dev/null', - cpp = function() - local script = - 'echo $file > /dev/null;' .. - 'while [[ ! -f CMakeLists.txt && \\\"\\$PWD\\\" != / ]]; do cd ..; done;' .. - 'if [[ -f CMakeLists.txt ]]; then mkdir -p build && cd build && cmake -DCMAKE_BUILD_TYPE=Debug .. && make -j24 && ' .. - './\\$(sed -nr \\\"/add_executable/s/.*add_executable\\\\((\\\\S+).+/\\\\1/p\\\" ../CMakeLists.txt); fi;' .. - 'cd ..' - vim.cmd(string.format("TermExec cmd='%s'", script)) - end, + cpp = cxx, + c = cxx, python = 'python3 $file', - tex = 'mkdir -p build && pdflatex -output-directory=build -output-format=PDF $file' + tex = "mkdir -p build && if pdflatex -interaction=batchmode -output-directory=build -output-format=pdf $file; then killall -SIGHUP mupdf; else echo -e \\\\\\\\x1b[1\\\\;31mBUILD FAILED\\\\\\\\x1b[0m; fi" }, }) -- cgit v1.2.3-70-g09d2