diff options
Diffstat (limited to '')
| -rw-r--r-- | autoload/repl/repl.kak | 7 | ||||
| -rw-r--r-- | autoload/repl/repl_modes.kak | 37 |
2 files changed, 26 insertions, 18 deletions
diff --git a/autoload/repl/repl.kak b/autoload/repl/repl.kak index 5c55209..3ecb36b 100644 --- a/autoload/repl/repl.kak +++ b/autoload/repl/repl.kak @@ -69,7 +69,8 @@ define-command xrepl-send-command %{ value="$kak_selection" if ! [ -z "$transform" ]; then # Available values in transform script - export kak_buffile kak_selection kak_selection_desc kak_cursor_line kak_cursor_column kak_config KAK_BUNDLE_EXEC + export kak_buffile kak_selection kak_selection_desc kak_cursor_line kak_cursor_column kak_config \ + KAK_BUNDLE_EXEC kak_opt_makecmd KAKOUNE_CLIENT KAKOUNE_SESSION value=$(echo "$kak_selection" | sh -c "$transform" 2>&1) fi echo -e "xrepl-send-text %{$value\n}" @@ -101,8 +102,8 @@ define-command xrepl-begin %{ if [ -z "$init_cmd" ]; then init_cmd="$SHELL"; fi # echo "info %opt{xrepl_current_name}" echo "set-option global xrepl_running true" - cmd=$([ "$kak_opt_xrepl_current_split_vertical" == "true" ] && echo "tmux-xrepl-vertical" || echo "tmux-xrepl-horizontal") - echo "$cmd -l $kak_opt_xrepl_current_split_size $init_cmd" + tmux_cmd=$([ "$kak_opt_xrepl_current_split_vertical" == "true" ] && echo "tmux-xrepl-vertical" || echo "tmux-xrepl-horizontal") + echo "$tmux_cmd -l $kak_opt_xrepl_current_split_size env 'KAKOUNE_SESSION=$kak_session' 'KAKOUNE_CLIENT=$kak_client' $init_cmd" echo "nop %sh{ tmux last-pane }" fi } diff --git a/autoload/repl/repl_modes.kak b/autoload/repl/repl_modes.kak index 657f2a5..6b7550b 100644 --- a/autoload/repl/repl_modes.kak +++ b/autoload/repl/repl_modes.kak @@ -1,9 +1,16 @@ -define-repl-mode global s 'Shell' %{ set global xrepl_current_cmd '$SHELL' } +define-repl-mode global s 'Shell' %{ set global xrepl_current_cmd 'kcr shell' } define-repl-mode global n 'Node' %{ set global xrepl_current_cmd 'node' } define-repl-mode global a 'AI: Claude' %{ set global xrepl_current_cmd 'claude' } +# Send makecmd to shell +define-repl-mode global M 'Makecmd' %{ + set global xrepl_current_cmd 'kcr shell' + set global xrepl_current_transform 'cat > /dev/null; echo $kak_opt_makecmd' +} + hook global BufSetOption filetype=haskell %{ define-repl-mode buffer h 'Haskell: cabal test' %{ + # TODO: maybe use current test file path set global xrepl_current_cmd 'cabal test' set global xrepl_current_clear_screen true } @@ -14,7 +21,7 @@ hook global BufSetOption filetype=ruby %{ set global xrepl_current_cmd '${KAK_BUNDLE_EXEC:-"bundle exec"} rails console' } define-repl-mode buffer r 'Rspec' %{ - set global xrepl_current_cmd '$SHELL' + set global xrepl_current_cmd 'kcr shell' set global xrepl_current_transform 'cat > /dev/null path=$(realpath -s --relative-to="$PWD" "$kak_buffile") if [ "$kak_cursor_line" -gt 5 ]; then path="$path:$kak_cursor_line"; fi @@ -28,8 +35,8 @@ hook global BufSetOption filetype=(?:javascript|typescript|jsx|tsx) %{ # TODO: Search for root cypress config file and cd into it # set global xrepl_current_cmd '(echo "::$kak_config::" | tee foob) && ' define-repl-mode buffer c 'Cypress' %{ - set global xrepl_current_cmd '$SHELL' - set global xrepl_current_transform 'cat > /dev/null; + set global xrepl_current_cmd 'kcr shell' + set global xrepl_current_transform 'cat > /dev/null cypress_config_files="cypress.config.json cypress.config.ts cypress.config.js" project=$($kak_config/scripts/utils.sh find_closest "$kak_buffile" $cypress_config_files) echo "npx cypress run --headless --e2e -P" "''$project''" "--spec ''$kak_buffile'';" @@ -37,20 +44,20 @@ hook global BufSetOption filetype=(?:javascript|typescript|jsx|tsx) %{ set global xrepl_current_clear_screen true } define-repl-mode global j 'Jest' %{ - set global xrepl_current_cmd '$SHELL' - set global xrepl_current_transform 'cat > /dev/null; + set global xrepl_current_cmd 'kcr shell' + set global xrepl_current_transform 'cat > /dev/null echo "sh -c \\"cd ''$(dirname "$kak_buffile")''; npx jest --runTestsByPath ''$kak_buffile''\\";" ' set global xrepl_current_clear_screen true } } -hook global BufSetOption filetype=clojure %{ - # TODO: Just temporary for messing around. Remove module name - map buffer repl r ': xrepl-send-text %{(require ''[pluribus.core :as p] :reload)}; xrepl-send-keys Enter<ret>' -docstring 'Cljs reload' - define-repl-mode buffer j 'Clojurescript repl' %{ - set global xrepl_current_cmd 'clj -M -m cljs.main --repl-opts "{:launch-browser false}" --compile pluribus.core --repl' - set global xrepl_current_split_size 30%% - set global xrepl_current_split_vertical true - } -} +# hook global BufSetOption filetype=clojure %{ +# # TODO: Just temporary for messing around. Remove module name +# map buffer repl r ': xrepl-send-text %{(require ''[pluribus.core :as p] :reload)}; xrepl-send-keys Enter<ret>' -docstring 'Cljs reload' +# define-repl-mode buffer j 'Clojurescript repl' %{ +# set global xrepl_current_cmd 'clj -M -m cljs.main --repl-opts "{:launch-browser false}" --compile pluribus.core --repl' +# set global xrepl_current_split_size 30%% +# set global xrepl_current_split_vertical true +# } +# } |
