aboutsummaryrefslogtreecommitdiff
path: root/autoload/files.kak
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2026-06-26 13:51:29 +0530
committerAkshay Nair <phenax5@gmail.com>2026-06-26 13:51:29 +0530
commitfb52df34924781ed3d42ca8864402c3e7a52d4aa (patch)
tree5e23ea801e0e1482ed87c56ee1aa813af2613bf3 /autoload/files.kak
parentd2f4982e389431b74357bbc108567ae0e1d912a5 (diff)
downloadkakoune-config-fb52df34924781ed3d42ca8864402c3e7a52d4aa.tar.gz
kakoune-config-fb52df34924781ed3d42ca8864402c3e7a52d4aa.zip
Move dir and file:lineno handling to files.kak
Diffstat (limited to '')
-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}
+ "
+}