diff --git a/usr/share/kak/autoload/emmet.kak b/usr/share/kak/autoload/emmet.kak new file mode 100644 index 0000000..a329528 --- /dev/null +++ b/usr/share/kak/autoload/emmet.kak @@ -0,0 +1,51 @@ +# Call emmet-cli with the current selection as input. +# Depends on https://github.com/Delapouite/emmet-cli +define-command emmet %{ + evaluate-commands -save-regs '"' %{ + execute-keys -save-regs "" d + evaluate-commands %sh{ + snippet=$(echo "$kak_reg_dquote" | emmet -p ) + echo "snippets-insert %{$snippet}" + } + } +} + +define-command emmet-select-abbreviation %{ + execute-keys H +} + +declare-option completions emmet_completions + +define-command emmet-complete %{ + evaluate-commands -draft -save-regs '^"' %{ + try %{ + execute-keys -save-regs "" Z + emmet-select-abbreviation + execute-keys -save-regs "" yz + evaluate-commands %sh{ + ( + snippet=$(echo "$kak_reg_dquote" | emmet -p ) + [ -z "$snippet" ] || printf "eval -client %s -save-regs '\"' %%{ + set window emmet_completions %s.%s@%s \ + ' |eval -draft %%{emmet-select-abbreviation;exec d};snippets-insert %%{%s}|%s (emmet abbr)' + }" "$kak_client" "$kak_cursor_line" "$kak_cursor_column" $(date +%N) "$snippet" "$kak_reg_dquote" | kak -p $kak_session + ) >/dev/null 2>&1