diff options
Diffstat (limited to '')
| -rw-r--r-- | autoload/files.kak | 25 |
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} + " +} |
