Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Text processing #13

Open
13 of 16 tasks
dhardy opened this issue Nov 24, 2019 · 3 comments
Open
13 of 16 tasks

Text processing #13

dhardy opened this issue Nov 24, 2019 · 3 comments

Comments

@dhardy
Copy link
Collaborator

dhardy commented Nov 24, 2019

This is not a trivial subject; it requires several steps:

  • optional translation step
  • decoding markup (from Markdown, simplified HTML, etc.)
  • font loading (handled by rusttype)
  • font association (currently we only support a single font)
  • conversion from unicode to glyphs (handled by rusttype)
  • line-breaking (handled by glyph_brush_layout)
  • real font shaping
  • alignment
  • justified alignment
  • caching and rendering (glyph_brush)
  • extraction of text metrics (use of line height for layouts and text highlighting)
  • text position → screen position translation (drawing edit bar)
  • screen position → text position translation (mouse selection/positioning)
  • clipboard interaction
  • rich-text clipboard support
  • efficient editing for large documents: Efficient editing for larger texts kas-text#15

Currently we use glyph_brush (part of rusttype) to achieve a sub-set of the above.

@dhardy dhardy mentioned this issue Nov 26, 2019
9 tasks
@dhardy dhardy mentioned this issue Dec 5, 2019
5 tasks
@dhardy
Copy link
Collaborator Author

dhardy commented Dec 5, 2019

We may wish to use ropey, which provides efficient buffer editing, line tracking and character indexes.

@nilsmartel
Copy link

There is an ongoing discussion about just this topic in the druid community.
I think everyone would benefit from you sharing your thoughts with them.

On https://xi.zulipchat.com one can find their community discussions

@dhardy
Copy link
Collaborator Author

dhardy commented Dec 6, 2019

Iced also has many of the same issues. I thought though Druid was using Pango? Anyway, I can't look into this now.

@dhardy dhardy added the missing dependencies Better/new Rust libraries are needed label Jan 29, 2020
@dhardy dhardy mentioned this issue Feb 13, 2020
Merged
@dhardy dhardy removed the missing dependencies Better/new Rust libraries are needed label Jul 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants