This fixes an issue for fullwidth characters where the `WRAPLINE` flag
would be checked for the cell containing the wide character, ignoring
the spacer after it.
To work around this, the wrapline character is now always checked based
on the cell *after* fullwidth expansion, instead of the original cell.
Closes#8586.
This patch adds Vi's semantic search and paragraph motion.
The semantic search uses either the selection or the semantic word under
the cursor and jumps to the next match in the desired direction.
Paragraph motion jumps to just above or below the current paragraph.
Closes#7961.
Co-authored-by: Fletcher Gornick <fletcher@gornick.dev>
On macOS every shell is a login shell, which will always print
information about the last login when the terminal is started. The macOS
standard for disabling this is to place a `.hushlogin` file in the
user's home directory, but this did not work with Alacritty since
`login` only looks for this file in the current directory.
To ensure the login message is properly suppressed, Alacritty's default
shell will now check for the presence of the `.hushlogin` file in the
user's home directory and append `-q` to the `login` arguments if it is
present, which will behave as if a `.hushlogin` file was found by
`login`.
Co-authored-by: Thomas <thomas@zed.dev>
Co-authored-by: Anthony <anthony@zed.dev>
Use the `std::env::set_current_dir` from the `pre_exec` and ignore
error, since not changing working directory is a side effect which
shouldn't break spawning a program or block window creation.
Signed-off-by: Tycho Andersen <tycho@tycho.pizza>
Co-authored-by: Kirill Chibisov <contact@kchibisov.com>
Co-authored-by: Christian Duerr <contact@christianduerr.com>
This patch removes the `hold` option on `alacritty_terminal` in favor of
a `drain_on_exit` option, which will drain the PTY before shutdown. The
hold logic is instead handled in `alacritty`.
This patch fixes an issue where the semantic vi motion commands
`SemanticRight` and `SemanticLeft` were not behaving as expected when a
fullwidth character was used as a semantic character.
Closes#8314.
This patch applies all major and minor version bumps, with the exception
of `unicode-width` since it will need to be handled separately for
Unicode version 16.
This fixes an issue with hints where it was possible that the terminal
content of highlighted hints changed between the highlighted hint update
and the activation of the hint.
This patch always validates the hint's text content against the hint
itself to ensure that the content is still valid for the original hint
which triggered the highlight.
Closes#8277.
This fixes issues in width calculation for symbols added in Unicode
version 16.
Since the upstream unicode-width crate has not been updated yet, this
makes use of the temporary unicode-width-16 version to support Unicode
16 with Alacritty 0.14.0.
This fixes an issue where hints highlighted by vi or mouse cursor would
produce an underline on the incorrect line since the highlights only
store the initial match boundaries without accounting for new content
scrolling the terminal.
To accurately invalidate the hint highlights, we use existing damage
information of the current frame. The existing logic to damage hints for
the next frame to account for removal has been changed, since the hints
would otherwise be cleared immediately. Instead we now mark the terminal
as fully damaged for the upcoming frame whenever the hints are cleared.
Closes#7737.
Some users struggle with TOML, since root options must always be at the
top of the file, since they're otherwise associated with the last table.
To avoid misunderstandings, all root-level fields have been removed. A
new `general` section was added to allow housing configuration options
that do not fit into any more specific groups.
Closes#7906.
Semantic escape characters occupying two two grid cells were always
skipped over, making it impossible to have functional fullwidth
characters as part of semantic escape characters.
This patch fixes this by only skipping over fullwidth spacer cells,
rather than skipping those cells entirely.
Closes#8188.
This fixes an issue where an inline search in the left direction would
incorrectly assume that the first cell searched would not contain the
`WRAPLINE` flag, causing the second search for the match end to
terminate prematurely.
Fixes#8060.
This patch fixes an issue with signal handling where Alacritty would
permanently create one signal handling FD for each alacritty window
created by an instance. This FD was never released, causing a leak of
the FD.
Closes#7983.
Winit explicitly states that the window is not focused by default and
the `Focused` event will deliver the state later on.
Also start adding notable changes to alacritty_terminal in its own
CHANGELOG.
Closes#7866.
This fixes an issue where the `Select` action for hyperlink escape text
would select the entire line, instead of selecting only the hyperlink
itself.
It also changes the way hyperlinks with the same ID are highlighted,
removing the restriction of being on consecutive lines and instead
highlighting all visible cells that correspond to the matching
hyperlink.
Closes#7766.
117719b3 removed the extra call for TIOCSWINSZ, however the initial
`openpty` call itself did not set the pixel size, which caused issues
with some clients.
This fixes an issue where a scrolling region that does not start at the
top of the screen would still rotate lines into history when scrolling
the content "upwards".