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

Spellcheck #271

Open
abezukor opened this issue Sep 30, 2022 · 4 comments · May be fixed by #1269
Open

Spellcheck #271

abezukor opened this issue Sep 30, 2022 · 4 comments · May be fixed by #1269
Labels
enhancement New feature or request

Comments

@abezukor
Copy link

Is your feature request related to a problem? Please describe.
When typing input I sometimes misspell things. As I often use rnote for work, misspellings are not optimal.

Describe the solution you'd like
Add spell check to rnote text boxes.

Describe alternatives you've considered
The only one I can think of is to copy-paste text input into an external program with spell checking.

@flxzt flxzt added the enhancement New feature or request label Oct 1, 2022
@Kneemund
Copy link
Collaborator

I experimented a bit with Hunspell, I think the hardest part is rendering the actual spelling mistakes (and displaying suggestions, assuming that those are wanted/needed). piet's text functionality doesn't seem to support anything useful in this regard (e.g. red "wavy" lines, or independently colored underlines).

spellcheck.mp4

@flxzt
Copy link
Owner

flxzt commented Nov 27, 2022

very cool! regarding the text drawing capabilities: generally piet's API is limited, because it needs to find the common denominator for the different native backends.

I see a short term and a long term "fix" for it:

  • short term: in the PenBehaviour trait, we currently pass in the piet_cairo CairoRenderContext for drawing. We could change it to a cairo context and could still draw with piet wherever we want by creating the piet context from it. We would need to test how well that works (especially if transformations and the save / restores are applied correctly and if the performance is good enough), but I believe I wrote something similar already in the top level render functions. When we have this we could use pango and its markup which seems to provide the features that you mentioned.

  • long term: I have been watching piet-gpu, an emerging GPU / compute shader 2d renderer for a while now, and it is making rapid progress. The linebender community is writing this renderer for their own new gui toolkit xilem, and I believe they plan to provide a similarly capable (to pango) rich text API in it. It looks like this will still take some amount of time until it is usable, but when it is, I eventually want to replace the entire existing rendering in rnote-engine with this (and drop the gtk dependency), since I hope that this will be a lot faster and should also reduce memory usage. Then we could start using it to draw the typewriter and spellcheck too.

@LeSnake04
Copy link
Contributor

LeSnake04 commented Apr 19, 2023

For schools that want to use this program in exams, there should be a way to disable Spellcheck and require an admin passwort to enable it again. (On windows, the installer could show an Option to not install dictonaries )
The user should be able to easily disable it as well.

I currently can use RNote in exams because it has no spellcheck. This should be possible after this feature gets added.

It was really hard for me to find modern MD editors with mathjax but without spellcheck that I can use in exams. This I a common problem these days

@develcooking
Copy link

Hey there,

I would donate $100 if this issue were to be fixed. I use your app every day at school and would highly appreciate this feature, even if it is just highlighted in red text or underlined. For the dictionary, I would suggest the best way is to create a folder where the user can place their own dictionaries, like in Heiboard.

I don't really know how difficult it is in a complex application like Rnote, but I would love to see it.

Best regards,
develcooking

@Kneemund Kneemund linked a pull request Oct 31, 2024 that will close this issue
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants