aboutsummaryrefslogtreecommitdiff
path: root/autoload/snippets.kak
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2026-06-26 15:36:49 +0530
committerAkshay Nair <phenax5@gmail.com>2026-06-27 10:41:08 +0530
commite751362d9194d9291057759fa33073720c3535fd (patch)
treeb7098346db2317d2211d7445300d210c49647948 /autoload/snippets.kak
parentfb52df34924781ed3d42ca8864402c3e7a52d4aa (diff)
downloadkakoune-config-e751362d9194d9291057759fa33073720c3535fd.tar.gz
kakoune-config-e751362d9194d9291057759fa33073720c3535fd.zip
Shnippets
Diffstat (limited to '')
-rw-r--r--autoload/snippets.kak22
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"
+}