Desktop invisible spacing

Environment

Joplin version: v1.0.201
OS: Win 10 1909

Steps to reproduce

  1. Type random text
  2. Each character add invisible space

Gif demonstration

Comments

I am new to Joplin and I did not change any setting except for theme.
Also, I tried Marktext and Typora before and nothing wrong with them. So I am thinking Joplin specific.
And, I tried both instsall and portable. Same result.

Log

Summary

2020-05-03 22:38:03: “Profile directory: C:/Users/test/.config/joplin-desktop”
2020-05-03 22:38:03: “Trying to load 0 master keys…”
2020-05-03 22:38:03: “Loaded master keys: 0”
2020-05-03 22:38:03: “ResourceFetcher: Auto-add resources: Mode: always”
2020-05-03 22:38:03: “ResourceFetcher: Auto-added resources: 0”
2020-05-03 22:38:03: “Refreshing notes:”, “null”, “null”
2020-05-03 22:38:03: “Trying to load 0 master keys…”
2020-05-03 22:38:03: “Loaded master keys: 0”
2020-05-03 22:38:03: “Scheduling sync operation…”, “10000”
2020-05-03 22:38:03: “Setting up recurrent sync with interval 600”
2020-05-03 22:38:03: “Trying to load 0 master keys…”
2020-05-03 22:38:03: “Loaded master keys: 0”
2020-05-03 22:38:03: “Scheduling sync operation…”, “10000”
2020-05-03 22:38:03: “Trying to load 0 master keys…”
2020-05-03 22:38:03: “Loaded master keys: 0”
2020-05-03 22:38:03: “Scheduling sync operation…”, “10000”
2020-05-03 22:38:03: “Refreshing notes:”, “2”, “603ea8939efb429cad5223bdf5e12266”
2020-05-03 22:38:03: “Scheduling sync operation…”, “10000”
2020-05-03 22:38:03: “RevisionService::runInBackground: Starting background service with revision collection interval 600000”
2020-05-03 22:38:04: “DecryptionWorker: cannot start because no master key is currently loaded.”
2020-05-03 22:38:07: “RevisionService::maintenance: Starting…”
2020-05-03 22:38:07: “RevisionService::maintenance: Service is enabled”
2020-05-03 22:38:07: “RevisionService::collectRevisions: Created revisions for 0 notes”
2020-05-03 22:38:07: “RevisionService::maintenance: Done in 121ms”
2020-05-03 22:38:08: “Refreshing notes:”, “2”, “eebcd1b93c3c474382030c2f44f3b2cd”
2020-05-03 22:38:09: “Refreshing notes:”, “2”, “603ea8939efb429cad5223bdf5e12266”
2020-05-03 22:38:09: “Refreshing notes:”, “2”, “c3e1b6223f0e42c0998d11f32112560c”
2020-05-03 22:38:11: “Refreshing notes:”, “2”, “eeb1ccb93c3c474382030c2f44f3b2cd”
2020-05-03 22:38:11: “Refreshing notes:”, “2”, “603ea8939efb4249ad5723bdf5e12266”
2020-05-03 22:38:13: “SearchEngine: Updating FTS table…”
2020-05-03 22:38:13: “SearchEngine: Updated FTS table in 12ms. Inserted: 0. Deleted: 0”
2020-05-03 22:38:13: “Preparing scheduled sync”
2020-05-03 22:38:13: “Could not run background sync:”
2020-05-03 22:38:13: “Error: Error: Could not create directory: . Path:
Error: Error: Could not create directory: . Path:
at FileApiDriverLocal.fsErrorToJsError_ (C:\Users\test\AppData\Local\Programs\Joplin\resources\app.asar\lib\file-api-driver-local.js:20:18)
at FileApiDriverLocal.mkdir (C:\Users\test\AppData\Local\Programs\Joplin\resources\app.asar\lib\file-api-driver-local.js:120:15)”
2020-05-034 22:38:13: “Setting up recurrent sync with interval 600”
2020-05-03 22:38:13: “Updating all notifications…”
2020-05-03 22:38:13: “Garbage collecting alarms…”
2020-05-03 22:38:14: “DecryptionWorker: cannot start because no master key is currently loaded.”
2020-05-03 22:38:33: “ResourceService::indexNoteResources: Start”
2020-05-03 22:38:33: “ResourceService::indexNoteResources: Completed”
2020-05-03 22:38:33: “ResourceService::deleteOrphanResources:”, “[]”

From the gif it seems the font you’re using is not monospace. This can cause the issue you’re seeing.

1 Like

I think we need to add <blink> tag to the font family description because it seems nobody’s reading it:

This must be monospace font or it will not work properly. If the font is incorrect or empty, it will default to a generic monospace font.

1 Like

I wonder if it’s possible to determine font type programmatically and just disallow non-monospace fonts

That will be great. I thought same thing because I never had problem with other programs that I tried.

When I have some free time I’d like to look into replacing the ace editor with codemirror. It can handle non monospace fonts as well as some WYSIWYG functionality. Plus the react version seems to get more love.

3 Likes

And the nice thing with Code Mirror is that they support spell checking. If you give it a try and need some help getting this working @CalebJohn let me know. Now that I’ve refactored the note editor, it might be easier to try different editors.

I wouldn’t go for the React version though, as the overhead of a wrapper is often more trouble than it’s worth (as in our case with Ace Editor), especially since it’s relatively easy to get any DOM library working with React.