Merge pull request #14 from socketteer/master

reduce editor lag by making render async and preventing too many renders
This commit is contained in:
celeste 2023-11-19 16:49:29 -08:00 committed by GitHub
commit 32a5a3f71f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

12
main.ts
View file

@ -85,6 +85,8 @@ const DEFAULT_SETTINGS: LoomSettings = {
type CompletionResult = { ok: true; completions: string[] } | { ok: false; status: number; message: string };
let renderBusy = false;
export default class LoomPlugin extends Plugin {
settings: LoomSettings;
state: Record<string, NoteState>;
@ -103,8 +105,13 @@ export default class LoomPlugin extends Plugin {
saveAndRender() {
this.save();
if (renderBusy) return;
renderBusy = true;
this.renderLoomViews();
this.renderLoomSiblingsViews();
renderBusy = false;
}
thenSaveAndRender(callback: () => void) {
@ -676,7 +683,10 @@ export default class LoomPlugin extends Plugin {
);
updateDecorations();
this.saveAndRender();
setTimeout(() => {
this.saveAndRender();
}, 0);
// restore cursor position
editor.setCursor(cursor);