diff options
| author | Alex Leferry 2 <alexherbo2@gmail.com> | 2020-08-26 03:43:05 +0200 |
|---|---|---|
| committer | Alex Leferry 2 <alexherbo2@gmail.com> | 2020-08-26 03:44:11 +0200 |
| commit | b7e666dcb3f490b3ea9e8dd14468e3c32905a2c8 (patch) | |
| tree | dc07d9042aa6a6911f46d01783618f17c216fd0c | |
| parent | bcb2dfa4282a82f29774f95b8e56ebaa4173567e (diff) | |
Add a connect_paths option
| -rw-r--r-- | rc/connect.kak | 45 | ||||
| -rw-r--r-- | rc/env/overrides.env | 6 |
2 files changed, 40 insertions, 11 deletions
diff --git a/rc/connect.kak b/rc/connect.kak index 0f73e21..3148bd9 100644 --- a/rc/connect.kak +++ b/rc/connect.kak @@ -8,14 +8,43 @@ provide-module connect %{ # Options declare-option str connect_environment + # Connect paths + declare-option str-list connect_paths + + # Internal variable to mirror the connect paths as PATH. + declare-option -hidden str connect_environment_paths + + # Watch the connect_paths option + hook -group connect-watch-connect-paths global WinSetOption 'connect_paths=.*' %{ + evaluate-commands %sh{ + # Prelude + . "$kak_opt_prelude_path" + + eval "set -- $kak_quoted_opt_connect_paths" + + # Iterate paths + paths='' + for path do + paths=$paths:$path + done + + # Update the option + kak_escape set-option global connect_environment_paths "$paths" + } + } + + # Initialize the option with the user config paths + declare-option str-list connect_paths "%val{config}/connect/aliases" "%val{config}/connect/commands" + # Commands define-command connect-terminal -params .. -shell-completion -docstring 'Open a new terminal' %{ terminal sh -c %{ kak_opt_prelude_path=$1 kak_opt_connect_path=$2 kak_opt_connect_environment=$3 - kak_session=$4 - kak_client=$5 + kak_opt_connect_environment_paths=$4 + kak_session=$5 + kak_client=$6 . "$kak_opt_connect_path/env/default.env" . "$kak_opt_connect_path/env/overrides.env" @@ -24,13 +53,14 @@ provide-module connect %{ eval "$kak_opt_connect_environment" - shift 5 + shift 6 [ "$1" ] && "$@" || "$SHELL" } -- \ %opt{prelude_path} \ %opt{connect_path} \ %opt{connect_environment} \ + %opt{connect_environment_paths} \ %val{session} \ %val{client} \ %arg{@} @@ -41,6 +71,7 @@ provide-module connect %{ # kak_opt_prelude_path # kak_opt_connect_path # kak_opt_connect_environment + # kak_opt_connect_environment_paths # kak_session # kak_client @@ -62,8 +93,9 @@ provide-module connect %{ kak_opt_prelude_path=$1 kak_opt_connect_path=$2 kak_opt_connect_environment=$3 - kak_session=$4 - kak_server_working_directory=$5 + kak_opt_connect_environment_paths=$4 + kak_session=$5 + kak_server_working_directory=$6 . "$kak_opt_connect_path/env/default.env" . "$kak_opt_connect_path/env/overrides.env" @@ -72,7 +104,7 @@ provide-module connect %{ eval "$kak_opt_connect_environment" - shift 5 + shift 6 cd "$kak_server_working_directory" @@ -81,6 +113,7 @@ provide-module connect %{ %opt{prelude_path} \ %opt{connect_path} \ %opt{connect_environment} \ + %opt{connect_environment_paths} \ %val{session} \ %sh{pwd} \ %arg{@} diff --git a/rc/env/overrides.env b/rc/env/overrides.env index 1404d02..eef38e5 100644 --- a/rc/env/overrides.env +++ b/rc/env/overrides.env @@ -1,10 +1,6 @@ # Connect paths paths=$kak_opt_connect_path/paths -PATH=$paths/aliases:$paths/commands:$PATH:$paths/tools - -# User config paths -paths=$XDG_CONFIG_HOME/kak/connect -PATH=$paths/aliases:$paths/commands:$PATH +PATH=$kak_opt_connect_environment_paths:$paths/aliases:$paths/commands:$PATH:$paths/tools VISUAL=:edit EDITOR=:edit |
