xonsh v0.11.0 Release Notes

  • โž• Added:

    • ๐Ÿ“œ added new utility classes xonsh.cli_utils.ArgParserAlias, xonsh.cli_utils.ArgCompleter. These are helper classes, that add coloring and auto-completion support to the alias-commands.
    • when $ENABLE_ASYNC_PROMPT=True lazy load prompt-toolkit's color-input support.
    • โž• Add CTRL-Right key binding to complete a single auto-suggestion word.
    • ๐Ÿ‘‰ Show environment variables' type and descriptions when completing them.
    • Add CTRL-Backspace key binding to delete a single word via $XONSH_CTRL_BKSPC_DELETION.
    • ๐Ÿ‘Œ Improved pip/xpip completer.
    • Separator used by gitstatus can now be styled using XONSH_GITSTATUS_SEPARATOR.
    • Complete 'import' statements with modules that aren't loaded.
    • Complete multiple modules/objects in 'import' statements.
    • ๐Ÿ“‡ Multiple new metadata fields in setup.py
    • ๐Ÿ‘ Pure Python control files are now supported when named *.py. Using python files may lower the startup time by a bit.
    • new environment variable $XONSH_TRACE_SUBPROC_FUNC to handle $XONSH_TRACE_SUBPROC output
    • โž• Added xontrib-pyrtn <https://github.com/dyuri/xontrib-pyrtn> to xontrib list.

    ๐Ÿ”„ Changed:

    • Display error message when running xonfig colors in a non-interactive shell
    • ๐Ÿ“œ Using ArgparserAlias for dirs, popd, pushd
    • ๐Ÿ“œ use ArgparserAlias for disown alias with completion support
    • ๐Ÿ‘ history alias now has colored help message and completion support when running interactively.
    • ๐Ÿ“œ using ArgparserAlias for trace alias with completion support
    • ๐Ÿ‘Œ improve vox CLI completions
    • ๐Ÿ“œ use ArgparserAlias for xexec. Now it supports completions.
    • xonfig now has colored help message when ran interactively.
    • ๐Ÿ“œ Using ArgparserAlias to improve xontrib completions
    • ๐Ÿ”„ Changed !() to also capture background subprocesses
    • ๐ŸŽ Suggested commands are cached for better performance.
    • ๐Ÿ‘Œ Improved pipelines performance by using a mutable buffer.
    • Curly braces { } in directory names are now escaped in the prompt
    • ๐Ÿ‘ The --rc argument is extended to support directories as well as files. Passing a directory will result in all *.xsh files in the directory being sorted and loaded at startup (equivalent to using the environment variable XONSHRC_DIR).
    • โšก๏ธ The environment variables XONSHRC and XONSHRC_DIR are no longer updated by xonsh on startup according to which files were actually loaded. This caused problems if xonsh is called recursively, as the child shells would inherit the modified startup environment of the parent. These variables will now be left untouched, and the actual RC files loaded (according to those variables and command line arguments) can be seen in the output of xonfig.
    • Replaced xontrib-linuxbrew <https://github.com/eugenesvk/xontrib-linuxbrew>_ with xontrib-homebrew <https://github.com/eugenesvk/xontrib-homebrew>_, which also supports Homebrew on macOS

    โœ‚ Removed:

    • ๐Ÿ—„ Completely dropped the deprecated --config-path argument, which no longer did anything.
    • The environment variable LOADED_RC_FILES is no longer set. It contained a list of booleans as to which RC files had been successfully loaded, but it required knowledge of the RC loading internals to interpret which status corresponded to which file. As above, the (successfully) loaded RC files are now shown in xonfig.

    ๐Ÿ›  Fixed:

    • โž• Add quotes in autocomplete when filename contains brackets
    • Handle None value on XSH.env if $UPDATE_OS_ENVIRON is set to True
    • Implemented __hash__ method to Env, so that it can be used in lru_cache without crashing.
    • Make sure aliases are always captured regardless of $XONSH_CAPTURE_ALWAYS
    • fromdircolors doesn't crash if output from subprocess call to dircolors returns nothing (usually due to permission errors)
    • ๐Ÿ›  Fixed issue with environment not being iterable on session objects.
    • ๐Ÿ›  Fixed issue where environment is None in commands cache.
    • ${...}.swap() can be called from multiple threads safetly.
    • Piping multiple function aliases doesn't raise a recursion error anymore.
    • ๐Ÿ›  Fixed detection of App Execution Alias for latest 3.8 and 3.9 releases
    • Jedi completer doesn't complete paths with ~.
    • Sometimes the completion menu doesn't take space when cursor is at the bottom of the screen.
    • ๐Ÿ“ฆ vox now passes system-site-packages option
    • ๐Ÿ›  Fix Duplicate paths left over when add paths to Path via xonsh.tools.EnvPath
    • ๐Ÿ›  Fix Crash with FileNotFoundError when current working directory is deleted #4467
    • Completing a single-arg python code segment (e.g. @(/etc/hos<TAB>)).
    • ๐Ÿ›  Fixed pipelines in WSL2
    • ๐Ÿ†• Newline symbols in Prompt-toolkit's completions are replaced by
    • ๐Ÿ›  Fix launching processes on Windows by using full paths (https://bugs.python.org/issue8557)