summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hilburn <bhilburn@gmail.com>2016-12-06 02:32:55 +0300
committerGitHub <noreply@github.com>2016-12-06 02:32:55 +0300
commit7a49c9704dbbb0f1be1f9314410f41bcfd859d5e (patch)
treebf691d29a9aa63a44a63bb760b764ff88f9b234e
parentffade7bb6db4d0e13ce0aaf07f016f8cdba71070 (diff)
parent21a5cbd988531b5ca08afb6863f22e592170cdef (diff)
Merge pull request #347 from thomaspaulmann/swift
Add prompt for current installed swift version
-rw-r--r--README.md2
-rw-r--r--functions/icons.zsh3
-rwxr-xr-xpowerlevel9k.zsh-theme25
3 files changed, 23 insertions, 7 deletions
diff --git a/README.md b/README.md
index dc98b7d8..73dcb7df 100644
--- a/README.md
+++ b/README.md
@@ -123,6 +123,8 @@ The segments that are currently available are:
* [`rspec_stats`](#rspec_stats) - Show a ratio of test classes vs code classes for RSpec.
* **Rust Segments:**
* `rust_version` - Display the current rust version and [logo](https://www.rust-lang.org/logos/rust-logo-blk.svg).
+* **Swift Segments:**
+ * `swift_version` - Show the version number of the installed Swift.
**Cloud Segments:**
* **AWS Segments:**
diff --git a/functions/icons.zsh b/functions/icons.zsh
index 2f30cff2..bd1cfa06 100644
--- a/functions/icons.zsh
+++ b/functions/icons.zsh
@@ -72,6 +72,7 @@ case $POWERLEVEL9K_MODE in
VCS_SVN_ICON '(svn) '
RUST_ICON ''
PYTHON_ICON $'\U1F40D' # 🐍
+ SWIFT_ICON ''
)
;;
'awesome-fontconfig')
@@ -126,6 +127,7 @@ case $POWERLEVEL9K_MODE in
VCS_SVN_ICON '(svn) '
RUST_ICON $'\uE6A8' # 
PYTHON_ICON $'\U1F40D' # 🐍
+ SWIFT_ICON ''
)
;;
*)
@@ -180,6 +182,7 @@ case $POWERLEVEL9K_MODE in
VCS_SVN_ICON ''
RUST_ICON ''
PYTHON_ICON ''
+ SWIFT_ICON 'Swift'
)
;;
esac
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index c4b24b55..d574e3b5 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -41,7 +41,7 @@ else
POWERLEVEL9K_INSTALLATION_PATH="$0"
fi
-# Resolve the instllation path
+# Resolve the installation path
if [[ -L "$POWERLEVEL9K_INSTALLATION_PATH" ]]; then
# If this theme is sourced as a symlink, we need to locate the real URL
filename="$(realpath -P $POWERLEVEL9K_INSTALLATION_PATH 2>/dev/null || readlink -f $POWERLEVEL9K_INSTALLATION_PATH 2>/dev/null || perl -MCwd=abs_path -le 'print abs_path readlink(shift);' $POWERLEVEL9K_INSTALLATION_PATH 2>/dev/null)"
@@ -103,10 +103,10 @@ fi
#
# Methodology behind user-defined variables overwriting colors:
# The first parameter to the segment constructors is the calling function's
-# name. From this function name, we strip the "prompt_"-prefix and
-# uppercase it. This is then prefixed with "POWERLEVEL9K_" and suffixed
+# name. From this function name, we strip the "prompt_"-prefix and
+# uppercase it. This is then prefixed with "POWERLEVEL9K_" and suffixed
# with either "_BACKGROUND" or "_FOREGROUND", thus giving us the variable
-# name. So each new segment is user-overwritable by a variable following
+# name. So each new segment is user-overwritten by a variable following
# this naming convention.
################################################################
@@ -117,7 +117,7 @@ CURRENT_BG='NONE'
# Begin a left prompt segment
# Takes four arguments:
-# * $1: Name of the function that was orginally invoked (mandatory).
+# * $1: Name of the function that was originally invoked (mandatory).
# Necessary, to make the dynamic color-overwrite mechanism work.
# * $2: The array index of the current segment
# * $3: Background color
@@ -207,7 +207,7 @@ CURRENT_RIGHT_BG='NONE'
# Begin a right prompt segment
# Takes four arguments:
-# * $1: Name of the function that was orginally invoked (mandatory).
+# * $1: Name of the function that was originally invoked (mandatory).
# Necessary, to make the dynamic color-overwrite mechanism work.
# * $2: The array index of the current segment
# * $3: Background color
@@ -973,6 +973,17 @@ prompt_pyenv() {
fi
}
+# Swift version
+prompt_swift_version() {
+ local swift_version=($(swift --version 2>/dev/null))
+ [[ -z "${swift_version}" ]] && return
+
+ # Extract semantic version
+ swift_version=$(echo ${swift_version} | sed -e 's/[^0-9.]*\([0-9.]*\).*/\1/')
+
+ "$1_prompt_segment" "$0" "$2" "magenta" "white" "${swift_version}" 'SWIFT_ICON'
+}
+
################################################################
# Prompt processing and drawing
################################################################
@@ -1024,7 +1035,7 @@ powerlevel9k_prepare_prompts() {
$(print_icon 'MULTILINE_SECOND_PROMPT_PREFIX')"
if [[ "$POWERLEVEL9K_RPROMPT_ON_NEWLINE" != true ]]; then
# The right prompt should be on the same line as the first line of the left
- # prompt. To do so, there is just a quite ugly workaround: Before zsh draws
+ # prompt. To do so, there is just a quite ugly workaround: Before zsh draws
# the RPROMPT, we advise it, to go one line up. At the end of RPROMPT, we
# advise it to go one line down. See:
# http://superuser.com/questions/357107/zsh-right-justify-in-ps1