X-Git-Url: https://git.nikiroo.be/?a=blobdiff_plain;f=docs%2Fworklog.md;h=570404097cc2a5a1be28f3e90a24c07955945539;hb=e8a11f986bfe2556e450d7b8ad6ef0059b369bbc;hp=be5f0442c5ad8e0da7cf3d283c3cb262f5b03137;hpb=8c236a985851e21e6514b25f0795f8d4aead871a;p=fanfix.git diff --git a/docs/worklog.md b/docs/worklog.md index be5f044..5704040 100644 --- a/docs/worklog.md +++ b/docs/worklog.md @@ -1,6 +1,93 @@ Jexer Work Log ============== +August 12, 2017 + +TEditor is stubbed in about 50% complete now. I have a Highlighter +class that provides different colors based on Word text values, but it +is a lot too simple to do true syntax highlighting. I am noodling on +the right design that would let TEditor be both a programmer's editor +(so Highlighter needs to have state and do a lexical scan) and a word +processor (where Word needs to tokenize on whitespace). I estimate +probably a good 2-4 weeks left to get the editor behavior where I want +it, and then after that will be the 0.0.5 release. + +Finding more minor paper cuts and fixing them: the mouse cursor being +ahead of a window drag event, SwingTerminal resetting blink on new +input, prevent TWindow from resizing down into the status bar. + +August 8, 2017 + +Multiscreen is looking really cool! Demo6 now brings up three +screens, including one that is inside a TWindow of a different +application. + +August 7, 2017 + +Had trouble sleeping, what with a bunch of imaginative thoughts for +this release. jexer.backend will be the ultimate destination for +jexer.session and most of jexer.io. TerminalReader will be the +interface for keyboard and mouse events. cmScreenConnected and +cmScreenDisconnected will be new events to represent a screen +appearing/disappearing, and MultiBackend will be a new backend +multiplexer that goes full XRandR. Several new demos demonstrating +multi-screen support will be coming along. + +August 6, 2017 + +Time to clean up more API, particularly between Backend and Screen. +Both of these will be interfaces soon, so that one could easily +subclass JComponent and implement both Screen and Backend. The +original code evolved out of Qodem, where screen.c and input.c were +two different things leading to ECMA48Screen and ECMA48Terminal, but +now there is really no need to keep them separate. It also +complicates the constructors, as these are basically friend classes +that have used package private access to get around their artificial +separation. + +When I get this done it should be a lot easier to do any of: + +* Pass a JFrame or JComponent to SwingBackend and have it add itself, + like any other Swing widget. + +* Construct a SwingBackend and add it to any regular JComponent. + +* Have multiple TApplications running inside the same Swing + application, including having actions affect each other. (Will also + need to ensure that TWidgets/TWindows are not in different + TApplication collections.) + +* Build a Backend/Screen multiplexer, so that one could have a ECMA48 + TApplication listening on a port and a local Swing monitor for it. + +* Build a Backend/Screen manager, so that one could have multiple + ECMA48 screens acting as a single large screen (e.g. XRandR). + +Now I need to decide which package will collect Backend, SessionInfo, +and Screen. jexer.io has some java.io stuff, so it stays anyway. + +July 28, 2017 + +Got very busy with my meatspace life, now getting a chance to come +back around. + +I gave up on TEditor knowing about graphemes, instead pulling back to +simple Cells. This will be better anyway in the long run, as getting +grapheme support in Screen someday will also get it for me in TEditor +for free. But it does mean that TEditor will chew through much more +RAM than it needs to for a text file. Performance optimization will +come someday. But this means I can also go back to gcj, because I +really like its warnings about unused imports. + +I've got a POM stubbed in, and created an account over at sonatype. +If it isn't too hard, I will try to get 0.0.5 released into the maven +universe. But that is still a bit away, I need TEditor running with +syntax highlighting first. + +July 17, 2017 + +Focus-follows-mouse is in, as is NOCLOSEBOX. + July 15, 2017 I think I have cleaned up most of the window show/hide/activate mess