diff --git a/.config/kak/autoload/url.kak b/.config/kak/autoload/url.kak index 37a8a8c1..3f6e0850 100644 --- a/.config/kak/autoload/url.kak +++ b/.config/kak/autoload/url.kak @@ -1,10 +1,21 @@ -define-command -override url-open %{ - evaluate-commands -save-regs 'ab' %{ - set-register b 'https?://(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)' - execute-keys -draft 'sb"ay' - nop %sh{ - xdg-open "$kak_reg_a" +provide-module url-open %∴ + declare-option -docstring %{ + Command for opening URLs. + } str url_open_cmd 'xdg-open %s' + define-command -docstring %{ + Open the URL the cursor is on with url_open_cmd. + } url-open %{ + evaluate-commands -save-regs 'ab' %{ + set-register b 'https?://(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)' + try %{ + execute-keys -draft 'sb"ay' + nop %sh{ + eval "$(printf "$kak_opt_url_open_cmd" "$kak_reg_a")" + } + echo "Opened %reg{a}" + } catch %{ + fail 'Cursor is not on a URL!' + } } - echo %reg{a} } -} +∴ diff --git a/.config/kak/kakrc b/.config/kak/kakrc index e9761674..03cb973d 100644 --- a/.config/kak/kakrc +++ b/.config/kak/kakrc @@ -159,6 +159,10 @@ hook global WinCreate .* %{ search-highlight-enable } +# open URL +require-module url-open +map -docstring "URL" global goto U ':url-open' + # convenience mappings # quitting & saving map -docstring "quit" global user q ": q"