Hi, Thanks for your explanation. Now I understand a lot better how things work. I will try to implement "native" manhole widget. I think this will be a good exercise for me to learn how terminals and `twisted.conch` work.
Thanks. On 7 August 2014 14:53, <exar...@twistedmatrix.com> wrote: > On 6 Aug, 06:14 pm, lacrima.ma...@gmail.com wrote: > >> Hello, >> >> I have been trying to create a widget that encloses manhole interpreter. >> Here is somewhat hacky implementation that I came up with at this moment: >> > > Widgets and the manhole interpreter are implemented using two pretty > distinct approaches. > > As you've figured out, these approaches can be integrated (at least in one > direction) using a terminal emulator - `twisted.conch.insults.helper. > TerminalBuffer`. > > However, `TerminalBuffer` is an extremely low quality terminal emulator. > Among its many flaws is that it uses a number of incredibly inefficient > implementations for common terminal operations (many of its other flaws are > along the lines of "it has a bug in the implementation of X"). > > If I were going to create a manhole widget then I would do it "natively" - > not by bridging the existing manhole protocol to the widget system with > TerminalBuffer but by writing a new widget that does manhole stuff all by > itself. > > I suggest that you might want to pursue this approach instead of trying to > optimize and fix bugs in TerminalBuffer. > > Ultimately it would be nice if a widget-based manhole were *the* manhole > and the current implementation went away. > > However, that said, as far as I know, no vt-style terminals support > efficient redrawing for the "vertically scroll one portion of the terminal > separated from another portion by a vertical divider". > > You will be able to avoid the redundant work of re-rendering the Python > buffer representing the terminal state but you'll still have to re- > transmit the bytes representing the entire terminal display to the terminal > on each redraw - unless you avoid vertical dividers. > > Jean-Paul > > > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python > -- Regards, Maxim
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python