Interlisp / medley

The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
https://Interlisp.org
MIT License
376 stars 19 forks source link

Rmk36 tedit fifth round #1857

Open rmkaplan opened 4 weeks ago

rmkaplan commented 4 weeks ago

This is the long awaited, next major release candidate for Tedit. Many changes to address many lingering issues, improve maintainabilty, robustness, and performance in some areas. TEDIT-RELEASENOTES.TEDIT highlights some of the changes.

This is a draft, may have lingering problems--testing of screen/mouse interactions is difficult. But please give it a try.

nbriggs commented 4 weeks ago

Try opening the attached Slides.tedit.txt (remove the .txt) and scrolling it. Older TEdit scrolls OK, latest TEdit dies with an arg not non-complex number (IQUOTIENT 0 NIL) under SCROLLW Slides.tedit.txt

The Slides file is from https://xeroxparcarchive.computerhistory.org/phylum/ctamarin/doc/talks/.index.html

rmkaplan commented 4 weeks ago

Try opening the attached Slides.tedit.txt (remove the .txt) and scrolling it. Older TEdit scrolls OK, latest TEdit dies with an arg not non-complex number (IQUOTIENT 0 NIL) under SCROLLW Slides.tedit.txt

The Slides file is from https://xeroxparcarchive.computerhistory.org/phylum/ctamarin/doc/talks/.index.html

Default tab was not always initialized properly, now fixed. File was a little bit odd: a run of tabs coded as 2-bytes (255 255 0 0 9), but that was more amusing than problematic.

nbriggs commented 4 weeks ago

After this fix, again using Slides.tedit, if the TEdit window is not as tall as the image object (e.g., shorter than the Internal Stack Frame sketch) then it is impossible to scroll past the image object - either in the scroll bar, or using the scroll wheel/trackpad.

rmkaplan commented 4 weeks ago

After this fix, again using Slides.tedit, if the TEdit window is not as tall as the image object (e.g., shorter than the Internal Stack Frame sketch) then it is impossible to scroll past the image object - either in the scroll bar, or using the scroll wheel/trackpad.

This is somewhere on the list--I think Frank raised it quite some time ago. The venuesysout shows a little bit more, but is goofy in a different way.

The question is whether to show a line that would be partially out of the window, either above or below. The current strategy is to suppress the line completely, so that you don't see half of the characters on an overflow line. That's pretty clean because most windows are much higher than the typical fonts, so a line is all or nothing. But doesn't work well with characters in a very high font...and a high image object is treated essentially as a character in a very high font. A line doesn't show at all if any part of its image would be outside the window.

I'm not sure what the right heuristic should be. Turn off the filter for any line containing an object? Turn it off for lines above a given height, whether due to a font or an object? Suggestions?

nbriggs commented 4 weeks ago

A line doesn't show at all if any part of its image would be outside the window.

That doesn't seem to be quite what it is doing -- as you scroll into the large sketch object it does display the top part of the image, but won't allow you scroll past it (you can scroll towards the beginning but not towards the end). And when playing around with scrolling it after reshaping the window to be a little bigger (but not big enough to get the whole thing) I got another arg not non-complex number: NIL -- this time in \TEDIT.SCROLLDOWN. BTV! attached. tedit-scroll.txt

nbriggs commented 4 weeks ago

If it knows that the total height of a line (font, or image object) is larger than the height of the window could it not filter it out? Looking at modern apps, they don't filter at all - they jump by the height of the font you're in for input, but once the (large) text is there you can scroll to expose only a partial character. image

The other complication is that the size of the "visible area of document" in the scroll bar keeps changing in size as you scroll: Screenshot 2024-10-24 at 10 02 44 AM Screenshot 2024-10-24 at 10 03 24 AM

rmkaplan commented 6 hours ago

No, sorry about that.

nbriggs commented 6 hours ago

Try this: Open a moderate sized TEDIT window and type

asdf
asdf
asdf
qwer

leaving the caret at the end of qwer, and then in the left margin area (so it flips to the right slanted cursor) shift-select the qwer, and without moving the cursor or caret, shift-select it (the line, or where the line might have been) again and again and again.

rmkaplan commented 6 hours ago

On the SAVE.SYSOUT: I think the problem is that .gitignore only excludes .sysout, not also .SYSOUT

rmkaplan commented 6 hours ago

(Actually, it only excludes the specific lisp.sysout, full.sysout, fuller.sysout, and apps.sysout. Should it exclude all sysout files?)

rmkaplan commented 6 hours ago

On the qwer, is the problem that it shows the highlighting of the insertion (maybe as a line below) but it doesn't actually display the characters?