2023-05-16 19:04:56 by Thomas Klausner | Files touched by this commit (2) |
Log message:
fish: add upstream pull request URL in comment
|
2023-05-16 18:54:50 by Thomas Klausner | Files touched by this commit (2) |
Log message:
fish: fix build on NetBSD-current
fish uses symbols from libterminfo, so it needs to link against it.
|
2023-05-10 01:23:37 by David A. Holland | Files touched by this commit (1) |
Log message:
shells/fish: fix ncurses linkage, from Chavdar Ivanov and RVP in PR 57365
Only add -lterminfo when using base curses on NetBSD, not ncurses.
Also put it in LIBS, not LDFLAGS :-)
The previous behavior gives a bad build, but only with non-default
settings, so I'm not bumping the revision.
XXX: the magic to add -lterminfo probably belongs in curses.bl3.mk
|
2023-03-29 11:39:02 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
fish: update to 3.6.1.
fish 3.6.1 (released March 25, 2022)
====================================
This release of fish contains a number of fixes for problems identified in fish \
3.6.1, as well as some enhancements.
Notable improvements and fixes
------------------------------
- ``abbr --erase`` now also erases the universal variables used by the old abbr \
function. That means::
abbr --erase (abbr --list)
can now be used to clean out all old abbreviations (:issue:`9468`).
- ``abbr --add --universal`` now warns about ``--universal`` being \
non-functional, to make it easier to detect old-style ``abbr`` calls \
(:issue:`9475`).
Deprecations and removed features
---------------------------------
- The Web-based configuration for abbreviations has been removed, as it was not \
functional with the changes abbreviations introduced in 3.6.0 (:issue:`9460`).
Scripting improvements
----------------------
- ``abbr --list`` no longer escapes the abbr name, which is necessary to be able \
to pass it to ``abbr --erase`` (:issue:`9470`).
- ``read`` will now print an error if told to set a read-only variable, instead \
of silently doing nothing (:issue:`9346`).
- ``set_color -v`` no longer crashes fish (:issue:`9640`).
Interactive improvements
------------------------
- Using ``fish_vi_key_bindings`` in combination with fish's ``--no-config`` mode \
works without locking up the shell (:issue:`9443`).
- The history pager now uses more screen space, usually half the screen \
(:issue:`9458`)
- Variables that were set while the locale was C (the default ASCII-only locale) \
will now properly be encoded if the locale is switched (:issue:`2613`, \
:issue:`9473`).
- Escape during history search restores the original command line again (fixing \
a regression in 3.6.0).
- Using ``--help`` on builtins now respects the ``$MANPAGER`` variable, in \
preference to ``$PAGER`` (:issue:`9488`).
- :kbd:`Control-G` closes the history pager, like other shells (:issue:`9484`).
- The documentation for the ``:``, ``[`` and ``.`` builtin commands can now be \
looked up with ``man`` (:issue:`9552`).
- fish no longer crashes when searching history for non-ASCII codepoints \
case-insensitively (:issue:`9628`).
- The :kbd:`Alt-S` binding will now also use ``please`` if available (:issue:`9635`).
- Themes that don't specify every color option can be installed correctly in the \
Web-based configuration (:issue:`9590`).
- Compatibility with Midnight Commander's prompt integration has been improved \
(:issue:`9540`).
- A spurious error, noted when using fish in Google Drive directories under WSL \
2, has been silenced (:issue:`9550`).
- Using ``read`` in ``fish_greeting`` or similar functions will not trigger an \
infinite loop (:issue:`9564`).
- Compatibility when upgrading from old versions of fish (before 3.4.0) has been \
improved (:issue:`9569`).
Improved prompts
^^^^^^^^^^^^^^^^
- The git prompt will compute the stash count to be used independently of the \
informative status (:issue:`9572`).
Completions
^^^^^^^^^^^
- Added completions for:
- ``apkanalyzer`` (:issue:`9558`)
- ``neovim`` (:issue:`9543`)
- ``otool``
- ``pre-commit`` (:issue:`9521`)
- ``proxychains`` (:issue:`9486`)
- ``scrypt`` (:issue:`9583`)
- ``stow`` (:issue:`9571`)
- ``trash`` and helper utilities ``trash-empty``, ``trash-list``, \
``trash-put``, ``trash-restore`` (:issue:`9560`)
- ``ssh-copy-id`` (:issue:`9675`)
- Improvements to many completions, including the speed of completing \
directories in WSL 2 (:issue:`9574`).
- Completions using ``__fish_complete_suffix`` are now offered in the correct \
order, fixing a regression in 3.6.0 (:issue:`8924`).
- ``git`` completions for ``git-foo``-style commands was restored, fixing a \
regression in 3.6.0 (:issue:`9457`).
- File completion now offers ``../`` and ``./`` again, fixing a regression in \
3.6.0 (:issue:`9477`).
- The behaviour of completions using ``__fish_complete_path`` matches standard \
path completions (:issue:`9285`).
Other improvements
------------------
- Improvements and corrections to the documentation.
For distributors
----------------
- fish 3.6.1 builds correctly on Cygwin (:issue:`9502`).
|
2023-01-24 19:36:36 by Thomas Klausner | Files touched by this commit (103) |
Log message:
*: convert to cmake/build.mk
|
2023-01-18 23:02:02 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
fish: update to 3.6.0.
fish 3.6.0 (released January 7, 2023)
=====================================
Notable improvements and fixes
------------------------------
- By default, :kbd:`Control-R` now opens the command history in the pager \
(:issue:`602`). This is fully searchable and syntax-highlighted, as an \
alternative to the incremental search seen in other shells. The new special \
input function ``history-pager`` has been added for custom bindings.
- Abbrevations are more flexible (:issue:`9313`, :issue:`5003`, :issue:`2287`):
- They may optionally replace tokens anywhere on the command line, instead of \
only commands
- Matching tokens may be described using a regular expression instead of a \
literal word
- The replacement text may be produced by a fish function, instead of a \
literal word
- They may position the cursor anywhere in the expansion, instead of at the end
For example::
function multicd
echo cd (string repeat -n (math (string length -- $argv[1]) - 1) ../)
end
abbr --add dotdot --regex '^\.\.+$' --function multicd
This expands ``..`` to ``cd ../``, ``...`` to ``cd ../../`` and ``....`` to \
``cd ../../../`` and so on.
Or::
function last_history_item; echo $history[1]; end
abbr -a !! --position anywhere --function last_history_item
which expands ``!!`` to the last history item, anywhere on the command line, \
mimicking other shells' history expansion.
See :ref:`the documentation <cmd-abbr>` for more.
- ``path`` gained a new ``mtime`` subcommand to print the modification time \
stamp for files. For example, this can be used to handle cache file ages \
(:issue:`9057`)::
> touch foo
> sleep 10
> path mtime --relative foo
10
- ``string`` gained a new ``shorten`` subcommand to shorten strings to a given \
visible width (:issue:`9156`)::
> string shorten --max 10 "Hello this is a long string"
Hello thiā¦
- ``test`` (aka ``[``) gained ``-ot`` (older than) and ``-nt`` (newer than) \
operators to compare file modification times, and ``-ef`` to compare whether the \
arguments are the same file (:issue:`3589`).
- fish will now mark the extent of many errors with a squiggly line, instead of \
just a caret (``^``) at the beginning (:issue:`9130`). For example::
checks/set.fish (line 471): for: a,b: invalid variable name. See `help \
identifiers`
for a,b in y 1 z 3
^~^
- A new function, ``fish_delta``, shows changes that have been made in fish's \
configuration from the defaults (:issue:`9255`).
- ``set --erase`` can now be used with multiple scopes at once, like ``set \
-efglU foo`` (:issue:`7711`, :issue:`9280`).
- ``status`` gained a new subcommand, ``current-commandline``, which retrieves \
the entirety of the currently-executing command line when called from a function \
during execution. This allows easier job introspection (:issue:`8905`, \
:issue:`9296`).
Deprecations and removed features
---------------------------------
- The ``\x`` and ``\X`` escape syntax is now equivalent. ``\xAB`` previously \
behaved the same as ``\XAB``, except that it would error if the value \
"AB" was larger than "7f" (127 in decimal, the highest ASCII \
value) (:issue:`9247`, :issue:`9245`, :issue:`1352`).
- The ``fish_git_prompt`` will now only turn on features if the appropriate \
variable has been set to a true value (of "1", "yes" or \
"true") instead of just checking if it is defined. This allows \
specifically turning features *off* without having to erase variables, such as \
via universal variables. If you have defined a variable to a different value and \
expect it to count as true, you need to change it (:issue:`9274`).
For example, ``set -g __fish_git_prompt_show_informative_status 0`` previously \
would have enabled informative status (because any value would have done so), \
but now it turns it off.
- Abbreviations are no longer stored in universal variables. Existing universal \
abbreviations are still imported, but new abbreviations should be added to \
``config.fish``.
- The short option ``-r`` for abbreviations has changed from ``rename`` to \
``regex``, for consistency with ``string``.
Scripting improvements
----------------------
- ``argparse`` can now be used without option specifications, to allow using \
``--min-args``, ``--max-args`` or for commands that take no options (but might \
in future) (:issue:`9006`)::
function my_copy
argparse --min-args 2 -- $argv
or return
cp $argv
end
- ``set --show`` now shows when a variable was inherited from fish's parent \
process, which should help with debugging (:issue:`9029`)::
> set --show XDG_DATA_DIRS
$XDG_DATA_DIRS: set in global scope, exported, a path variable with 4 elements
$XDG_DATA_DIRS[1]: |/home/alfa/.local/share/flatpak/exports/share|
$XDG_DATA_DIRS[2]: |/var/lib/flatpak/exports/share|
$XDG_DATA_DIRS[3]: |/usr/local/share|
$XDG_DATA_DIRS[4]: |/usr/share|
$XDG_DATA_DIRS: originally inherited as \
|/home/alfa/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/u \
sr/local/share/:/usr/share/|
- The read limit is now restored to the default when :envvar:`fish_read_limit` \
is unset (:issue:`9129`).
- ``math`` produces an error for division-by-zero, as well as augmenting some \
errors with their extent (:issue:`9190`). This changes behavior in some limited \
cases, such as::
math min 1 / 0, 5
which would previously print "5" (because in floating point division \
"1 / 0" yields infinite, and 5 is smaller than infinite) but will now \
return an error.
- ``fish_clipboard_copy`` and ``fish_clipboard_paste`` can now be used in pipes \
(:issue:`9271`)::
git rev-list 3.5.1 | fish_clipboard_copy
fish_clipboard_paste | string join + | math
- ``status fish-path`` returns a fully-normalised path, particularly noticeable \
on NetBSD (:issue:`9085`).
Interactive improvements
------------------------
- If the terminal definition for :envvar:`TERM` can't be found, fish now tries \
using the "xterm-256color" and "xterm" definitions before \
"ansi" and "dumb". As the majority of terminal emulators in \
common use are now more or less xterm-compatible (often even explicitly claiming \
the xterm-256color entry), this should often result in a fully or almost fully \
usable terminal (:issue:`9026`).
- A new variable, :envvar:`fish_cursor_selection_mode`, can be used to configure \
whether the command line selection includes the character under the cursor \
(``inclusive``) or not (``exclusive``). The new default is ``exclusive``; use \
``set fish_cursor_selection_mode inclusive`` to get the previous behavior back \
(:issue:`7762`).
- fish's completion pager now fills half the terminal on first tab press instead \
of only 4 rows, which should make results visible more often and save key \
presses, without constantly snapping fish to the top of the terminal \
(:issue:`9105`, :issue:`2698`).
- The ``complete-and-search`` binding, used with :kbd:`Shift-Tab` by default, \
selects the first item in the results immediately (:issue:`9080`).
- ``bind`` output is now syntax-highlighted when used interacively.
- :kbd:`Alt-H` (the default ``__fish_man_page`` binding) does a better job of \
showing the manual page of the command under cursor (:issue:`9020`).
- If :envvar:`fish_color_valid_path` contains an actual color instead of just \
modifiers, those will be used for valid paths even if the underlying color isn't \
"normal" (:issue:`9159`).
- The key combination for the QUIT terminal sequence, often \
:kbd:`Control-Backslash` (``\x1c``), can now be sused as a binding \
(:issue:`9234`).
- fish's vi mode uses normal xterm-style sequences to signal cursor change, \
instead of using the iTerm's proprietary escape sequences. This allows for a \
blinking cursor and makes it work in complicated scenarios with nested \
terminals. (:issue:`3741`, :issue:`9172`)
- When running fish on a remote system (such as inside SSH or a container), \
:kbd:`Control-X` now copies to the local client system's clipboard if the \
terminal supports OSC 52.
- ``commandline`` gained two new options, ``--selection-start`` and \
``--selection-end``, to set the start/end of the current selection \
(:issue:`9197`, :issue:`9215`).
- fish's builtins now handle keyboard interrupts (:kbd:`Control-C`) correctly \
(:issue:`9266`).
Completions
^^^^^^^^^^^
- Added completions for:
- ``ark``
- ``asciinema`` (:issue:`9257`)
- ``clojure`` (:issue:`9272`)
- ``csh``
- ``direnv`` (:issue:`9268`)
- ``dive`` (:issue:`9082`)
- ``dolphin``
- ``dua`` (:issue:`9277`)
- ``efivar`` (:issue:`9318`)
- ``eg``
- ``es`` (:issue:`9388`)
- ``firefox-developer-edition`` and ``firefox`` (:issue:`9090`)
- ``fortune`` (:issue:`9177`)
- ``kb``
- ``kind`` (:issue:`9110`)
- ``konsole``
- ``ksh``
- ``loadkeys`` (:issue:`9312`)
- ``okular``
- ``op`` (:issue:`9300`)
- ``ouch`` (:issue:`9405`)
- ``pix``
- ``readelf`` (:issue:`8746`, :issue:`9386`)
- ``qshell``
- ``rc``
- ``sad`` (:issue:`9145`)
- ``tcsh``
- ``toot``
- ``tox`` (:issue:`9078`)
- ``wish``
- ``xed``
- ``xonsh`` (:issue:`9389`)
- ``xplayer``
- ``xreader``
- ``xviewer``
- ``yash`` (:issue:`9391`)
- ``zig`` (:issue:`9083`)
- Improvements to many completions, including making ``cd`` completion much \
faster (:issue:`9220`).
- Completion of tilde (``~``) works properly even when the file name contains an \
escaped character (:issue:`9073`).
- fish no longer loads completions if the command is used via a relative path \
and is not in :envvar:`PATH` (:issue:`9133`).
- fish no longer completes inside of comments (:issue:`9320`).
Improved terminal support
^^^^^^^^^^^^^^^^^^^^^^^^^
- Opening ``help`` on WSL now uses PowerShell to open the browser if available, \
removing some awkward UNC path errors (:issue:`9119`).
Other improvements
------------------
- The Web-based configuration tool now works on systems with IPv6 disabled \
(:issue:`3857`).
- Aliases can ignore arguments by ending them with ``#`` (:issue:`9199`).
- ``string`` is now faster when reading large strings from stdin (:issue:`9139`).
- ``string repeat`` uses less memory and is faster. (:issue:`9124`)
- Builtins are much faster when writing to a pipe or file. (:issue:`9229`).
- Performance improvements to highlighting (:issue:`9180`) should make using \
fish more pleasant on slow systems.
- On 32-bit systems, globs like ``*`` will no longer fail to return some files, \
as large file support has been enabled.
Fixed bugs
----------
- The history search text for a token search is now highlighted correctly if the \
line contains multiple instances of that text (:issue:`9066`).
- ``process-exit`` and ``job-exit`` events are now generated for all background \
jobs, including those launched from event handlers (:issue:`9096`).
- A crash when completing a token that contained both a potential glob and a \
quoted variable expansion was fixed (:issue:`9137`).
- ``prompt_pwd`` no longer accidentally overwrites a global or universal \
``$fish_prompt_pwd_full_dirs`` when called with the ``-d`` or \
``--full-length-dirs`` option (:issue:`9123`).
- A bug which caused fish to freeze or exit after running a command which does \
not preserve the foreground process group was fixed (:issue:`9181`).
- The "Disco" sample prompt no longer prints an error in some working \
directories (:issue:`9164`). If you saved this prompt, you should run \
``fish_config prompt save disco`` again.
- fish launches external commands via the given path again, rather than always \
using an absolute path. This behaviour was inadvertently changed in 3.5.0 and is \
visible, for example, when launching a bash script which checks ``$0`` \
(:issue:`9143`).
- ``printf`` no longer tries to interpret the first argument as an option \
(:issue:`9132`).
- Interactive ``read`` in scripts will now have the correct keybindings again \
(:issue:`9227`).
- A possible stack overflow when recursively evaluating substitutions has been \
fixed (:issue:`9302`).
- A crash with relative $CDPATH has been fixed (:issue:`9407`).
- ``printf`` now properly fills extra ``%d`` specifiers with 0 even on macOS and \
BSD (:issue:`9321`).
- ``fish_key_reader`` now correctly exits when receiving a SIGHUP (like after \
closing the terminal) (:issue:`9309`).
- ``fish_config theme save`` now works as documented instead of erroring out \
(:issue:`9088`, :issue:`9273`).
- fish no longer triggers prompts to install command line tools when first run \
on macOS (:issue:`9343`).
- ``fish_git_prompt`` now quietly fails on macOS if the xcrun cache is not yet \
populated (:issue:`6625`), working around a potential hang.
For distributors
----------------
- The vendored PCRE2 sources have been removed. It is recommended to declare \
PCRE2 as a dependency when packaging fish. If the CMake variable \
FISH_USE_SYSTEM_PCRE2 is false, fish will now download and build PCRE2 from the \
official repo (:issue:`8355`, :issue:`8363`). Note this variable defaults to \
true if PCRE2 is found installed on the system.
|
2023-01-04 08:42:05 by Thomas Klausner | Files touched by this commit (1) |
Log message:
fish: link against terminfo
For now, only on NetBSD - probably needed on all platforms?
Needed by binutils 2.39.
|
2022-08-22 21:15:17 by Thomas Klausner | Files touched by this commit (3) | |
Log message:
fish: update to 3.5.1.
fish 3.5.1 (released July 20, 2022)
===================================
This release of fish introduces the following small enhancements:
- Cursor shaping for Vi mode is enabled by default in tmux, and will be used if \
the outer terminal is capable (:issue:`8981`).
- ``printf`` returns a better error when used with arguments interpreted as \
octal numbers (:issue:`9035`).
- ``history merge`` when in private mode is now an error, rather than wiping out \
other sessions' history (:issue:`9050`).
- The error message when launching a command that is built for the wrong \
architecture on macOS is more helpful (:issue:`9052`).
- Added completions for:
- ``choose`` (:issue:`9065`)
- ``expect`` (:issue:`9060`)
- ``navi`` (:issue:`9064`)
- ``qdbus`` (:issue:`9031`)
- ``reflector`` (:issue:`9027`)
- Improvements to some completions.
This release also fixes a number of problems identified in fish 3.5.0.
- Completing ``git blame`` or ``git -C`` works correctly (:issue:`9053`).
- On terminals that emit a ``CSI u`` sequence for :kbd:`Shift-Space`, fish \
inserts a space instead of printing an error. (:issue:`9054`).
- ``status fish-path`` on Linux-based platforms could print the path with a \
" (deleted)" suffix (such as ``/usr/bin/fish (deleted)``), which is \
now removed (:issue:`9019`).
- Cancelling an initial command (from fish's ``--init-command`` option) with \
:kbd:`Control-C` no longer prevents configuration scripts from running \
(:issue:`9024`).
- The job summary contained extra blank lines if the prompt used multiple lines, \
which is now fixed (:issue:`9044`).
- Using special input functions in bindings, in combination with ``and``/``or`` \
conditionals, no longer crashes (:issue:`9051`).
|
2022-08-18 20:11:51 by Thomas Klausner | Files touched by this commit (4) | |
Log message:
fish: update to 3.5.0.
fish 3.5.0 (released June 16, 2022)
===================================
Notable improvements and fixes
------------------------------
- A new ``path`` builtin command to filter and transform paths (:issue:`7659`, \
:issue:`8958`). For example, to list all the separate extensions used on files \
in /usr/share/man (after removing one extension, commonly a ".gz")::
path filter -f /usr/share/man/** | path change-extension '' | path extension \
| path sort -u
- Tab (or any key bound to ``complete``) now expands wildcards instead of \
invoking completions, if there is a wildcard in the path component under the \
cursor (:issue:`954`, :issue:`8593`).
- Scripts can now catch and handle the SIGINT and SIGTERM signals, either via \
``function --on-signal`` or with ``trap`` (:issue:`6649`).
Deprecations and removed features
---------------------------------
- The ``stderr-nocaret`` feature flag, introduced in fish 3.0 and enabled by \
default in fish 3.1, has been made read-only.
That means it is no longer possible to disable it, and code supporting the \
``^`` redirection has been removed (:issue:`8857`, :issue:`8865`).
To recap: fish used to support ``^`` to redirect stderr, so you could use \
commands like::
test "$foo" -gt 8 ^/dev/null
to ignore error messages. This made the ``^`` symbol require escaping and \
quoting, and was a bit of a weird shortcut considering ``2>`` already worked, \
which is only one character longer.
So the above can simply become::
test "$foo" -gt 8 2>/dev/null
- The following feature flags have been enabled by default:
- ``regex-easyesc``, which makes ``string replace -r`` not do a superfluous \
round of unescaping in the replacement expression.
That means e.g. to escape any "a" or "b" in an argument \
you can use ``string replace -ra '([ab])' '\\\\$1' foobar`` instead of needing 8 \
backslashes.
This only affects the *replacement* expression, not the *match* expression \
(the ``'([ab])'`` part in the example).
A survey of plugins on GitHub did not turn up any affected code, so we do \
not expect this to affect many users.
This flag was introduced in fish 3.1.
- ``ampersand-nobg-in-token``, which means that ``&`` will not create a \
background job if it occurs in the middle of a word. For example, ``echo \
foo&bar`` will print "foo&bar" instead of running ``echo foo`` \
in the background and then starting ``bar`` as a second job.
Reformatting with ``fish_indent`` would already introduce spaces, turning \
``echo foo&bar`` into ``echo foo & bar``.
This flag was introduced in fish 3.4.
To turn off these flags, add ``no-regex-easyesc`` or \
``no-ampersand-nobg-in-token`` to :envvar:`fish_features`` and restart fish::
set -Ua fish_features no-regex-easyesc
Like ``stderr-nocaret``, they will eventually be made read-only.
- Most ``string`` subcommands no longer append a newline to their input if the \
input didn't have one (:issue:`8473`, :issue:`3847`)
- Fish's escape sequence removal (like for ``string length --visible`` or to \
figure out how wide the prompt is) no longer has special support for \
non-standard color sequences like from Data General terminals, e.g. the Data \
General Dasher D220 from 1984. This removes a bunch of work in the common case, \
allowing ``string length --visible`` to be much faster with unknown escape \
sequences. We don't expect anyone to have ever used fish with such a terminal \
(:issue:`8769`).
- Code to upgrade universal variables from fish before 3.0 has been removed. \
Users who upgrade directly from fish versions 2.7.1 or before will have to set \
their universal variables & abbreviations again. (:issue:`8781`)
- The meaning of an empty color variable has changed (:issue:`8793`). \
Previously, when a variable was set but empty, it would be interpreted as the \
"normal" color. Now, empty color variables cause the same effect as \
unset variables - the general highlighting variable for that type is used \
instead. For example::
set -g fish_color_command blue
set -g fish_color_keyword
would previously make keywords "normal" (usually white in a dark \
terminal). Now it'll make them blue. To achieve the previous behavior, use the \
normal color explicitly: ``set -g fish_color_keyword normal``.
This makes it easier to make self-contained color schemes that don't \
accidentally use color that was set before.
``fish_config`` has been adjusted to set known color variables that a theme \
doesn't explicitly set to empty.
- ``eval`` is now a reserved keyword, so it can't be used as a function name. \
This follows ``set`` and ``read``, and is necessary because it can't be cleanly \
shadowed by a function - at the very least ``eval set -l argv foo`` breaks. Fish \
will ignore autoload files for it, so left over ``eval.fish`` from previous fish \
versions won't be loaded.
- The git prompt in informative mode now defaults to skipping counting untracked \
files, as this was extremely slow. To turn it on, set \
:envvar:`__fish_git_prompt_showuntrackedfiles` or set the git config value \
"bash.showuntrackedfiles" to ``true`` explicitly (which can be done \
for individual repositories). The "informative+vcs" sample prompt \
already skipped display of untracked files, but didn't do so in a way that \
skipped the computation, so it should be quite a bit faster in many cases \
(:issue:`8980`).
- The ``__terlar_git_prompt`` function, used by the "Terlar" sample \
prompt, has been rebuilt as a configuration of the normal ``fish_git_prompt`` to \
ease maintenance, improve performance and add features (like reading per-repo \
git configuration). Some slight changes remain; users who absolutely must have \
the same behavior are encouraged to copy the old function (:issue:`9011`, \
:issue:`7918`, :issue:`8979`).
Scripting improvements
----------------------
- Quoted command substitution that directly follow a variable expansion (like \
``echo "$var$(echo x)"``) no longer affect the variable expansion \
(:issue:`8849`).
- Fish now correctly expands command substitutions that are preceded by an \
escaped dollar (like ``echo \$(echo)``). This regressed in version 3.4.0.
- ``math`` can now handle underscores (``_``) as visual separators in numbers \
(:issue:`8611`, :issue:`8496`)::
math 5 + 2_123_252
- ``math``'s ``min`` and ``max`` functions now take a variable number of \
arguments instead of always requiring 2 (:issue:`8644`, :issue:`8646`)::
> math min 8,2,4
2
- ``read`` is now faster as the last process in a pipeline (:issue:`8552`).
- ``string join`` gained a new ``--no-empty`` flag to skip empty arguments \
(:issue:`8774`, :issue:`8351`).
- ``read`` now only triggers the ``fish_read`` event, not the ``fish_prompt`` \
event (:issue:`8797`). It was supposed to work this way in fish 3.2.0 and later, \
but both events were emitted.
- The TTY modes are no longer restored when non-interactive shells exit. This \
fixes wrong tty modes in pipelines with interactive commands. (:issue:`8705`).
- Some functions shipped with fish printed error messages to standard output, \
but they now they rightly go to standard error (:issue:`8855`).
- ``jobs`` now correctly reports CPU usage as a percentage, instead of as a \
number of clock ticks (:issue:`8919`).
- ``process-exit`` events now fire when the process exits even if the job has \
not yet exited, fixing a regression in 3.4.1 (:issue:`8914`).
Interactive improvements
------------------------
- Fish now reports a special error if a command wasn't found and there is a \
non-executable file by that name in :envvar:`PATH` (:issue:`8804`).
- ``less`` and other interactive commands would occasionally be stopped when run \
in a pipeline with fish functions; this has been fixed (:issue:`8699`).
- Case-changing autosuggestions generated mid-token now correctly append only \
the suffix, instead of duplicating the token (:issue:`8820`).
- ``ulimit`` learned a number of new options for the resource limits available \
on Linux, FreeBSD ande NetBSD, and returns a specific warning if the limit \
specified is not available on the active operating system (:issue:`8823`, \
:issue:`8786`).
- The ``vared`` command can now successfully edit variables named \
"tmp" or "prompt" (:issue:`8836`, :issue:`8837`).
- ``time`` now emits an error if used after the first command in a pipeline \
(:issue:`8841`).
- ``fish_add_path`` now prints a message for skipped non-existent paths when \
using the ``-v`` flag (:issue:`8884`).
- Since fish 3.2.0, pressing :kbd:`Control-D` while a command is running would \
end up inserting a space into the next commandline, which has been fixed \
(:issue:`8871`).
- A bug that caused multi-line prompts to be moved down a line when pasting or \
switching modes has been fixed (:issue:`3481`).
- The Web-based configuration system no longer strips too many quotes in the \
abbreviation display (:issue:`8917`, :issue:`8918`).
- Fish started with ``--no-config`` will now use the default keybindings \
(:issue:`8493`)
- When fish inherits a :envvar:`USER` environment variable value that doesn't \
correspond to the current effective user ID, it will now correct it in all cases \
(:issue:`8879`, :issue:`8583`).
- Fish sets a new :envvar:`EUID`` variable containing the current effective user \
id (:issue:`8866`).
- ``history search`` no longer interprets the search term as an option \
(:issue:`8853`)
- The status message when a job terminates should no longer be erased by a \
multiline prompt (:issue:`8817`)
New or improved bindings
^^^^^^^^^^^^^^^^^^^^^^^^
- The :kbd:`Alt-S` binding will now insert ``doas`` instead of ``sudo`` if \
necessary (:issue:`8942`).
- The ``kill-whole-line`` special input function now kills the newline \
preceeding the last line. This makes ``dd`` in vi-mode clear the last line \
properly.
- The new ``kill-inner-line`` special input function kills the line without any \
newlines, allowing ``cc`` in vi-mode to clear the line while preserving newlines \
(:issue:`8983`).
- On terminals that emit special sequences for these combinations, \
:kbd:`Shift-Space` is bound like :kbd:`Space`, and :kbd:`Ctrl-Return` is bound \
like :kbd:`Return` (:issue:`8874`).
Improved prompts
^^^^^^^^^^^^^^^^
- A new ``Astronaut`` prompt (:issue:`8775`), a multi-line prompt using plain \
text reminiscent of the Starship.rs prompt.
Completions
^^^^^^^^^^^
- Added completions for:
- ``archlinux-java`` (:issue:`8911`)
- ``apk`` (:issue:`8951`)
- ``brightnessctl`` (:issue:`8758`)
- ``efibootmgr`` (:issue:`9010`)
- ``fastboot`` (:issue:`8904`)
- ``optimus-manager`` (:issue:`8913`)
- ``rclone`` (:issue:`8819`)
- ``sops`` (:issue:`8821`)
- ``tuned-adm`` (:issue:`8760`)
- ``wg-quick`` (:issue:`8687`)
- ``complete`` can now be given multiple ``--condition`` options. They will be \
attempted in the order they were given, and only if all succeed will the \
completion be made available (as if they were connected with ``&&``). \
This helps with caching - fish's complete system stores the return value of each \
condition as long as the commandline doesn't change, so this can reduce the \
number of conditions that need to be evaluated (:issue:`8536`, :issue:`8967`).
Improved terminal support
^^^^^^^^^^^^^^^^^^^^^^^^^
- Working directory reporting is enabled for kitty (:issue:`8806`).
- Changing the cursor shape is now enabled by default in iTerm2 (:issue:`3696`).
For distributors
----------------
- libatomic is now correctly detected as necessary when building on RISC-V \
(:issue:`8850`, :issue:`8851`).
- In some cases, the build process found the wrong libintl on macOS. This has \
been corrected (:issue:`5244`).
- The paths for completions, functions, and configuration snippets now include
subdirectories ``fish/vendor_completions.d``, ``fish/vendor_functions.d``, and
``fish/vendor_conf.d`` (respectively) within ``XDG_DATA_HOME`` (or \
``~/.local/share``
if not defined) (:issue:`8887`, :issue:`7816`).
|
2022-08-09 14:08:36 by Jonathan Perkin | Files touched by this commit (72) |
Log message:
*: Remove hardcoded -liconv / -lintl on SunOS.
This is now handled centrally via OPSYS_EXPLICIT_LIBDEPS support in libiconv
and gettext-lib.
|