* Add XONSH_HISTORY_IGNORE_REGEX support
* Add changelog text
* Add cleanup notes for XONSH_HISTORY_IGNORE_REGEX
* Rename should_append to is_ignored
* Change is_ignored to a History method
* Remove unused re imports
* Docstring formatting cleanup, Black compliance
* Move XONSH_HISTORY_IGNORE_REGEX to History class
* Clarify with parenthesis
* Formatting compliance
* Add validate_ignore_regex check
* Remove validation comment
* Remove XONSH_HISTORY_IGNORE_REGEX test comments
* Add __init__ chaining to DummyHistory
* Add broken test for XONSH_IGNORE_REGEX
* Remove extra test variants
* Fix unit test environment variable name
* Add test for bad regex error output
* Remove unneeded __init__ chaining
* Add test_is_ignore
* Add is_regex and associated tests
* Add doc for XONSH_HISTORY_IGNORE_REGEX
* Change validate_ignore_regex to use is_regex
* Compile regex once and use a cached property
* Let cached_property handle saving regex
Pygments does not understand a "background" of `noinherit`, only
`noinherit` -- so if we are setting `noinherit`, even for a background
color, we do not prepend `bg:`
* Update terminal title before executing subprocess
This eliminates the need to use `pause_call_resume()`, which causes issues
when it sends SIGSTOP to a process that is in the middle of a syscall
(for example, the `swaymsg` command fails when it gets stopped during
a `recv` syscall).
Additionally, this approach is more flexible, as it allows captured
commands and callable aliases to also be updated as expected in the
terminal's title.
* Clear prompt cache in readline shell
* Add type annotation
* Use reset_key() to only reset current_job
* Convert into PromptField class
* Support PromptField with value of None
Allows {current_job:{} | } to work as expected when current_job is a
PromptField.
* Add tests
* Fixing bash completion bug when prefix started with '>', '<', or ':'
* Fixing code formatting
* More code formatting fixes
* Fixing test
* Refactor to fix bug by improving completion parser
* Supporting '<' and '>>' in completion parser
* Support for all IO redirect tokens
It's weirdly hard to find anything about installing xonsh into Windows Terminal (even though that info's right here on the website). So link to that hard-to-find info directly; if someone wants to find out what Windows Terminal is they can Google it on their own :)
* Make job control task queue thread-local
This allows callable aliases to maintain a separate task queue from the
main thread.
* Make job control dictionary thread-local
Use XSH.all_jobs for the main thread and a separate dictionary for other
threads. This allows callable aliases to keep track of their jobs
separate from the main thread.
* Implement use_main_jobs() context manager
This allows threaded commands like jobs, disown, and bg to handle the
main thread's job control
* Run commands in the same process group if in a thread
* Fix tests that use jobs and tasks
* Add tests for subprocess call inside alias
* Add news
* Remove type declarations for _jobs_thread_local
Fixes the mypy error: "Type cannot be declared in assignment to non-self attribute"
Co-authored-by: Noorhteen Raja NJ <jnoortheen@gmail.com>
The fallback is already the default behavior if the user has `pygments`
installed, but if they don't we were awkwardly bailing out here and
preventing startup.