diff options
Diffstat (limited to 'autoload/snippets.kak')
| -rw-r--r-- | autoload/snippets.kak | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/autoload/snippets.kak b/autoload/snippets.kak new file mode 100644 index 0000000..7c4bb5a --- /dev/null +++ b/autoload/snippets.kak @@ -0,0 +1,22 @@ +map global normal <c-p> ': snippets-insert<ret>' + +declare-option str snippets_dir "%val{config}/snippets" + +define-command snippets-insert -docstring 'Snippets' %{ + prompt -menu "Snippets: " -init "%opt{filetype}/" \ + -shell-script-candidates %{ fd --type file --base-directory "$kak_opt_snippets_dir" } \ + %{ + evaluate-commands %sh{ + case "$kak_text" in + *.snip.kak) cat "$kak_opt_snippets_dir/$kak_text" ;; + *) echo "insert-text-snippet %{$kak_text}" ;; + esac + } + } +} + +define-command -hidden insert-text-snippet -params 1 %{ + execute-keys ",|cat ""%opt{snippets_dir}/%arg{1}""<ret>" + execute-keys -save-regs '' "s[$]\d+<ret>" + execute-keys "%sh{echo $((kak_selection_count + 1))}n" +} |
