about summary refs log tree commit diff
path: root/config/kak/compilation-mode_classic.kak
diff options
context:
space:
mode:
Diffstat (limited to 'config/kak/compilation-mode_classic.kak')
-rw-r--r--config/kak/compilation-mode_classic.kak20
1 files changed, 20 insertions, 0 deletions
diff --git a/config/kak/compilation-mode_classic.kak b/config/kak/compilation-mode_classic.kak
new file mode 100644
index 0000000..348fcf0
--- /dev/null
+++ b/config/kak/compilation-mode_classic.kak
@@ -0,0 +1,20 @@
+# Requires kakpipe and unbuffer
+
+declare-option str compile_last_command ""
+
+define-command -docstring "Compile: run a command in a fifo buffer" compile -params 1.. %{
+    set-option global compile_last_command "%arg{@}"
+    evaluate-commands %sh{ exec kakpipe fifo -s $kak_session -- unbuffer "$@" }
+}
+
+define-command -docstring "Recompile: re-run the last compile command" recompile %{
+    evaluate-commands %sh{
+        if [ -z "$kak_opt_compile_last_command" ]; then
+            echo 'fail "No previous compile command"'
+        else
+            exec kakpipe fifo -s $kak_session -- unbuffer $kak_opt_compile_last_command
+        fi
+    }
+}
+
+