[GH-ISSUE #1969] [Bug] The fix spellings service too slow and then time out #774

Closed
opened 2026-03-23 20:40:55 +00:00 by mirror · 2 comments
Owner

Originally created by @annieappflowy on GitHub (Mar 12, 2023).
Original GitHub issue: https://github.com/AppFlowy-IO/AppFlowy/issues/1969

Originally assigned to: @LucasXu0 on GitHub.

Bug Description

I tried to use the fix spellings on the below text. The service times out without a return.

AppFlowy Editor Design Document
This document describes the technical design of AppFlowy Editor.
AppFlowy is an open-source alternative to Notion, which is built with Rust and Flutter. An editor is a core component in AppFlowy. In many scenarios, such as Document, Grid, and Board, We all need the editor component to support the corresponding business requirements. Therefore, We need an editor that fully fits the AppFlowy scene.
Why do we need to design and develop our editor?
In the previous version, we integrate flutter_quill as the editor component. In the process of using it, we encountered the following problems.
Hard to quickly extend new components (plug-ins), such as the need to insert Grid and Board into the existing document.
Lack of stable performance and sufficient code coverage.
In addition, we have been actively looking for alternatives in the open-source community, such as super_editor. During our research, we found that super_editor is friendly to extend new components in a way that can also support customized shortcuts. However, its data structure is a list, and the data mode that does not support nesting is not good for nodes with parent-child relationships. For example, the case of multi-level lists and the form of each level is inconsistent. In the end, we still can’t find anything that suits our needs.
For the above reasons, we decided to design and develop the new editor component, AppFlowy Editor.
Brief description
Before starting a new editor project, we refer to some editor implementations. There are not many editor projects based on Flutter, so we also refer to well-known front-end editor implementations, such as Quill.js and Slate.js.
We believe that the foundation of the editor lies in the design of the data structure. Quill.js uses Delta as the data structure, while Slate.js uses tree nodes as the data structure. In the end, we used a tree node like Slate.js to assemble the documents, while continuing to use Delta for the data storage of text nodes.
Why do we use the combination of node tree and Delta?
 

How to Reproduce

As described

Expected Behavior

Should return something even with an error msg

Operating System

Windows 10

AppFlowy Version(s)

main branch

Screenshots

No response

Additional Context

No response

Originally created by @annieappflowy on GitHub (Mar 12, 2023). Original GitHub issue: https://github.com/AppFlowy-IO/AppFlowy/issues/1969 Originally assigned to: @LucasXu0 on GitHub. ### Bug Description I tried to use the fix spellings on the below text. The service times out without a return. AppFlowy Editor Design Document This document describes the technical design of AppFlowy Editor. AppFlowy is an open-source alternative to Notion, which is built with Rust and Flutter. An editor is a core component in AppFlowy. In many scenarios, such as Document, Grid, and Board, We all need the editor component to support the corresponding business requirements. Therefore, We need an editor that fully fits the AppFlowy scene. Why do we need to design and develop our editor? In the previous version, we integrate flutter_quill as the editor component. In the process of using it, we encountered the following problems. Hard to quickly extend new components (plug-ins), such as the need to insert Grid and Board into the existing document. Lack of stable performance and sufficient code coverage. In addition, we have been actively looking for alternatives in the open-source community, such as super_editor. During our research, we found that super_editor is friendly to extend new components in a way that can also support customized shortcuts. However, its data structure is a list, and the data mode that does not support nesting is not good for nodes with parent-child relationships. For example, the case of multi-level lists and the form of each level is inconsistent. In the end, we still can’t find anything that suits our needs. For the above reasons, we decided to design and develop the new editor component, AppFlowy Editor. Brief description Before starting a new editor project, we refer to some editor implementations. There are not many editor projects based on Flutter, so we also refer to well-known front-end editor implementations, such as Quill.js and Slate.js. We believe that the foundation of the editor lies in the design of the data structure. Quill.js uses [Delta](https://quilljs.com/docs/delta/) as the data structure, while Slate.js uses tree nodes as the data structure. In the end, we used a tree node like Slate.js to assemble the documents, while continuing to use Delta for the data storage of text nodes. Why do we use the combination of node tree and Delta?   ### How to Reproduce As described ### Expected Behavior Should return something even with an error msg ### Operating System Windows 10 ### AppFlowy Version(s) main branch ### Screenshots _No response_ ### Additional Context _No response_
mirror 2026-03-23 20:40:55 +00:00
  • closed this issue
  • added the
    bug
    editor
    labels
Author
Owner

@annieappflowy commented on GitHub (Mar 22, 2023):

status?

<!-- gh-comment-id:1479510064 --> @annieappflowy commented on GitHub (Mar 22, 2023): status?
Author
Owner

@annieappflowy commented on GitHub (Apr 3, 2023):

Unable to reproduce on v0.1.2 using the same text

<!-- gh-comment-id:1494323114 --> @annieappflowy commented on GitHub (Apr 3, 2023): Unable to reproduce on v0.1.2 using the same text
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AppFlowy-IO/AppFlowy#774
No description provided.