summaryrefslogtreecommitdiff
path: root/config/nvim/lua/compile.lua
diff options
context:
space:
mode:
Diffstat (limited to 'config/nvim/lua/compile.lua')
-rw-r--r--config/nvim/lua/compile.lua38
1 files changed, 38 insertions, 0 deletions
diff --git a/config/nvim/lua/compile.lua b/config/nvim/lua/compile.lua
new file mode 100644
index 0000000..f529b90
--- /dev/null
+++ b/config/nvim/lua/compile.lua
@@ -0,0 +1,38 @@
+local openTerminal = function(command)
+ local Terminal = require('toggleterm.terminal').Terminal
+ local term = Terminal:new({
+ cmd = command,
+ direction = 'horizontal'
+ })
+ term:toggle()
+end
+
+local path = vim.fn.getcwd() .. '/.compile'
+
+local run = function()
+ local file_exists = os.rename(path, path)
+
+ if file_exists then
+ openTerminal(
+ 'echo "Directory: $(pwd)"; echo "Compilation started at $(date +"%H:%M:%S")"; echo; '
+ .. 'bash ' .. path ..
+ '; echo; echo "Compilation finished at $(date +"%H:%M:%S")"; read'
+ )
+ return
+ end
+
+ local file = io.open(path, 'w')
+
+ file:seek('set')
+ file:write([[#!/bin/sh
+set -xe
+]]
+ )
+ file:close()
+ print('Created ' .. path)
+ return nil
+end
+
+vim.keymap.set('n', 'zz', function()
+ run()
+end)