From 89c6f5970a9a6a6e2f1d92bc4772439de1b22726 Mon Sep 17 00:00:00 2001 From: Daniel Fichtinger Date: Sun, 18 May 2025 18:24:39 -0400 Subject: [PATCH] AutoYADM commit: 2025-05-18 18:24:39 --- .config/kak/autoload/fishr/fishr.kak | 46 ++++++++-------------------- .config/kak/kakrc | 7 ++--- 2 files changed, 16 insertions(+), 37 deletions(-) diff --git a/.config/kak/autoload/fishr/fishr.kak b/.config/kak/autoload/fishr/fishr.kak index d8dc6a20..5d964da5 100644 --- a/.config/kak/autoload/fishr/fishr.kak +++ b/.config/kak/autoload/fishr/fishr.kak @@ -1,44 +1,24 @@ provide-module fishr %~ -def sh -params .. %{ - eval eval "%%sh{""$@"" # %sh{printf '%s ' ""$@"" | grep -o 'kak_\w\+' | tr '\n' ' '}}" -} - -def fishtest %{ - sh fish -c %{ - echo "info -- $kak_buffile" - notify-send "$kak_buffile" - } -} - define-command fish -params 1.. -docstring %{ fish [code]: Execute provided fish code, evaluating its output as Kakoune commands. } %{ - evaluate-commands %sh{ - vars=$( - printf %s "$1" | grep -o 'kak_\w*' | sort -u | tr '\n' ' ' - ) - # notify-send "$1" - tmp="$(mktemp)" - printf "%s\n%s" "#!/bin/env fish" "$1">"$tmp" - printf %s "eval %sh{ fish $tmp # $vars } ">/tmp/fish-test - } -} + evaluate-commands %sh{ + quote() { + printf "'%s'" "$(printf "%s" "$1" | sed "s/'/'\\\\''/g")" + } -define-command fish-keys -params 1.. -docstring %{ - fish-keys [code]: Execute provided fish code, executing its output with execute-keys. -} %{ - execute-keys %sh{ - fish -c "eval $@" - } + cmd=$(quote "$*") + vars=$(printf '%s\n' "$@" | grep -o 'kak_\w\+' | tr '\n' ' ') + printf "eval %%sh{fish -c %s # %s}" "$cmd" "$vars" + } } - require-module fish require-module kak -add-highlighter shared/kakrc/code/fish regex (?:\s|\A)\K(fish|fish-keys)(?:(?=\s)|\z) 0:keyword -add-highlighter shared/kakrc/fish1 region -recurse '\{' '(^|\h)(fish|fish-keys)([\s{}\w%/$-|''"])* %\{\K' '\}' ref fish -add-highlighter shared/kakrc/fish2 region -recurse '\(' '(^|\h)(fish|fish-keys)([\s{}\w%/$-|''"])* %\(\K' '\)' ref fish -add-highlighter shared/kakrc/fish3 region -recurse '\[' '(^|\h)(fish|fish-keys)([\s{}\w%/$-|''"])* %\[\K' '\]' ref fish -add-highlighter shared/kakrc/fish4 region -recurse '<' '(^|\h)(fish|fish-keys)([\s{}\w%/$-|''"])* %<\K' '>' ref fish +add-highlighter shared/kakrc/code/fish regex (?:\s|\A)\K(fish)(?:(?=\s)|\z) 0:keyword +add-highlighter shared/kakrc/fish1 region -recurse '\{' '(^|\h)(fish)([\s{}\w%/$-|''"])* %\{\K' '\}' ref fish +add-highlighter shared/kakrc/fish2 region -recurse '\(' '(^|\h)(fish)([\s{}\w%/$-|''"])* %\(\K' '\)' ref fish +add-highlighter shared/kakrc/fish3 region -recurse '\[' '(^|\h)(fish)([\s{}\w%/$-|''"])* %\[\K' '\]' ref fish +add-highlighter shared/kakrc/fish4 region -recurse '<' '(^|\h)(fish)([\s{}\w%/$-|''"])* %<\K' '>' ref fish ~ diff --git a/.config/kak/kakrc b/.config/kak/kakrc index 6fe25b2f..051679f2 100644 --- a/.config/kak/kakrc +++ b/.config/kak/kakrc @@ -2,10 +2,9 @@ eval %sh{ kak-tree-sitter -vvvvv -dks --init $kak_session } colorscheme ashen require-module fishr -def fishtest %{ - sh fish -c %{ - echo "info -- $kak_buffile" - notify-send "$kak_buffile" +define-command fish-test %{ + fish %{ + notify-send $kak_buffile } }