aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorromkatv <roman.perepelitsa@gmail.com>2019-09-24 11:17:54 +0300
committerromkatv <roman.perepelitsa@gmail.com>2019-09-24 11:19:11 +0300
commit4a4f7e1eef960881661276ab382f1bc5a5bb46a3 (patch)
tree7e55921493b2742e6c2c81ee2bafec030b1809ea
parent5f08c5493f78f3dcacc3877d1b8064a58515c48c (diff)
new prompt segment: dotnet_version
To enable this segment: 1. Run `p10k configure`. 2. Open `~/.p10k.zsh` and search for `dotnet_version`. 3. Uncomment the first occurrence. Fixes #233.
-rw-r--r--config/p10k-classic.zsh9
-rw-r--r--config/p10k-lean.zsh9
-rwxr-xr-xinternal/icons.zsh5
-rwxr-xr-xinternal/p10k.zsh21
4 files changed, 42 insertions, 2 deletions
diff --git a/config/p10k-classic.zsh b/config/p10k-classic.zsh
index 376879d9..da478513 100644
--- a/config/p10k-classic.zsh
+++ b/config/p10k-classic.zsh
@@ -53,6 +53,7 @@
# node_version # node.js version
# go_version # go version (https://golang.org)
# rust_version # rustc version (https://www.rust-lang.org)
+ # dotnet_version # .NET version (https://dotnet.microsoft.com)
rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
rvm # ruby version from rvm (https://rvm.io)
kubecontext # current kubernetes context (https://kubernetes.io/)
@@ -575,6 +576,14 @@
# Custom icon.
# typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
+ # .NET version color.
+ typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=134
+ # Show .NET version only when in a .NET project subdirectory.
+ typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
#############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
# Rbenv color.
typeset -g POWERLEVEL9K_RBENV_FOREGROUND=168
diff --git a/config/p10k-lean.zsh b/config/p10k-lean.zsh
index d6a7af92..fa69892d 100644
--- a/config/p10k-lean.zsh
+++ b/config/p10k-lean.zsh
@@ -53,6 +53,7 @@
# node_version # node.js version
# go_version # go version (https://golang.org)
# rust_version # rustc version (https://www.rust-lang.org)
+ # dotnet_version # .NET version (https://dotnet.microsoft.com)
rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
rvm # ruby version from rvm (https://rvm.io)
kubecontext # current kubernetes context (https://kubernetes.io/)
@@ -554,6 +555,14 @@
# Custom icon.
# typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
+ # .NET version color.
+ typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=134
+ # Show .NET version only when in a .NET project subdirectory.
+ typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
#############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
# Rbenv color.
typeset -g POWERLEVEL9K_RBENV_FOREGROUND=168
diff --git a/internal/icons.zsh b/internal/icons.zsh
index 918b0565..36e76fac 100755
--- a/internal/icons.zsh
+++ b/internal/icons.zsh
@@ -113,6 +113,7 @@ function _p9k_init_icons() {
RANGER_ICON '\u2B50' # ⭐
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
PROXY_ICON '\u2B82' # ⮂
+ DOTNET_ICON '.NET'
)
;;
'awesome-fontconfig')
@@ -213,6 +214,7 @@ function _p9k_init_icons() {
RANGER_ICON '\u2B50' # ⭐
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
PROXY_ICON '\u2B82' # ⮂
+ DOTNET_ICON '.NET'
)
;;
'awesome-mapped-fontconfig')
@@ -317,6 +319,7 @@ function _p9k_init_icons() {
RANGER_ICON '\u2B50' # ⭐
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
PROXY_ICON '\u2B82' # ⮂
+ DOTNET_ICON '.NET'
)
;;
'nerdfont-complete'|'nerdfont-fontconfig')
@@ -418,6 +421,7 @@ function _p9k_init_icons() {
RANGER_ICON '\u2B50' # ⭐
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
PROXY_ICON '\u2B82' # ⮂
+ DOTNET_ICON '\uE77F' # 
)
;;
*)
@@ -518,6 +522,7 @@ function _p9k_init_icons() {
RANGER_ICON '\u2B50' # ⭐
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
PROXY_ICON '\u2B82' # ⮂
+ DOTNET_ICON '.NET'
)
;;
esac
diff --git a/internal/p10k.zsh b/internal/p10k.zsh
index bf016b1e..e6a75c15 100755
--- a/internal/p10k.zsh
+++ b/internal/p10k.zsh
@@ -1627,7 +1627,7 @@ prompt_load() {
}
function _p9k_cached_cmd_stdout() {
- local cmd=$commands[$1]
+ local cmd=${commands[$1]:A}
[[ -n $cmd ]] || return
shift
local -H stat
@@ -1642,7 +1642,7 @@ function _p9k_cached_cmd_stdout() {
}
function _p9k_cached_cmd_stdout_stderr() {
- local cmd=$commands[$1]
+ local cmd=${commands[$1]:A}
[[ -n $cmd ]] || return
shift
local -H stat
@@ -1844,6 +1844,22 @@ prompt_nodenv() {
_p9k_prompt_segment "$0" "black" "green" 'NODE_ICON' 0 '' "${v//\%/%%}"
}
+prompt_dotnet_version() {
+ (( $+commands[dotnet] )) || return
+
+ if (( _POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY )); then
+ local dir=$_p9k_pwd
+ while true; do
+ [[ $dir == / ]] && return
+ [[ -n $dir/(project.json|global.json|packet.dependencies|*.csproj|*.fsproj|*.xproj|*.sln)(#qN^/) ]] && break
+ dir=${dir:h}
+ done
+ fi
+
+ _p9k_cached_cmd_stdout dotnet --version || return
+ _p9k_prompt_segment "$0" "magenta" "white" 'DOTNET_ICON' 0 '' "$_p9k_ret"
+}
+
################################################################
# Segment to print a little OS icon
prompt_os_icon() {
@@ -3821,6 +3837,7 @@ _p9k_init_params() {
_p9k_declare -i POWERLEVEL9K_LOAD_WHICH 5
_p9k_declare -b POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW 0
_p9k_declare -b POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY 0
+ _p9k_declare -b POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY 1
_p9k_declare -b POWERLEVEL9K_GO_VERSION_PROJECT_ONLY 1
_p9k_declare -b POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY 1
_p9k_declare -b POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW 0