aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/display/content.rs
Commit message (Collapse)AuthorAge
* Add configurable crosshairs to Alacritty.Josh Rahm2021-10-08
| | | | | | This allows the user to put semitransparent rectangles around the current cursor line and column, á la Vim's cursor line/column, but for the whole terminal.
* Merge remote-tracking branch 'betaboon/graphics' into experimentalJosh Rahm2021-10-05
|\
| * Add Sixel supportAyose2021-08-17
| | | | | | | | Fixes #910
* | Added a dotted underline feature and changed the undercurl feature to beJosh Rahm2021-09-27
| | | | | | | | more antialiased.
* | Add overline attribute.Josh Rahm2021-09-15
| |
* | Added ability to set the special color for the undercur and underlines using ↵Josh Rahm2021-09-15
| | | | | | | | the standard ANSI code 59
* | Added a rudimentary undercurl to Alacritty. Currently does not support ↵Josh Rahm2021-09-15
|/ | | | setting the color. That is the next task
* Add option to apply opacity to all background colorsKirill Chibisov2021-08-16
| | | | | | | In some cases it could be desired to apply 'background_opacity' to all background colors instead of just 'colors.primary.background', thus adding an 'colors.opaque_background_colors' option to control that. Fixes #741.
* Fix clippy warningsChristian Duerr2021-07-03
|
* Improve rendering performanceChristian Duerr2021-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | This PR combines a couple of optimizations to drastically reduce the time it takes to gather everything necessary for rendering Alacritty's terminal grid. To help with the iteration over the grid, the `DisplayIter` which made heavy use of dynamic dispatch has been replaced with a simple addition to the `GridIterator` which also had the benefit of making the code a little easier to understand. The hints/search check for each cell was always performing an array lookup before figuring out that the cell is not part of a hint or search. Since the general case is that the cell is neither part of hints or search, they've been wrapped in an `Option` to make verifying their activity a simple `is_some()` check. For some reason the compiler was also struggling with the `cursor` method of the `RenderableContent`. Since the iterator is explicitly drained, the performance took a hit of multiple milliseconds for a single branch. Our implementation does never reach the case where draining the iterator would be necessary, so this sanity check has just been replaced with a `debug_assert`. Overall this has managed to reduce the time it takes to collect all renderable content from ~7-8ms in my large grid test to just ~3-4ms.
* Use cell colors for focused match CellRgbNathan Lilienthal2021-04-30
| | | | | Fixes #5022. Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Fix cursor expansion across wide charsChristian Duerr2021-04-22
| | | | | | | | | This fixes a regression introduced in 0.7.0 where the block cursor would not expand across both cells anymore when on top of a wide char spacer cell. The logic to always move the cursor on the wide char instead of the spacer has been moved to the alacritty_terminal crate, making sure it is always performed before any processing in the UI.
* Fix hint label with start above viewportChristian Duerr2021-04-14
| | | Fixes #4960.
* Add vi/mouse hint highlighting supportChristian Duerr2021-04-13
| | | | | This patch removes the old url highlighting code and replaces it with a new implementation making use of hints as sources for finding matches in the terminal.
* Fix focused match selection colorChristian Duerr2021-04-02
| | | | | | | | | | | | | | | In 3bd5ac221ab3b122962063edd1f4c10f9f2d117f a regression was introduced which caused the selection of a focused match to invert the cell color back to its original color. This was due to the removal of the `is_match` flag on the renderable cell, which was used to make sure a cell is not marked as part of a match if it is already part of a selection. Instead of relying on a flag that is passed through from content.rs, the application of the cell colors is instead done in the content.rs file directly. This not only fixes the bug with selecting the focused match, but also makes the logic a bit more transparent. Fixes #4934.
* Unify the grid line indexing typesChristian Duerr2021-03-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously Alacritty was using two different ways to reference lines in the terminal. Either a `usize`, or a `Line(usize)`. These indexing systems both served different purposes, but made it difficult to reason about logic involving these systems because of its inconsistency. To resolve this issue, a single new `Line(i32)` type has been introduced. All existing references to lines and points now rely on this definition of a line. The indexing starts at the top of the terminal region with the line 0, which matches the line 1 used by escape sequences. Each line in the history becomes increasingly negative and the bottommost line is equal to the number of visible lines minus one. Having a system which goes into the negatives allows following the escape sequence's indexing system closely, while at the same time making it trivial to implement `Ord` for points. The Alacritty UI crate is the only place which has a different indexing system, since rendering and input puts the zero line at the top of the viewport, rather than the top of the terminal region. All instances which refer to a number of lines/columns instead of just a single Line/Column have also been changed to use a `usize` instead. This way a Line/Column will always refer to a specific place in the grid and no confusion is created by having a count of lines as a possible index into the grid storage.
* Fix vi mode searchChristian Duerr2021-03-06
| | | | | | | | This fixes a regression introduced in a954e07 which caused the vi mode cursor to be invisible after starting a search. This was caused by a discrepancy between the search DFA and search active state, since a search is not active after it has been confirmed but the DFAs are still present for highlighting.
* Add regex terminal hintsChristian Duerr2021-03-01
| | | | | | | | | | | | | | | | This adds support for hints, which allow opening parts of the visual buffer with external programs if they match a certain regex. This is done using a visual overlay triggered on a specified key binding, which then instructs the user which keys they need to press to pass the text to the application. In the future it should be possible to supply some built-in actions for Copy/Pasting the action and using this to launch text when clicking on it with the mouse. But the current implementation should already be useful as-is. Fixes #2792. Fixes #2536.
* Fix hollow block cursor being drawn for hidden cursorKirill Chibisov2021-02-26
| | | | | | | Commit 530de00 refactored large chunk of Alacritty's internal handling of renderable cells, cursors, and such. This patch fixes a regression where a hollow block cursor was drawn for unfocused windows even if the terminal cursor was hidden.
* Update dependenciesChristian Duerr2021-02-13
| | | | | | This introduces some duplicate dependencies, though they are necessary to build properly without any warnings. Fixes #4735.
* Move renderable cell transformation to alacrittyChristian Duerr2021-01-24
This refactors a large chunk of the alacritty_terminal API to expose all data necessary for rendering uniformly through the `renderable_content` call. This also no longer transforms the cells for rendering by a GUI but instead just reports the content from a terminal emulation perspective. The transformation into renderable cells is now done inside the alacritty crate. Since the terminal itself only ever needs to know about modified color RGB values, the configuration for colors was moved to the alacritty UI code.