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

[SuperEditor] Create IME visualizer (Resolves #1120) #1311

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

angelosilvestre
Copy link
Collaborator

[SuperEditor] Create IME visualizer. Resolves #1120.

This PR is a starting point for #1120.

This PR introduces a TextInputDebugger class, which collects events related to text input. It collects events about call to updateEditingValueWithDeltas, performAction, setEditingState and key events.

We could also introduce a SuperEditorDebugTools class which can hold debuggers for other areas, for example, commands, requests, etc.

Gravacao.de.Tela.2023-08-13.as.18.52.24.mov

@matthew-carroll
Copy link
Contributor

Let's start with the UX. I think we definitely want to reduce the default amount of information shown. We can include small icons on each list item to expand deeper areas of info about each item in the list, but I think we should only show the minimal relevant info for each item.

We can include a small toolbar at the top. That toolbar can include buttons to expand a type of information for all list items, or collapse that information. We can also move that "clear" button into an icon in that toolbar at the top. I'd also like to see the total number of logged events in the toolbar, too.

Looking at the video, I don't know what the up and down arrows mean on the left.

Also, I'm not sure if this is happening or not, but can we mark divisions between group of deltas so that we know what we got in a single batch?

From a brightness standpoint, let's make those whole panel dark to help communicate that it's a developer tool and not part of the editor.

@angelosilvestre
Copy link
Collaborator Author

@matthew-carroll Updated.

Looking at the video, I don't know what the up and down arrows mean on the left.

The key pointing down means it's an event generated by Flutter, e.g, a key event or a delta. The arrow pointing up means it's an event we generated, like a call to setEditingState.

Also, I'm not sure if this is happening or not, but can we mark divisions between group of deltas so that we know what we got in a single batch?

If we get multiple deltas in the same batch, we will see one expansion tile for the updateEditingStateWithDeltas call and each delta is displayed when the tile is expanded.

Gravacao.de.Tela.2023-08-27.as.16.18.06.mov

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

Successfully merging this pull request may close these issues.

Create visualizer for IME events and document changes
2 participants