summaryrefslogtreecommitdiffstats
path: root/.config/nvim/lua/user/coderunner.lua
diff options
context:
space:
mode:
authorjustanothercatgirl <sotov2070@gmail.com>2024-02-22 13:42:19 +0300
committerjustanothercatgirl <sotov2070@gmail.com>2024-02-22 13:42:19 +0300
commite72256be161a60a0671b2ed2868f4d3e99559645 (patch)
tree4010dd2d0e76288147b024f25a305b8fd3ca60e9 /.config/nvim/lua/user/coderunner.lua
parente23f36ec3fc9f026be73550b66a6a7a8b66aafb1 (diff)
added coderunner and toggleterm functionality to nvim
for fuck's sake JUST LOOK AT VARIABLE `local script` IN `.config/nvim/lua/user/coderunner.lua` That shit's RIDICULOUS
Diffstat (limited to '.config/nvim/lua/user/coderunner.lua')
-rw-r--r--.config/nvim/lua/user/coderunner.lua20
1 files changed, 20 insertions, 0 deletions
diff --git a/.config/nvim/lua/user/coderunner.lua b/.config/nvim/lua/user/coderunner.lua
new file mode 100644
index 0000000..3049893
--- /dev/null
+++ b/.config/nvim/lua/user/coderunner.lua
@@ -0,0 +1,20 @@
+local term = require'toggleterm'
+
+-- Define the code runner configuration
+require('code_runner').setup({
+ mode = "toggleterm",
+ focus = true,
+ startinsert = true,
+ filetype = {
+ rust = 'cargo check; if [ \\$? -ne 0 ]; then echo cargo check failed; else cargo run; if [ \\$? -ne 0 ]; then cargo test --test-threads=1; sleep 1; fi; 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,
+ },
+})