« get me outta code hell

tui-lib - Pure Node.js library for making visual command-line programs (ala vim, ncdu)
about summary refs log tree commit diff
path: root/util
AgeCommit message (Collapse)Author
2020-07-16handle semicolons in measureColumns correctly too!Florrie
2020-07-15don't include ANSI escape codes in measureColumnsFlorrie
This allows pretty much any code based around measureColumns (e.g. buttons, labels, word-wrapping code) to handle ANSI-formatted text without any miscalculated measurements.
2019-10-23Correctly enable ANSI compression in tuiApp utilFlorrie
2019-10-17Make tui-app work with draw dependenciesFlorrie
...instead of using the old loop system.
2019-09-20Suppot meta up/down/left/right keysFlorrie
2019-09-15Keyboard functions for Home, Insert, Delete, EndFlorrie
2019-09-15(!!) Only render when draw-dependency props changeFlorrie
This is a very large change and probably breaks most applications not built to work with it. (Obviously, I'm not really being that responsible with this sort of thing.) I've tested with mtui and it works fine, but some elements may need tweaks before being 100% adjusted to the new scheduled-render system we're using with this commit. Also, any elements which have custom draw behavior will likely need updating so that they appropriately schedule renders.
2019-08-25Add key detection functions for control+arrow keysFlorrie
2019-08-22Add setBackground ansi utility functionFlorrie
2019-08-22Add trimToColumns ansi utility functionFlorrie
2019-07-18Mouse drag support; pass detailed data to handlersFlorrie
...for mouse events. Contains cursor position, modifier keys pressed, etc.
2019-07-07Emit 'resize' as well in TelnetInterfacerFlorrie
Same as 'screenSizeUpdated'.
2019-03-16Make tui-app boilerplate support ^Z/suspendFlorrie
2019-02-05App boilerplate codeFlorrie
2019-01-25Expose xterm alternate screenFlorrie
2018-12-08Stop tracking mouse on cleanCursor()Florrie
This way when a program is exited, the mouse will go back to normal (so you can scroll the terminal log, etc).
2018-12-08Set VT200 mouse instead of X10 mouseFlorrie
Reference: http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking For some reason this works better with tmux than X10 mouse (and it still works in ordinary, non-tmux windows).
2018-12-08Mouse supportFlorrie
Not exactly the most elegant implementation, but it definitely works and isn't really difficult to code around!
2018-12-05Add utility measureColumns function to ansi.jsFlorrie
This way layouts can properly support wide characters.
2018-12-05Wide character support in ANSI compressorFlorrie
2018-12-04Optimize - don't do attributes.slice() as oftenFlorrie
If it makes sense to reuse an attributes array, do that.
2018-12-04Un-broken optimizationFlorrie
(reverted broken stuff; still a little optimization, i.e. cache cursorIndex)
2018-12-04Broken optimizationFlorrie
2018-06-04isCharacter telchar util functionFlorrie
2018-06-03isPageUp / isPageDown functions, simpler combo detection codeFlorrie
2018-06-02CommandLineInterfacer/Flushable resize supportFlorrie
2018-05-31Let-const nitpicksFlorrie
2018-05-30Add isCaselessLetter util functionFlorrie
2018-05-30Better ANSI-interpret debug messagesFlorrie
* Show the number of KB saved * Make the percent-saved a little more precise * Don't update the debug message if absolutely nothing changed on the screen (although, it's still saving however much data it would have taken to render the entire screen!!) * Just draw a bar across the whole screen, instead of a few extra " " characters - technically this adds a whole bunch of data itself but it's assumed that you aren't on limited data if you're debugging how much data the interpreter saves
2018-05-30Shading characters, for funFlorrie
2017-12-10Show/hide cursor in ANSI interpreterFlorrie
2017-12-10Clean up old state code in ANSI interpreterFlorrie
2017-12-10Set the ANSI compressor on OVERLOAD (underload?)Florrie
2017-12-10Interpret 'off' SGR commands in ANSI interpreterFlorrie
2017-12-10Add compression statistic monitor to FlushableFlorrie
2017-12-09Make ansi interpreter work with selective control sequencesFlorrie
2017-12-08Make isEnter work with normal terminalsFlorrie
2017-12-08Add backspace and shift-arrows to telcharsFlorrie
2017-12-08Add arrows to unicharsFlorrie
2017-12-08Add invertOff ansi functionFlorrie
2017-07-03Improve cursor displayliam4
- Whether the cursor is displayed or not is now based on the cursorVisible property rather than whether cursorX and cursorY are set or not. - The actual shell cursor is now invisible... this is objectively an act of Evil, though! This doesn't look like too hard to fix, thankfully. - A new cleanCursor function has been added to ansi.js.
2017-07-03A long-due cleanup + examples + thingsliam4
..Obviously this breaks old things (particularly, see changes in FocusElement).
2017-01-07Initial commitLiam