56354c7
Avoid crashes when laying out lines containing byte order marks
Click to expand commit body
This solution isn't perfect and we'll probably have layout bugs with these lines, but this prevents us from triggering undefined behavior.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Nathan Sobo
and
Max Brunsfeld
created
5761756
Move remaining theme-related code and tests from settings mod to theme mod
e080739
Remove use of replace_with crate for managing element lifecycles
Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Max Brunsfeld
and
Nathan Sobo
created
76c07fb
Make Theme::default have a non-empty replica theme vector
Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Max Brunsfeld
and
Nathan Sobo
created
d5ec0c8
Fix moving to next word boundary with multi-byte characters
Click to expand commit body
Previously, for a given point, we would create a char iterator at
the start of the row and the skip `column` characters. This is
however incorrect because display points are expressed in bytes,
and so we could park the anchor midway through a multi-byte character.
This commit fixes the issue by switching `DisplayMap::chars_at` to
take a point instead and skipping characters correctly when a point with
a non-zero column is provided.
Antonio Scandurra
created
92353b6
Start work on allowing variables in themes
372d2cc
Extract most colors in codebase into theme file. switch to dark
Max Brunsfeld
created
c306ac0
Allow more time wrapping to complete synchronously
Click to expand commit body
We're seeing occasional flickers and wondering if this will help.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Nathan Sobo
and
Max Brunsfeld
created
e7d03af
Fix moving to previous word across a wrap boundary
Click to expand commit body
I'm just going to the end of the soft-wrapped line, mirroring the behavior with hard wraps. It's maybe not perfectly technically correct but that behavior would require us to consider word boundaries outside of the current line, which doesn't seem worth the complexity.
Nathan Sobo
created
25c472a
WIP - unit test for word-wise movement w/ soft wrap
If the range *touches* the fold, we unfold. This was needed to fix the behavior for unfolding at the current selection position. Previously, there was some kind of translation issue that was allowing us to accidentally work the way we wanted without this.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Nathan Sobo
and
Antonio Scandurra
created
38d4662
Only honor rightward bias for buffer points *inside* of folds
Click to expand commit body
(Not at boundaries)
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Nathan Sobo
and
Antonio Scandurra
created
a6a8f4f
Introduce a struct for spanned_rows result
Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Nathan Sobo
and
Antonio Scandurra
created
029460b
Respect buffer row boundaries in line-oriented edit operations
c1a9a20
Setup randomized test harness in `gpui::test`
Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Antonio Scandurra
,
Nathan Sobo
, and
Max Brunsfeld
created
b0f3778
Allow passing `iterations` and `seed` as env variables
Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra
and
Nathan Sobo
created
42e2b9f
Move buffer rows test into `WrapMap` randomized test
Click to expand commit body
Also, change the way we assert on buffer rows to reflect the fact
that we will still show the line as soft-wrapped when there is a
fold that spans multiple buffer rows.
Antonio Scandurra
created
d6eb6d3
Use a uniform distribution for generating random characters
Antonio Scandurra
created
169a298
Expand edits correctly when there are folds or multi-byte chars
Click to expand commit body
Previously, we were mistakenly adding `tab_size` to the extent
produced by the fold edits but that could cause the edit to land on
a multi-byte character (like a fold or an emoji).
In practice, we only need to expand the edit's extent by 1 because
we are operating in the fold coordinate space and all we need to
convey is that we want to encapsulate the first tab next to whatever
edit has just occurred in the `FoldMap`.
Antonio Scandurra
created
e7d1af2
Add fold mutations to randomized test for `WrapMap`
Antonio Scandurra
created
6131929
Don't render line numbers for soft-wrapped line segments
Nathan Sobo
created
4718717
Clip left when moving cursor to end of line
Click to expand commit body
This ensures we stay on the same line when the current display line ends with a soft wrap.