mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-05-21 11:31:15 -03:00
webconfig themes: shell-friendly filenames
For historical reasons (namely the webconfig origin), our theme names contain spaces and uppercase letters which can be inconvenient when using the "fish_config theme choose" shell command. Use more conventional file names. Web config still uses the pretty names, using the ubiquitous "# name:" property.
This commit is contained in:
@@ -76,7 +76,7 @@ Fish also provides pre-made color themes you can pick with :doc:`fish_config <cm
|
||||
|
||||
For example, to disable nearly all coloring::
|
||||
|
||||
fish_config theme choose None
|
||||
fish_config theme choose none
|
||||
|
||||
Or, to see all themes, right in your terminal::
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ These colors, and many more, can be changed by running ``fish_config``, or by mo
|
||||
|
||||
For example, if you want to disable (almost) all coloring::
|
||||
|
||||
fish_config theme choose None
|
||||
fish_config theme choose none
|
||||
|
||||
This picks the "none" theme. To see all themes::
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ end" >$__fish_config_dir/config.fish
|
||||
|
||||
# If we are starting up for the first time, set various defaults.
|
||||
if test $__fish_initialized -lt 3400
|
||||
echo yes | fish_config theme save "fish default"
|
||||
echo yes | fish_config theme save fish-default
|
||||
set -Ue fish_color_keyword fish_color_option
|
||||
end
|
||||
if test $__fish_initialized -lt 3800 && test "$fish_color_search_match[1]" = bryellow
|
||||
|
||||
@@ -248,15 +248,11 @@ function fish_config --description "Launch fish's web based configuration"
|
||||
|
||||
# If we are choosing a theme or saving from a named theme, load the theme now.
|
||||
# Otherwise, we'll persist the currently loaded/themed variables (in case of `theme save`).
|
||||
set -l theme_path (__fish_config_list_themes $argv[1])[1]
|
||||
if not set -q theme_path[1]
|
||||
echo >&2 "No such theme: $argv[1]"
|
||||
echo >&2 Searched (__fish_config_theme_dir) "and `status list-files tools/web_config/themes`"
|
||||
return 1
|
||||
end
|
||||
|
||||
set -l defined_colors
|
||||
__fish_data_with_file $theme_path cat | while read -lat toks
|
||||
begin
|
||||
__fish_config_cat_theme $argv[1]
|
||||
or return
|
||||
end | while read -lat toks
|
||||
# The whitelist allows only color variables.
|
||||
# Not the specific list, but something named *like* a color variable.
|
||||
# This also takes care of empty lines and comment lines.
|
||||
@@ -306,6 +302,26 @@ function __fish_config_list_prompts
|
||||
string join \n -- $prompt_paths
|
||||
end
|
||||
|
||||
function __fish_config_cat_theme -a theme_name
|
||||
switch $theme_name
|
||||
case 'fish default'
|
||||
set theme_name fish-default
|
||||
case 'ayu Dark' 'ayu Light' 'ayu Mirage' 'Base16 Default Dark' \
|
||||
'Base16 Default Light' 'Base16 Eighties' 'Bay Cruise' Dracula \
|
||||
Fairground 'Just a Touch' Lava 'Mono Lace' 'Mono Smoke' None Nord \
|
||||
'Old School' Seaweed 'Snow Day' 'Solarized Dark' 'Solarized Light' \
|
||||
'Tomorrow Night Bright' 'Tomorrow Night' Tomorrow
|
||||
set theme_name (string lower (string replace -a " " "-" $theme_name))
|
||||
end
|
||||
set -l theme_path (__fish_config_list_themes $theme_name)[1]
|
||||
if not set -q theme_path[1]
|
||||
echo >&2 "No such theme: $argv[1]"
|
||||
echo >&2 Searched (__fish_config_theme_dir) "and `status list-files tools/web_config/themes`"
|
||||
return 1
|
||||
end
|
||||
__fish_data_with_file $theme_path cat
|
||||
end
|
||||
|
||||
function __fish_config_list_themes
|
||||
set -lx dir (__fish_config_theme_dir)
|
||||
__fish_config_matching tools/web_config/themes .theme $argv
|
||||
|
||||
@@ -1123,8 +1123,8 @@ class FishConfigHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
|
||||
output = []
|
||||
output += [self.do_get_colors() | {"theme": "Current"}]
|
||||
output += [
|
||||
self.do_get_colors("themes/fish default.theme")
|
||||
| {"theme": "fish default"}
|
||||
self.do_get_colors("themes/fish-default.theme")
|
||||
| {"theme": "fish-default"}
|
||||
]
|
||||
|
||||
confighome = (
|
||||
|
||||
@@ -121,46 +121,46 @@ diff \
|
||||
(fish_config theme | psub -s config-theme)
|
||||
|
||||
fish_config theme list | string match -r \
|
||||
'^(?:ayu Dark|Base16 Default Light|coolbeans|fish default|None|'\
|
||||
'Tomorrow Night Bright|Tomorrow Night|Tomorrow)$'
|
||||
# CHECK: ayu Dark
|
||||
# CHECK: Base16 Default Light
|
||||
'^(?:ayu-dark|base16-default-light|coolbeans|fish-default|none|'\
|
||||
'tomorrow-night-bright|tomorrow-night|tomorrow)$'
|
||||
# CHECK: ayu-dark
|
||||
# CHECK: base16-default-light
|
||||
# CHECK: coolbeans
|
||||
# CHECK: fish default
|
||||
# CHECK: None
|
||||
# CHECK: Tomorrow Night Bright
|
||||
# CHECK: Tomorrow Night
|
||||
# CHECK: Tomorrow
|
||||
# CHECK: fish-default
|
||||
# CHECK: none
|
||||
# CHECK: tomorrow-night-bright
|
||||
# CHECK: tomorrow-night
|
||||
# CHECK: tomorrow
|
||||
|
||||
fish_config theme show "fish default"
|
||||
fish_config theme show "fish-default"
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}Current{{\x1b\[m}}
|
||||
# CHECK: /bright/vixens{{\x1b\[m}} jump{{\x1b\[m}} |{{\x1b\[m}} "fowl"{{\x1b\[m}} > quack{{\x1b\[m}} &{{\x1b\[m}} # This is a comment
|
||||
# CHECK: {{\x1b\[m}}echo{{\x1b\[m}} 'Errors are the portal to discovery
|
||||
# CHECK: {{\x1b\[m}}Th{{\x1b\[m}}is an autosuggestion
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}fish default{{\x1b\[m}}
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}fish-default{{\x1b\[m}}
|
||||
# CHECK: {{\x1b\[m}}/bright/vixens{{\x1b\[m}} {{\x1b\[36m}}jump{{\x1b\[m}} {{\x1b\[36m}}{{\x1b\[1m}}|{{\x1b\[m}} {{\x1b\[33m}}"fowl"{{\x1b\[m}} {{\x1b\[36m}}{{\x1b\[1m}}> quack{{\x1b\[m}} {{\x1b\[32m}}&{{\x1b\[m}}{{\x1b\[31m}} # This is a comment
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[m}}echo{{\x1b\[m}} {{\x1b\[91m}}'{{\x1b\[33m}}Errors are the portal to discovery
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[m}}Th{{\x1b\[m}}{{\x1b\[90m}}is an autosuggestion
|
||||
|
||||
fish_config theme show ayu\ Dark ayu\ Light | string match -r '^.*ayu.*'
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}ayu Dark{{\x1b\[m}}
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}ayu Light{{\x1b\[m}}
|
||||
fish_config theme show ayu-dark ayu-light | string match -r '^.*ayu.*'
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}ayu-dark{{\x1b\[m}}
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}ayu-light{{\x1b\[m}}
|
||||
|
||||
mkdir $__fish_config_dir/themes
|
||||
touch $__fish_config_dir/themes/custom-from-userconf.theme
|
||||
fish_config theme show | grep -E 'fish default|Default Dark|custom-from-userconf'
|
||||
fish_config theme show | grep -E 'fish-default|default-dark|custom-from-userconf'
|
||||
# CHECK: {{.*}}custom-from-userconf{{\x1b\[m}}
|
||||
# CHECK: {{.*}}Base16 Default Dark{{\x1b\[m}}
|
||||
# CHECK: {{.*}}fish default{{\x1b\[m}}
|
||||
# CHECK: {{.*}}base16-default-dark{{\x1b\[m}}
|
||||
# CHECK: {{.*}}fish-default{{\x1b\[m}}
|
||||
|
||||
# Override a default theme with different colors.
|
||||
__fish_data_with_file tools/web_config/themes/None.theme \
|
||||
cat >$__fish_config_dir/themes/"fish default.theme"
|
||||
fish_config theme show | grep -E 'fish default|Base16 Default Dark' -A1
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}fish default{{\x1b\[m}}
|
||||
__fish_data_with_file tools/web_config/themes/none.theme \
|
||||
cat >$__fish_config_dir/themes/fish-default.theme
|
||||
fish_config theme show | grep -E 'fish-default|base16-default-dark' -A1
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}fish-default{{\x1b\[m}}
|
||||
# CHECK: {{\x1b\[m}}/bright/vixens{{\x1b\[m}} {{\x1b\[m}}jump{{\x1b\[m}}{{.*}}
|
||||
# CHECK: --
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}Base16 Default Dark{{\x1b\[m}}
|
||||
# CHECK: {{\x1b\[m}}{{\x1b\[4m}}base16-default-dark{{\x1b\[m}}
|
||||
# CHECK: {{.*}}/bright/vixens{{.*}}
|
||||
|
||||
function print-sample-colors
|
||||
@@ -189,7 +189,7 @@ echo >$__fish_config_dir/themes/custom-from-userconf.theme \
|
||||
# CHECK: $fish_color_normal: set in universal scope, unexported, with 1 elements
|
||||
# CHECK: $fish_color_normal[1]: |yellow|
|
||||
|
||||
fish_config theme choose 'fish default'
|
||||
fish_config theme choose 'fish-default'
|
||||
print-sample-colors
|
||||
# CHECK: normal=normal
|
||||
# CHECK: autosuggestion=brblack
|
||||
@@ -200,7 +200,7 @@ echo >$__fish_config_dir/themes/custom-from-userconf.theme \
|
||||
# CHECK: $fish_color_normal: set in universal scope, unexported, with 1 elements
|
||||
# CHECK: $fish_color_normal[1]: |yellow|
|
||||
|
||||
echo yes | fish_config theme save 'fish default'
|
||||
echo yes | fish_config theme save 'fish-default'
|
||||
set -S fish_color_normal
|
||||
# CHECK: $fish_color_normal: set in universal scope, unexported, with 1 elements
|
||||
# CHECK: $fish_color_normal[1]: |normal|
|
||||
|
||||
Reference in New Issue
Block a user