diff --git a/test/themes/powerline.base.bats b/test/themes/powerline.base.bats new file mode 100644 index 0000000000..a64540176e --- /dev/null +++ b/test/themes/powerline.base.bats @@ -0,0 +1,39 @@ +# shellcheck shell=bats +# shellcheck disable=SC2034 # Variables consumed by externally-loaded powerline functions. + +load "${MAIN_BASH_IT_DIR?}/test/test_helper.bash" + +function local_setup_file() { + setup_libs "colors" + load "${BASH_IT?}/themes/powerline/powerline.base.bash" +} + +function local_setup() { + LEFT_PROMPT="" + SEGMENTS_AT_LEFT=0 + LAST_SEGMENT_COLOR="" + unset POWERLINE_PROMPT_FOREGROUND_COLOR +} + +@test "powerline base: __powerline_left_segment omits fg color code when POWERLINE_PROMPT_FOREGROUND_COLOR is unset" { + __powerline_left_segment "hello|240" + run printf '%s' "${LEFT_PROMPT}" + refute_output --partial "38;5;" + assert_output --partial "48;5;240" +} + +@test "powerline base: __powerline_left_segment applies POWERLINE_PROMPT_FOREGROUND_COLOR when set" { + POWERLINE_PROMPT_FOREGROUND_COLOR=15 + __powerline_left_segment "hello|240" + run printf '%s' "${LEFT_PROMPT}" + assert_output --partial "38;5;15" + assert_output --partial "48;5;240" +} + +@test "powerline base: __powerline_left_segment fg color changes take effect on each segment" { + POWERLINE_PROMPT_FOREGROUND_COLOR=7 + __powerline_left_segment "first|32" + __powerline_left_segment "second|240" + run printf '%s' "${LEFT_PROMPT}" + assert_output --partial "38;5;7" +} diff --git a/themes/powerline-plain/powerline-plain.base.bash b/themes/powerline-plain/powerline-plain.base.bash index 08b81b5fc6..a589ad9df6 100644 --- a/themes/powerline-plain/powerline-plain.base.bash +++ b/themes/powerline-plain/powerline-plain.base.bash @@ -26,7 +26,7 @@ function __powerline_left_segment { fi fi - LEFT_PROMPT+="$(set_color - "${params[1]}")${pad_before_segment}${params[0]}${normal?}" + LEFT_PROMPT+="$(set_color "${POWERLINE_PROMPT_FOREGROUND_COLOR:--}" "${params[1]}")${pad_before_segment}${params[0]}${normal?}" LAST_SEGMENT_COLOR=${params[1]} ((SEGMENTS_AT_LEFT += 1)) } diff --git a/themes/powerline/powerline.base.bash b/themes/powerline/powerline.base.bash index 85ba0dce93..a25801f452 100644 --- a/themes/powerline/powerline.base.bash +++ b/themes/powerline/powerline.base.bash @@ -268,8 +268,8 @@ function __powerline_left_segment() { fi fi - #change here to cahnge fg color - LEFT_PROMPT+="$(set_color - "${params[1]:-}")${pad_before_segment}${params[0]}${normal?}" + #change here to change fg color + LEFT_PROMPT+="$(set_color "${POWERLINE_PROMPT_FOREGROUND_COLOR:--}" "${params[1]:-}")${pad_before_segment}${params[0]}${normal?}" #seperator char color == current bg LAST_SEGMENT_COLOR="${params[1]:-}" ((SEGMENTS_AT_LEFT += 1))