summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/compile.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.config/nvim/lua/compile.lua48
1 files changed, 48 insertions, 0 deletions
diff --git a/.config/nvim/lua/compile.lua b/.config/nvim/lua/compile.lua
new file mode 100644
index 0000000..8343cfe
--- /dev/null
+++ b/.config/nvim/lua/compile.lua
@@ -0,0 +1,48 @@
+local openTerminal = function(command)
+ local Terminal = require('toggleterm.terminal').Terminal
+ local term = Terminal:new({
+ cmd = command,
+ direction = 'horizontal'
+ })
+ term:toggle()
+end
+
+local compilePath = vim.fn.getcwd() .. '/.compile'
+local runPath = vim.fn.getcwd() .. '/.run'
+
+local checkGetFileContent = function(path, typ)
+ local file_exists = os.rename(path, path)
+
+ if file_exists then
+ openTerminal(
+ 'echo "Directory: $(pwd)"; echo "' .. typ .. ' started at $(date +"%H:%M:%S")"; echo; '
+ .. 'bash ' .. path ..
+ '; echo; echo "' .. typ .. ' 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()
+ checkGetFileContent(
+ compilePath,
+ 'Compilation'
+ )
+end)
+vim.keymap.set('n', 'zx', function()
+ checkGetFileContent(
+ runPath,
+ 'Run'
+ )
+end)