Thread the right PWD through autosuggestions

These were getting / as the PWD, resulting in bogus suggestions.
This commit is contained in:
ridiculousfish 2019-01-11 15:04:09 -08:00
parent 455959ae7a
commit 59d62fdd53
2 changed files with 5 additions and 4 deletions

View File

@ -1657,11 +1657,11 @@ maybe_t<env_var_t> env_vars_snapshot_t::get(const wcstring &key, env_mode_flags_
wcstring_list_t env_vars_snapshot_t::get_names(int flags) const { return names; }
const wchar_t *const env_vars_snapshot_t::highlighting_keys[] = {L"PATH", L"CDPATH",
L"fish_function_path", NULL};
const wchar_t *const env_vars_snapshot_t::highlighting_keys[] = {
L"PATH", L"CDPATH", L"fish_function_path", L"PWD", NULL};
const wchar_t *const env_vars_snapshot_t::completing_keys[] = {L"PATH", L"CDPATH",
L"fish_function_path", NULL};
L"fish_function_path", L"PWD", NULL};
#if defined(__APPLE__) || defined(__CYGWIN__)
static int check_runtime_path(const char *path) {

View File

@ -1292,13 +1292,14 @@ static std::function<autosuggestion_result_t(void)> get_autosuggestion_performer
const auto &parser_vars = parser_t::principal_parser().vars();
const unsigned int generation_count = read_generation_count();
const wcstring working_directory = parser_vars.get_pwd_slash();
env_vars_snapshot_t vars(vars, env_vars_snapshot_t::highlighting_keys);
env_vars_snapshot_t vars(parser_vars, env_vars_snapshot_t::completing_keys);
// TODO: suspicious use of 'history' here
// This is safe because histories are immortal, but perhaps
// this should use shared_ptr
return [=]() -> autosuggestion_result_t {
ASSERT_IS_BACKGROUND_THREAD();
const autosuggestion_result_t nothing = {};
// If the main thread has moved on, skip all the work.
if (generation_count != read_generation_count()) {