From e751362d9194d9291057759fa33073720c3535fd Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Fri, 26 Jun 2026 15:36:49 +0530 Subject: Shnippets --- autoload/snippets.kak | 22 ++++++++++++++++++++++ autoload/snippets/+default.kak | 13 ------------- autoload/snippets/kakoune.kak | 20 -------------------- autoload/snippets/nix.kak | 26 -------------------------- autoload/snippets/ruby.kak | 13 ------------- autoload/snippets/typescript.kak | 36 ------------------------------------ 6 files changed, 22 insertions(+), 108 deletions(-) create mode 100644 autoload/snippets.kak delete mode 100644 autoload/snippets/+default.kak delete mode 100644 autoload/snippets/kakoune.kak delete mode 100644 autoload/snippets/nix.kak delete mode 100644 autoload/snippets/ruby.kak delete mode 100644 autoload/snippets/typescript.kak (limited to 'autoload') 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 ': snippets-insert' + +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}""" + execute-keys -save-regs '' "s[$]\d+" + 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 ': 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 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 ',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/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 ',istdenv.mkDerivation {' - execute-keys ' pname = "c";' - execute-keys ' version = "0.0.0";' - execute-keys ' src = fetchGithub {' - execute-keys ' owner = "owner";' - execute-keys ' repo = "repo";' - execute-keys ' rev = "master";' - execute-keys ' hash = lib.fakeHash;' - execute-keys ' };' - execute-keys '}' - } -} - -define-command snip-flake-mkshell %{ - execute-keys ',ipkgs.mkShell {' - execute-keys ' buildInputs = with pkgs; [];' - 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 ',i# frozen_string_literal: true' - execute-keys 'class c' - 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 ',iconst [$st, $setst] = useState($kak_reg_v);'" - } - } - } -} - -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;" - } -} - -define-command snip-function %{ - prompt 'Name: ' %{ - execute-keys ",iconst %val{text} = () => {" - execute-keys " return 0;" - execute-keys "};kwlt;" - } -} -- cgit v1.3.1