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

term: new & improved #85

Merged
merged 14 commits into from Jan 11, 2023
Merged

term: new & improved #85

merged 14 commits into from Jan 11, 2023

Conversation

Fang-
Copy link
Member

@Fang- Fang- commented Jan 10, 2023

As extensively documented elsewhere. See also #84 to start unraveling the lore.

joemfb and others added 14 commits January 10, 2023 21:11
This lets us send a single blit around, instead of sending facts for
every individual blit in a draw event.
%rez has always used "width & height". Certainly, "x & y" is more
standard than "row & column". As such, we settle on making %hop and %hit
respect the more natural ordering. This change is safe because these
interfaces haven't made it to livenet yet.
By accumulating %txt events until we reach a more complex event or reach
the end of the input buffer, we can significantly reduce the "overhead"
of pasting text into the terminal. Instead of an event for each
character, we now inject up to a buffer's worth of characters
(currently, 123 bytes) at a time. This makes pasting process much
faster.

Incidentally, the behavior for pasting text with syntax errors into the
dojo may be a little bit surprising: after every buffer boundary, the
dojo will complain about the syntax error, moving the cursor to its
location, and causing the remainder of the text to be inserted in that
position. This may result in garbled-looking input in some cases.
This ux problem should be resolved on dojo's end, perhaps by
highlighting syntax errors with color, instead of the cursor.

Alleviates most of the need for #5687.
Having the origin at the top left instead of the bottom left is more
conventional and ergonomic. The only thing this complicates is
prompt-specific logic, where we care about the coordinates of the
bottom-most line on the screen.

For that reason, the bulk of the changes here are in vere, where we
treat the bottom-most line specially, drawing the spinner onto it.
Webterm is likewise updated to account for the new coordinate system.

Drum now opts to accept clicks anywhere on the screen, and does its best
to move the cursor as close to the clicked location as possible (within
the confines of the prompt).
When urbit exits, the host shell it was running in takes over, often
re-prints its own prompt.

Here, we move the cursor to the bottom of the screen right before
exiting, so that any subsequent output doesn't destroy whatever we had
on-screen when we closed.
Modifies the terminal to support vt escape sequences (as emulated by the
Gnome Terminal app and others).

For now it recognizes the delete key - other sequences are ignored as
drum does not (yet) support them.

This also stops all vt escape sequences from emitting sigs.
Modifies term to detect home/end vt sequences, and adds complementary
%blit and arm handling.
The behavior of home/end haven't been decided on yet.

This reverts commit 2d9106ae2d4c4a76a0cb5098835fdbc426e2f289.
Returns double newline where they were used.

Also cleans up a merge artefact.
@Fang- Fang- merged commit 15c0328 into develop Jan 11, 2023
@Fang- Fang- deleted the i/84/nu-term branch January 11, 2023 16:24
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.

None yet

3 participants