aboutsummaryrefslogtreecommitdiff
path: root/autoload
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
parentfb52df34924781ed3d42ca8864402c3e7a52d4aa (diff)
downloadkakoune-config-e751362d9194d9291057759fa33073720c3535fd.tar.gz
kakoune-config-e751362d9194d9291057759fa33073720c3535fd.zip
Shnippets
Diffstat (limited to 'autoload')
-rw-r--r--autoload/snippets.kak22
-rw-r--r--autoload/snippets/+default.kak13
-rw-r--r--autoload/snippets/kakoune.kak20
-rw-r--r--autoload/snippets/nix.kak26
-rw-r--r--autoload/snippets/ruby.kak13
-rw-r--r--autoload/snippets/typescript.kak36
6 files changed, 22 insertions, 108 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"
+}
diff --git a/autoload/snippets/+default.kak b/autoload/snippets/+default.kak
deleted file mode 100644
index 3dc871b..0000000
--- a/autoload/snippets/+default.kak
+++ /dev/null
@@ -1,13 +0,0 @@
-declare-option -hidden str-list snippet_list
-
-map global normal <c-p> ': snippets-insert<ret>'
-
-define-command snippets-insert %{
- prompt -menu \
- -shell-script-candidates 'echo "$kak_opt_snippet_list"' \
- 'Snippet: ' 'evaluate-commands %val{text}'
-}
-
-define-command define-snippet -params 2 %{
- set-option -add %arg{1} snippet_list %sh{ echo -e "$2\n" }
-}
diff --git a/autoload/snippets/kakoune.kak b/autoload/snippets/kakoune.kak
deleted file mode 100644
index d6ed073..0000000
--- a/autoload/snippets/kakoune.kak
+++ /dev/null
@@ -1,20 +0,0 @@
-hook global BufSetOption filetype=(?:kak) %{
- define-snippet buffer snip-kak-define
- define-snippet buffer snip-kak-hook
-}
-
-define-command snip-kak-define %{
- prompt 'Command: ' %{
- set-register c %val{text}
- execute-keys '<esc>,idefine-command <c-r>c %{<ret>'
- execute-keys '}'
- }
-}
-
-define-command snip-kak-hook %{
- prompt 'Event: ' %{
- set-register c %val{text}
- execute-keys '<esc>,ihook global <c-r>c .* %{<ret>'
- execute-keys '}'
- }
-}
diff --git a/autoload/snippets/nix.kak b/autoload/snippets/nix.kak
deleted file mode 100644
index 84c637d..0000000
--- a/autoload/snippets/nix.kak
+++ /dev/null
@@ -1,26 +0,0 @@
-hook global BufSetOption filetype=(?:nix) %{
- define-snippet buffer snip-flake-mkderivation
- define-snippet buffer snip-flake-mkshell
-}
-
-define-command snip-flake-mkderivation %{
- prompt 'pname: ' %{
- set-register c %val{text}
- execute-keys '<esc>,istdenv.mkDerivation {<ret>'
- execute-keys ' pname = "<c-r>c";<ret>'
- execute-keys ' version = "0.0.0";<ret>'
- execute-keys ' src = fetchGithub {<ret>'
- execute-keys ' owner = "owner";<ret>'
- execute-keys ' repo = "repo";<ret>'
- execute-keys ' rev = "master";<ret>'
- execute-keys ' hash = lib.fakeHash;<ret>'
- execute-keys ' };<ret>'
- execute-keys '}'
- }
-}
-
-define-command snip-flake-mkshell %{
- execute-keys '<esc>,ipkgs.mkShell {<ret>'
- execute-keys ' buildInputs = with pkgs; [];<ret>'
- execute-keys '}'
-}
diff --git a/autoload/snippets/ruby.kak b/autoload/snippets/ruby.kak
deleted file mode 100644
index 4f851c2..0000000
--- a/autoload/snippets/ruby.kak
+++ /dev/null
@@ -1,13 +0,0 @@
-hook global BufSetOption filetype=(?:ruby) %{
- define-snippet buffer snip-rails-class
-}
-
-define-command snip-rails-class %{
- eval %sh{
- class_name=$(basename "$kak_bufname" .rb | sed -e 's/[^A-Za-z0-9]\(\w\)/\U\1/g' -e 's/^\w/\U\0/g')
- echo "set-register c $class_name"
- }
- execute-keys '<esc>,i# frozen_string_literal: true<ret><ret>'
- execute-keys 'class <c-r>c<ret>'
- execute-keys 'end'
-}
diff --git a/autoload/snippets/typescript.kak b/autoload/snippets/typescript.kak
deleted file mode 100644
index 4b17109..0000000
--- a/autoload/snippets/typescript.kak
+++ /dev/null
@@ -1,36 +0,0 @@
-hook global BufSetOption filetype=(?:javascript|typescript|jsx|tsx) %{
- define-snippet buffer snip-react-component
- define-snippet buffer snip-react-usestate
- define-snippet buffer snip-function
-}
-
-define-command snip-react-usestate %{
- prompt 'Name: ' %{
- set-register n %val{text}
- prompt 'Initial value: ' %{
- set-register v %val{text}
- evaluate-commands %sh{
- st=$(echo "$kak_reg_n" | sed 's/^[A-Z]/\L\0/')
- setst="set$(echo "$kak_reg_n" | sed 's/^[a-z]/\U\0/')"
- echo "execute-keys '<esc>,iconst [$st, $setst] = useState($kak_reg_v);<esc>'"
- }
- }
- }
-}
-
-define-command snip-react-component %{
- prompt 'Component name: ' %{
- execute-keys "<esc>,itype %val{text}Prop = {<ret>}<ret><ret>"
- execute-keys "<esc>,iexport const %val{text} = ({ }: %val{text}Prop) => {<ret>"
- execute-keys " return <lt>div><lt>/div>;"
- execute-keys "<ret>};<esc>kwlt;"
- }
-}
-
-define-command snip-function %{
- prompt 'Name: ' %{
- execute-keys "<esc>,iconst %val{text} = () => {<ret>"
- execute-keys " return 0;"
- execute-keys "<ret>};<esc>kwlt;"
- }
-}