From eca86908eb3d00371288969de35359a58e6e3fb6 Mon Sep 17 00:00:00 2001 From: Frank Peleato Date: Thu, 26 Mar 2026 11:52:36 -0600 Subject: [PATCH] feat: add salesforce_org prompt segment Add a new user-defined prompt segment that displays the current Salesforce CLI default target org. The segment reads target-org from .sf/config.json, walking up from the current directory to find the nearest Salesforce DX project root. The segment is added to all four main config templates (rainbow, classic, lean, lean-8colors) as a commented-out option in RIGHT_PROMPT_ELEMENTS, along with the segment function definition and customization parameters. Made-with: Cursor --- config/p10k-classic.zsh | 33 +++++++++++++++++++++++++++++++++ config/p10k-lean-8colors.zsh | 33 +++++++++++++++++++++++++++++++++ config/p10k-lean.zsh | 33 +++++++++++++++++++++++++++++++++ config/p10k-rainbow.zsh | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 132 insertions(+) diff --git a/config/p10k-classic.zsh b/config/p10k-classic.zsh index e31705bd..fbf88310 100644 --- a/config/p10k-classic.zsh +++ b/config/p10k-classic.zsh @@ -78,6 +78,7 @@ gcloud # google cloud cli account and project (https://cloud.google.com/) google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) toolbox # toolbox name (https://github.com/containers/toolbox) + # salesforce_org # salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) context # user@hostname nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) ranger # ranger shell (https://github.com/ranger/ranger) @@ -1667,6 +1668,38 @@ # Custom prefix. # typeset -g POWERLEVEL9K_TIME_PREFIX='%248Fat ' + ##[ salesforce_org: salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) ]## + # Displays the Salesforce CLI default target org from .sf/config.json. + # Only shown when inside a Salesforce DX project directory (or subdirectory). + function prompt_salesforce_org() { + local sf_config + local dir=$PWD + while [[ $dir != / ]]; do + if [[ -f "$dir/.sf/config.json" ]]; then + sf_config="$dir/.sf/config.json" + break + fi + dir=${dir:h} + done + [[ -z $sf_config ]] && return + local org + org=$(command awk -F'"' '/target-org/{print $4}' "$sf_config" 2>/dev/null) + [[ -z $org ]] && return + p10k segment -b 4 -f 255 -i $'\uf0c2' -t "$org" + } + + function instant_prompt_salesforce_org() { + prompt_salesforce_org + } + + typeset -g POWERLEVEL9K_SALESFORCE_ORG_FOREGROUND=255 + typeset -g POWERLEVEL9K_SALESFORCE_ORG_BACKGROUND=4 + # Show salesforce_org only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show salesforce_org. + # typeset -g POWERLEVEL9K_SALESFORCE_ORG_SHOW_ON_COMMAND='sf|sfdx' + # Custom icon. + # typeset -g POWERLEVEL9K_SALESFORCE_ORG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Example of a user-defined prompt segment. Function prompt_example will be called on every # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user. diff --git a/config/p10k-lean-8colors.zsh b/config/p10k-lean-8colors.zsh index 3c0fecf8..7ddf862a 100644 --- a/config/p10k-lean-8colors.zsh +++ b/config/p10k-lean-8colors.zsh @@ -78,6 +78,7 @@ gcloud # google cloud cli account and project (https://cloud.google.com/) google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) toolbox # toolbox name (https://github.com/containers/toolbox) + # salesforce_org # salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) context # user@hostname nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) ranger # ranger shell (https://github.com/ranger/ranger) @@ -1642,6 +1643,38 @@ # Custom prefix. # typeset -g POWERLEVEL9K_TIME_PREFIX='%fat ' + ##[ salesforce_org: salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) ]## + # Displays the Salesforce CLI default target org from .sf/config.json. + # Only shown when inside a Salesforce DX project directory (or subdirectory). + function prompt_salesforce_org() { + local sf_config + local dir=$PWD + while [[ $dir != / ]]; do + if [[ -f "$dir/.sf/config.json" ]]; then + sf_config="$dir/.sf/config.json" + break + fi + dir=${dir:h} + done + [[ -z $sf_config ]] && return + local org + org=$(command awk -F'"' '/target-org/{print $4}' "$sf_config" 2>/dev/null) + [[ -z $org ]] && return + p10k segment -b 4 -f 255 -i $'\uf0c2' -t "$org" + } + + function instant_prompt_salesforce_org() { + prompt_salesforce_org + } + + typeset -g POWERLEVEL9K_SALESFORCE_ORG_FOREGROUND=255 + typeset -g POWERLEVEL9K_SALESFORCE_ORG_BACKGROUND=4 + # Show salesforce_org only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show salesforce_org. + # typeset -g POWERLEVEL9K_SALESFORCE_ORG_SHOW_ON_COMMAND='sf|sfdx' + # Custom icon. + # typeset -g POWERLEVEL9K_SALESFORCE_ORG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Example of a user-defined prompt segment. Function prompt_example will be called on every # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and green text greeting the user. diff --git a/config/p10k-lean.zsh b/config/p10k-lean.zsh index a20e1318..9e170fd4 100644 --- a/config/p10k-lean.zsh +++ b/config/p10k-lean.zsh @@ -78,6 +78,7 @@ gcloud # google cloud cli account and project (https://cloud.google.com/) google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) toolbox # toolbox name (https://github.com/containers/toolbox) + # salesforce_org # salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) context # user@hostname nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) ranger # ranger shell (https://github.com/ranger/ranger) @@ -1642,6 +1643,38 @@ # Custom prefix. # typeset -g POWERLEVEL9K_TIME_PREFIX='%fat ' + ##[ salesforce_org: salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) ]## + # Displays the Salesforce CLI default target org from .sf/config.json. + # Only shown when inside a Salesforce DX project directory (or subdirectory). + function prompt_salesforce_org() { + local sf_config + local dir=$PWD + while [[ $dir != / ]]; do + if [[ -f "$dir/.sf/config.json" ]]; then + sf_config="$dir/.sf/config.json" + break + fi + dir=${dir:h} + done + [[ -z $sf_config ]] && return + local org + org=$(command awk -F'"' '/target-org/{print $4}' "$sf_config" 2>/dev/null) + [[ -z $org ]] && return + p10k segment -b 4 -f 255 -i $'\uf0c2' -t "$org" + } + + function instant_prompt_salesforce_org() { + prompt_salesforce_org + } + + typeset -g POWERLEVEL9K_SALESFORCE_ORG_FOREGROUND=255 + typeset -g POWERLEVEL9K_SALESFORCE_ORG_BACKGROUND=4 + # Show salesforce_org only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show salesforce_org. + # typeset -g POWERLEVEL9K_SALESFORCE_ORG_SHOW_ON_COMMAND='sf|sfdx' + # Custom icon. + # typeset -g POWERLEVEL9K_SALESFORCE_ORG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Example of a user-defined prompt segment. Function prompt_example will be called on every # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user. diff --git a/config/p10k-rainbow.zsh b/config/p10k-rainbow.zsh index 730ef196..20cf1269 100644 --- a/config/p10k-rainbow.zsh +++ b/config/p10k-rainbow.zsh @@ -78,6 +78,7 @@ gcloud # google cloud cli account and project (https://cloud.google.com/) google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) toolbox # toolbox name (https://github.com/containers/toolbox) + # salesforce_org # salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) context # user@hostname nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) ranger # ranger shell (https://github.com/ranger/ranger) @@ -1760,6 +1761,38 @@ # Custom prefix. # typeset -g POWERLEVEL9K_TIME_PREFIX='at ' + ##[ salesforce_org: salesforce cli default org (https://developer.salesforce.com/tools/salesforcecli) ]## + # Displays the Salesforce CLI default target org from .sf/config.json. + # Only shown when inside a Salesforce DX project directory (or subdirectory). + function prompt_salesforce_org() { + local sf_config + local dir=$PWD + while [[ $dir != / ]]; do + if [[ -f "$dir/.sf/config.json" ]]; then + sf_config="$dir/.sf/config.json" + break + fi + dir=${dir:h} + done + [[ -z $sf_config ]] && return + local org + org=$(command awk -F'"' '/target-org/{print $4}' "$sf_config" 2>/dev/null) + [[ -z $org ]] && return + p10k segment -b 4 -f 255 -i $'\uf0c2' -t "$org" + } + + function instant_prompt_salesforce_org() { + prompt_salesforce_org + } + + typeset -g POWERLEVEL9K_SALESFORCE_ORG_FOREGROUND=255 + typeset -g POWERLEVEL9K_SALESFORCE_ORG_BACKGROUND=4 + # Show salesforce_org only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show salesforce_org. + # typeset -g POWERLEVEL9K_SALESFORCE_ORG_SHOW_ON_COMMAND='sf|sfdx' + # Custom icon. + # typeset -g POWERLEVEL9K_SALESFORCE_ORG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Example of a user-defined prompt segment. Function prompt_example will be called on every # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and yellow text on red background