execute-keys l
}}
+# preview hex color codes with a leading #
+declare-option -hidden range-specs hex_color_code_ranges
+add-highlighter shared/hex_color_code ranges hex_color_code_ranges
+
+define-command update_hex_color_code_ranges %{
+ set-option window hex_color_code_ranges %val{timestamp}
+ evaluate-commands -draft %{
+ execute-keys 'gtGbx'
+ evaluate-commands -draft -verbatim try %{
+ execute-keys 's\B#([0-9A-Fa-f]{6})\b<ret>'
+ evaluate-commands -itersel %{
+ set-option -add window hex_color_code_ranges "%val{selection_desc}|default,rgb:%reg{1}"
+ }
+ }
+ evaluate-commands -draft -verbatim try %{
+ execute-keys 's\B#([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])\b<ret>'
+ evaluate-commands -itersel %{
+ set-option -add window hex_color_code_ranges "%val{selection_desc}|default,rgb:%reg{1}%reg{1}%reg{2}%reg{2}%reg{3}%reg{3}"
+ }
+ }
+ }
+}
+
+hook -always global NormalIdle '' update_hex_color_code_ranges
+hook -always global InsertIdle '' update_hex_color_code_ranges
+hook -always global PromptIdle '' update_hex_color_code_ranges
+
+# preview hex color codes without leading #
+declare-option -hidden range-specs hex_color_code_ranges2
+add-highlighter shared/hex_color_code2 ranges hex_color_code_ranges2
+
+define-command update_hex_color_code_ranges2 %{
+ set-option window hex_color_code_ranges2 %val{timestamp}
+ evaluate-commands -draft %{
+ execute-keys 'gtGbx'
+ evaluate-commands -draft -verbatim try %{
+ execute-keys 's\B"([0-9A-Fa-f]{6})\b"<ret>'
+ execute-keys -draft 'S"<ret>'
+ evaluate-commands -itersel %{
+ set-option -add window hex_color_code_ranges2 "%val{selection_desc}|default,rgb:%reg{1}"
+ }
+ }
+ }
+}
+
+hook -always global NormalIdle '' update_hex_color_code_ranges2
+hook -always global InsertIdle '' update_hex_color_code_ranges2
+hook -always global PromptIdle '' update_hex_color_code_ranges2
# normal mode kks mappings
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
map global normal -docstring 'comment block' <a-#> ': comment-block<ret>'
map global normal -docstring 'Next buffer ' <c-n> ': buffer-next<ret>'
map global normal -docstring 'Previous buffer' <c-p> ': buffer-previous<ret>'
-map global normal -docstring '(^) add 1 int' '^' ': inc %val{count} +<ret>'
-map global normal -docstring '(S-^) substract 1 int' <a-^> ': inc %val{count} -<ret>'
+map global normal -docstring 'add 1 int' '^' ': inc %val{count} +<ret>'
+map global normal -docstring 'substract 1 int' <a-^> ': inc %val{count} -<ret>'
# default user mode
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
-map global user -docstring '(b)uffer mode' b ': enter-user-mode buffermode<ret>'
-map global user -docstring '(s)election mode' s ': enter-user-mode selmode<ret>'
-map global user -docstring '(E)dit kakrc' E ': e ~/.config/kak/kakrc<ret>'
-map global user -docstring ':::::::::::::::::::::::::::::::: ::' : ': <esc>'
-map global user -docstring 'goto (S)cratch buffer' S ': buffer *scratch*<ret>'
-map global user -docstring 'goto (D)ebug buffer' D ': buffer *debug*<ret>'
-map global user -docstring '(e)xpand selection' e ': expand<ret>'
-map global user -docstring 'insert (n)ewline above current' n ' O<esc>j'
-map global user -docstring 'insert (N)ewline below current' N ' o<esc>k'
-map global user -docstring '(r)elative line numbers enable' r ': addhl window/nl number-lines -min-digits -1 -relative -hlcursor<ret>'
-map global user -docstring '(R)elative line numbers disable' R ': remove-highlighter window/nl<ret>'
+map global user -docstring 'buffer mode' b ': enter-user-mode buffermode<ret>'
+map global user -docstring 'selection mode' s ': enter-user-mode selmode<ret>'
+map global user -docstring 'Edit kakrc' E ': e ~/.config/kak/kakrc<ret>'
+map global user -docstring 'highlight hex color without leading #' p ': addhl global/hex_color_code2 ref hex_color_code2<ret>'
+map global user -docstring 'unhighlight hex color without leading #' <s-p> ': rmhl global/hex_color_code2<ret>'
+map global user -docstring 'highlight hex color with leading #' '#' ': addhl global/hex_color_code ref hex_color_code<ret>'
+map global user -docstring 'unhighlight hex color with leading #' <a-#> ': rmhl global/hex_color_code<ret>'
+map global user -docstring ':::::::::::::::::::::::::::::::: ::' : ': <esc>'
+map global user -docstring 'Scratch buffer' S ': buffer *scratch*<ret>'
+map global user -docstring 'Debug buffer' D ': buffer *debug*<ret>'
+map global user -docstring 'expand selection' e ': expand<ret>'
+map global user -docstring 'insert newline above current' n ' O<esc>j'
+map global user -docstring 'insert newline below current' N ' o<esc>k'
+map global user -docstring 'relative line numbers enable' r ': addhl window/nl number-lines -min-digits -1 -relative -hlcursor<ret>'
+map global user -docstring 'relative line numbers disable' R ': rmhl window/nl<ret>'
# buffer user mode
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
declare-user-mode buffermode
-map global buffermode -docstring 'enable (a)utocomplete' a ': set-option -add buffer autocomplete insert<ret>'
-map global buffermode -docstring 'disable (A)utocomplete' A ': set-option -remove buffer autocomplete insert<ret>'
-map global buffermode -docstring '(c)lean tabs and trailing whitespaces' c ': clean-buffer<ret>'
-map global buffermode -docstring '(d)elete buffer' d ': delete-buffer<ret>'
-map global buffermode -docstring 'show file (i)nfo' i ': info "file saved at %sh{date}"<ret>'
-map global buffermode -docstring '(l)ist buffers' l ': kks-connect terminal-popup kks-buffers<ret>'
-map global buffermode -docstring '(L)int buffer' L ': buffer *lint-output*<ret>'
-map global buffermode -docstring '(n)ext buffer' n ': buffer-next<ret>'
-map global buffermode -docstring '(p)revious buffer' p ': buffer-previous<ret>'
-map global buffermode -docstring '(w)rap enable' w ': add-highlighter buffer/bw wrap<ret>'
-map global buffermode -docstring '(W)rap disable' W ': remove-highlighter buffer/bw<ret>'
+map global buffermode -docstring 'enable autocomplete' a ': set-option -add buffer autocomplete insert<ret>'
+map global buffermode -docstring 'disable Autocomplete' A ': set-option -remove buffer autocomplete insert<ret>'
+map global buffermode -docstring 'clean tabs and trailing whitespaces' c ': clean-buffer<ret>'
+map global buffermode -docstring 'delete buffer' d ': delete-buffer<ret>'
+map global buffermode -docstring 'show file info' i ': info "file saved at %sh{date}"<ret>'
+map global buffermode -docstring 'list buffers' l ': kks-connect terminal-popup kks-buffers<ret>'
+map global buffermode -docstring 'Lint buffer' L ': buffer *lint-output*<ret>'
+map global buffermode -docstring 'next buffer' n ': buffer-next<ret>'
+map global buffermode -docstring 'previous buffer' p ': buffer-previous<ret>'
+map global buffermode -docstring 'wrap enable' w ': add-highlighter buffer/bw wrap<ret>'
+map global buffermode -docstring 'Wrap disable' W ': remove-highlighter buffer/bw<ret>'
# selection user mode
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
declare-user-mode selmode
-map global selmode -docstring 'clean tabs and trailing whitespaces' c ': clean-selections<ret>'
-map global selmode -docstring 'sort words (H)orizontally in selection' h '| xargs -n1 | sort -u | xargs <ret>'
-map global selmode -docstring 'sort words (V)ertically in selection ' v '| sort -n <ret>'
+map global selmode -docstring 'clean tabs and trailing whitespaces' c ': clean-selections<ret>'
+map global selmode -docstring 'sort words Horizontally in selection' h '| xargs -n1 | sort -u | xargs <ret>'
+map global selmode -docstring 'sort words Vertically in selection ' v '| sort -n <ret>'
# terminal config (via foot.kak)
# ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────