Mohammad AlSaleh
845a66ceff
Multiply by a glyph-to-default rounded factor when resizing fonts
...
When matching to a default monospace width, big fonts like those
containing symbols and emojis got too small from font resizing.
Adding a glyph-to-default rounded factor to the calculation should fix
that issue without losing monospatiality.
Fixes pop-os/cosmic-term#69 .
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-19 09:35:46 -07:00
Jeremy Soller
6aadfaddac
Fix subtraction overflow when comparing weights
2024-01-18 06:58:47 -07:00
Jeremy Soller
8457e68d98
Fix tests
2024-01-17 13:31:03 -07:00
Jeremy Soller
a11f68f13d
Format
2024-01-17 13:31:03 -07:00
Mohammad AlSaleh
329941c4a6
Try harder to succeed at fall-backing to a Monospace font
...
A combination of some ideas:
* Try all Monospace fonts before giving up.
* Relax exact weight restriction on font matching when trying Monospace
fall-back. Try smaller weights if needed.
* Make the fall-back try order weight-offset aware, AND script-aware.
* And finally, add the option to adjust the font size of glyphs using
fall-back Monospace fonts, so the width of them matches the default
font width.
For my use-case, the current fall-back attempt always fails with
Arabic script. And none of the Arabic-supporting Monospace fonts in
my system also support medium weight. So, if my default font is set
to medium weight, script-aware fall-back alone will still not work.
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2024-01-17 13:31:03 -07:00
Jeremy Soller
054b7da828
Editor::insert_at: ensure there are enough lines in the buffer
2024-01-17 13:31:03 -07:00
Jeremy Soller
40e503737b
Handle multiple BiDi paragraphs in ShapeLine gracefully
2024-01-17 13:31:03 -07:00
Jeremy Soller
5f4bc87ccf
Remove patch to load Redox system fonts, as fontdb does it now
2024-01-17 13:31:03 -07:00
Jeremy Soller
bd5f2f95e8
Add capability to synthesize italic
2024-01-17 13:31:03 -07:00
Jeremy Soller
46d60a3723
Implement Clone for Buffer and use Arc::make_mut
2024-01-17 13:31:03 -07:00
Jeremy Soller
0a11fb1045
Make Editor::buffer_ref accessible, rename lifetimes
2024-01-17 13:31:03 -07:00
Jeremy Soller
cbbf6f0d8f
Allow Editor to use reference or Arc of Buffer
2024-01-17 13:31:03 -07:00
Jeremy Soller
ae030e9885
Move color and x_opt out of Cursor
2024-01-17 13:31:03 -07:00
Jeremy Soller
04d53ac5f4
Add Scroll::new
2024-01-17 13:31:03 -07:00
Jeremy Soller
d0b4b4635e
Refactor of scroll and shaping
...
- Scroll is identified by line index and layout index, instead of just
layout index
- Shaping has the option to prune, where caches outside of the scroll
view are cleared
- Syntax editor no longer requires layout of all lines, only of lines
inside scroll
- BufferLine has a metadata field that can be used by other abstractions
to know when text was changed
2024-01-17 13:31:03 -07:00
Jeremy Soller
e7261fc06e
Editor: remove unused cursor_x_opt
2024-01-17 13:31:03 -07:00
Jeremy Soller
b877f873df
BufferLine: remove wrap from struct, as wrap is passed to layout
2024-01-17 13:31:03 -07:00
Jeremy Soller
816ea4fae7
BufferLine: use layout_in_buffer to implement layout
2024-01-17 13:31:03 -07:00
Jeremy Soller
80d120dfa5
Ensure that all shaping and layout uses scratch buffer
2024-01-17 13:31:03 -07:00
Jeremy Soller
5d1aa67804
Improve reliability of layout_cursor
2024-01-17 13:31:03 -07:00
Jeremy Soller
018a2e9d2a
Move cursor motions to new Motion enum, move handling to Buffer
2024-01-17 13:31:03 -07:00
Jeremy Soller
6528e9f804
multiview example
2024-01-17 13:31:03 -07:00
Jeremy Soller
c247e0527c
Only apply attrs to range in syntect editor if it does not match default
2024-01-17 13:31:03 -07:00
Jeremy Soller
19b4d8336e
Use crate::HashMap in SwashCache
2023-12-19 17:02:28 -07:00
Jeremy Soller
430b3abc9f
Fix no_std build
2023-12-19 17:02:15 -07:00
David Stern
73acfb0962
Cache rustybuzz shape plans.
2023-12-18 18:19:27 -05:00
Jeremy Soller
94e6cdefda
Add select by word and double/triple click actions
2023-12-12 10:29:14 -07:00
Jeremy Soller
6566350276
ViEditor::finish_change will store change to history
2023-12-12 09:52:22 -07:00
Jeremy Soller
3187e916ab
ViEditor: cleanup logging
2023-12-08 12:03:55 -07:00
Jeremy Soller
b7bdd62eb3
ViEditor: update modit and improve put implementation
2023-12-05 10:05:26 -07:00
Jeremy Soller
de6f2c7fbe
Editor: make delete_range and insert_at methods public
2023-12-05 10:04:50 -07:00
Jeremy Soller
afc5b525f1
Buffer: fix max scroll going one line beyond end
2023-11-30 14:51:22 -07:00
Jeremy Soller
1cf36f8a5d
Editor: set selection to none when deleted
2023-11-30 14:42:39 -07:00
Jeremy Soller
9278e7d0c4
ViEditor: Implement put/yank registers
2023-11-30 13:42:52 -07:00
Jeremy Soller
04c96f39c5
Allow Clone of layout structs
2023-11-30 13:00:02 -07:00
Jeremy Soller
daa5a6615c
Merge pull request #129 from tigregalis/cross-platform-terminal-example
...
Update terminal example using `colored`
2023-11-28 15:22:21 -07:00
Jeremy Soller
cbd567d238
Support line selection
2023-11-28 10:42:50 -07:00
Jeremy Soller
9a975ad79a
Merge pull request #198 from pop-os/vi-editor
...
Vi editor improvements
2023-11-17 07:30:50 -08:00
Jeremy Soller
66a6803cf8
Merge remote-tracking branch 'origin/main' into vi-editor
2023-11-17 08:30:08 -07:00
Jeremy Soller
1201d0c8b5
Use crates.io modit
2023-11-17 07:53:24 -07:00
Jeremy Soller
e6987adb53
Merge pull request #202 from TotalKrill/shaping_basic_color_fix
...
refresh the attrs more often in basic shaping
2023-11-17 06:48:31 -08:00
Kristoffer Ödmark
d242307b6d
refresh the attrs more often in basic shaping, or colors are not updated correctly
2023-11-16 21:47:41 +01:00
Jeremy Soller
7d21045b2f
Add primitive auto indent
2023-11-16 08:59:43 -07:00
Jeremy Soller
1207fd6d80
Edit: use u16 for tab_width
2023-11-16 08:38:48 -07:00
Jeremy Soller
8024cbe504
Fix redoxer script
2023-11-15 12:43:14 -07:00
Jeremy Soller
27d447b6fc
Use fontdb 0.16
2023-11-15 12:42:51 -07:00
Jeremy Soller
19ae07bd3b
Fix some clippy lints
2023-11-15 09:21:13 -07:00
Jeremy Soller
6536231dfc
Fix no_std compilation
2023-11-15 09:09:47 -07:00
Jeremy Soller
38bed64ef1
Use cosmic_undo_2 instead of undo_2 for improved compiler support
2023-11-15 09:09:46 -07:00
Jeremy Soller
56f71ef973
Shape if needed to process left/right commands
2023-11-14 13:43:33 -07:00