Skip to content

extra_functionsdir etc not respected in config.fish #12226

Description

@branchv

After 95aeb16, extra_functionsdir, extra_completionsdir, and extra_confdir are no longer properly set by config.fish due scope shadowing here:

set -l __extra_completionsdir
set -l __extra_functionsdir
set -l __extra_confdir
__fish_data_with_file __fish_build_paths.fish source

For example:

$ status get-file __fish_build_paths.fish | tail -3
set __extra_completionsdir /opt/homebrew/share/fish/vendor_completions.d
set __extra_functionsdir /opt/homebrew/share/fish/vendor_functions.d
set __extra_confdir /opt/homebrew/share/fish/vendor_conf.d
$ set --show fish_function_path | grep /opt/homebrew/share
$ set -l __extra_functionsdir
$ __fish_data_with_file __fish_build_paths.fish source
$ set --show __extra_functionsdir
$__extra_functionsdir: set in local scope, unexported, with 0 elements

The quick fix is just adding --no-scope-shadowing

Metadata

Metadata

Assignees

No one assigned

    Labels

    regressionSomething that used to work, but was broken, especially between releases

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions