aboutsummaryrefslogtreecommitdiff
path: root/autoload/files.kak
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/files.kak')
-rw-r--r--autoload/files.kak25
1 files changed, 25 insertions, 0 deletions
diff --git a/autoload/files.kak b/autoload/files.kak
index 652111c..e4c24bf 100644
--- a/autoload/files.kak
+++ b/autoload/files.kak
@@ -60,3 +60,28 @@ def buffer-jump -params 1 %{
fi
}
}
+
+# Open directory (bits from explore.kak)
+hook global RuntimeError '\d+:\d+: ''(?:edit|e)''(.+): is a directory' %{
+ file-manager %val(hook_param_capture_1)
+}
+hook global KakBegin .* %{ hook -once global WinCreate .* %{ hook -once global NormalIdle '' %{
+ try %{ evaluate-commands -draft -save-regs '/' %{
+ buffer *debug*
+ set-register / 'error while opening file ''(.+?)'':\n\h+(.+?): is a directory'
+ execute-keys '%1s<ret>'
+ evaluate-commands -draft -itersel %{
+ evaluate-commands -client %val(client) file-manager %reg(.)
+ }
+ }}
+}}}
+
+# Open file:linenum
+hook global WinDisplay (.*):(\d+)$ %{
+ # Use string to eval quickly
+ # FIXME: Replace normalidle hack with better approach to "defer"
+ hook -once buffer NormalIdle .* "
+ delete-buffer %val{hook_param}
+ edit %val{hook_param_capture_1} %val{hook_param_capture_2}
+ "
+}