aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
-rw-r--r--snippets/kakoune/command.kak3
-rw-r--r--snippets/kakoune/hook.kak3
-rw-r--r--snippets/nix/mkderivation.nix6
-rw-r--r--snippets/nix/mkshell.nix3
-rw-r--r--snippets/ruby/class.rb9
-rw-r--r--snippets/typescript/function.tsx3
-rw-r--r--snippets/typescript/react-component.tsx7
-rw-r--r--snippets/typescript/react-usestate.snip.kak11
14 files changed, 67 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;"
- }
-}
diff --git a/snippets/kakoune/command.kak b/snippets/kakoune/command.kak
new file mode 100644
index 0000000..0379632
--- /dev/null
+++ b/snippets/kakoune/command.kak
@@ -0,0 +1,3 @@
+define-command $1 -params $2 -docstring '' %{
+ $3
+}
diff --git a/snippets/kakoune/hook.kak b/snippets/kakoune/hook.kak
new file mode 100644
index 0000000..a26f983
--- /dev/null
+++ b/snippets/kakoune/hook.kak
@@ -0,0 +1,3 @@
+hook global $1 .* %{
+ $2
+}
diff --git a/snippets/nix/mkderivation.nix b/snippets/nix/mkderivation.nix
new file mode 100644
index 0000000..412efb7
--- /dev/null
+++ b/snippets/nix/mkderivation.nix
@@ -0,0 +1,6 @@
+stdenv.mkDerivation {
+ pname = "$1";
+ version = "0.0.0";
+ src = $2;
+ buildInputs = [];
+}
diff --git a/snippets/nix/mkshell.nix b/snippets/nix/mkshell.nix
new file mode 100644
index 0000000..c7ad05b
--- /dev/null
+++ b/snippets/nix/mkshell.nix
@@ -0,0 +1,3 @@
+pkgs.mkShell {
+ buildInputs = with pkgs; [];
+}
diff --git a/snippets/ruby/class.rb b/snippets/ruby/class.rb
new file mode 100644
index 0000000..5b16823
--- /dev/null
+++ b/snippets/ruby/class.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class $1
+ def initialize
+ $2
+ end
+
+ $3
+end
diff --git a/snippets/typescript/function.tsx b/snippets/typescript/function.tsx
new file mode 100644
index 0000000..ac1b290
--- /dev/null
+++ b/snippets/typescript/function.tsx
@@ -0,0 +1,3 @@
+const $1 = ($2) => {
+ $3
+};
diff --git a/snippets/typescript/react-component.tsx b/snippets/typescript/react-component.tsx
new file mode 100644
index 0000000..5a2723b
--- /dev/null
+++ b/snippets/typescript/react-component.tsx
@@ -0,0 +1,7 @@
+type $1Prop = {
+ $2
+}
+
+export const $1 = ({ }: $1Prop) => {
+ return <div>$3</div>;
+};
diff --git a/snippets/typescript/react-usestate.snip.kak b/snippets/typescript/react-usestate.snip.kak
new file mode 100644
index 0000000..8b2d232
--- /dev/null
+++ b/snippets/typescript/react-usestate.snip.kak
@@ -0,0 +1,11 @@
+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>'"
+ }
+ }
+}