aboutsummaryrefslogtreecommitdiff
path: root/autoload/snippets
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/snippets')
-rw-r--r--autoload/snippets/+default.kak13
-rw-r--r--autoload/snippets/kakoune.kak20
-rw-r--r--autoload/snippets/ruby.kak13
-rw-r--r--autoload/snippets/typescript.kak65
4 files changed, 71 insertions, 40 deletions
diff --git a/autoload/snippets/+default.kak b/autoload/snippets/+default.kak
new file mode 100644
index 0000000..3dc871b
--- /dev/null
+++ b/autoload/snippets/+default.kak
@@ -0,0 +1,13 @@
+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
new file mode 100644
index 0000000..d6ed073
--- /dev/null
+++ b/autoload/snippets/kakoune.kak
@@ -0,0 +1,20 @@
+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/ruby.kak b/autoload/snippets/ruby.kak
new file mode 100644
index 0000000..4f851c2
--- /dev/null
+++ b/autoload/snippets/ruby.kak
@@ -0,0 +1,13 @@
+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
index 86f46e7..f2d3e8f 100644
--- a/autoload/snippets/typescript.kak
+++ b/autoload/snippets/typescript.kak
@@ -1,42 +1,27 @@
-# declare-option -hidden str-list snippet_list
+hook global BufSetOption filetype=(?:javascript|typescript|jsx|tsx) %{
+ define-snippet buffer snip-react-component
+ define-snippet buffer snip-react-usestate
+}
-# define-command snippets-insert %{
-# evaluate-commands %sh{
-# cmds="echo $(echo "$kak_opt_snippet_list" | sed 's/=.*//')"
-# # TODO: Fix this shit
-# echo "prompt -menu -shell-script-candidates '$cmd' 'Snippet: ' 'evaluate-commands %val{text}'"
-# }
-# }
+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>'"
+ }
+ }
+ }
+}
-# map global normal <c-p> ':snippets-insert<ret>'
-
-# define-command define-snippet -params 3 %{
-# set-option -add %arg{1} snippet_list %sh{ echo -e "$2=$3\n" }
-# }
-
-# define-snippet global "React component" snip-react-component
-# define-snippet global "React useState" snip-react-usestate
-
-# # hook global BufSetOption filetype=(?:javascript|typescript) %{
-# # define-snippet buffer "React component" snip-react-component
-# # define-snippet buffer "React useState" snip-react-usestate
-# # }
-
-# define-command snip-react-usestate %{
-# prompt 'Name: ' %{
-# evaluate-commands %sh{
-# echo "info %{$kak_text}"
-# st=$(echo "$kak_text" | sed 's/^[A-Z]/\L\0/')
-# setst="set$(echo "$kak_text" | sed 's/^[a-z]/\U\0/')"
-# echo "execute-keys '<esc>,iconst [$st, $setst] = useState();<esc>'"
-# }
-# }
-# }
-
-# define-command snip-react-component %{
-# prompt 'Component name: ' %{
-# execute-keys "<esc>,iconst %val{text} = ({ children }: React.PropsWithChildren) => {<ret>"
-# execute-keys " return <lt>div><lt>/div>;"
-# execute-keys "<ret>}<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;"
+ }
+}