diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-10-30 09:24:20 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-10-31 13:25:43 +0530 |
| commit | f69a19a4bd00ad92843b903db3d5967d11095edd (patch) | |
| tree | 3459238e342f04346039286b8301578c6fdaae08 /autoload/snippets | |
| parent | 406432cd53c168390221ae37a41724eda5b867c9 (diff) | |
| download | kakoune-config-f69a19a4bd00ad92843b903db3d5967d11095edd.tar.gz kakoune-config-f69a19a4bd00ad92843b903db3d5967d11095edd.zip | |
Dumb snippets
Diffstat (limited to 'autoload/snippets')
| -rw-r--r-- | autoload/snippets/+default.kak | 13 | ||||
| -rw-r--r-- | autoload/snippets/kakoune.kak | 20 | ||||
| -rw-r--r-- | autoload/snippets/ruby.kak | 13 | ||||
| -rw-r--r-- | autoload/snippets/typescript.kak | 65 |
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;" + } +} |
