From f69a19a4bd00ad92843b903db3d5967d11095edd Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Thu, 30 Oct 2025 09:24:20 +0530 Subject: Dumb snippets --- autoload/snippets/+default.kak | 13 ++++++++ autoload/snippets/kakoune.kak | 20 +++++++++++++ autoload/snippets/ruby.kak | 13 ++++++++ autoload/snippets/typescript.kak | 65 ++++++++++++++++------------------------ 4 files changed, 71 insertions(+), 40 deletions(-) create mode 100644 autoload/snippets/+default.kak create mode 100644 autoload/snippets/kakoune.kak create mode 100644 autoload/snippets/ruby.kak (limited to 'autoload/snippets') 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 ': snippets-insert' + +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 ',idefine-command c %{' + execute-keys '}' + } +} + +define-command snip-kak-hook %{ + prompt 'Event: ' %{ + set-register c %val{text} + execute-keys ',ihook global c .* %{' + 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 ',i# frozen_string_literal: true' + execute-keys 'class c' + 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 ',iconst [$st, $setst] = useState($kak_reg_v);'" + } + } + } +} -# map global normal ':snippets-insert' - -# 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 ',iconst [$st, $setst] = useState();'" -# } -# } -# } - -# define-command snip-react-component %{ -# prompt 'Component name: ' %{ -# execute-keys ",iconst %val{text} = ({ children }: React.PropsWithChildren) => {" -# execute-keys " return div>/div>;" -# execute-keys "}" -# } -# } +define-command snip-react-component %{ + prompt 'Component name: ' %{ + execute-keys ",itype %val{text}Prop = {}" + execute-keys ",iexport const %val{text} = ({ }: %val{text}Prop) => {" + execute-keys " return div>/div>;" + execute-keys "};kwlt;" + } +} -- cgit v1.3.1