* Fix merge issues in develop
* Add -timeout to go test
The tests are timing out on TravisCI for some reason so a timeout has
been added so that `go test` will dump out the goroutine stack traces
when the tests are stuck.
* gui.Close now wakes up main loop
Without this, otherwise successful tests in main_test.go hang.
* Use a longer timeout in case CI infrastructure is slow
* Fix various gofmt issues
Not sure how some of these crept in.
Instead of waking up regularly WaitEventsTimeout, WaitEvents and
PostEmptyEvent are used to make the main loop purely event driven. The
rate of redraws due to terminal activity can be tweaked via the new
wakePeriod const.
This leads to some significant performance improvements: Aminal now consumes:
- no CPU when idle (previously ~2.7% on my laptop)
- ~8.5% CPU on my machine when running htop full screen on a large
monitor (previously ~18.5% on my laptop)
- scrolling large amounts of output is an order of magnitude faster
This change also incidentally fixes data races around the terminal
dirty flag (which is now gone).
* #225 ESC press doesn't work as expected under vi
* fix: BEL OSC terminator for Windows
* bug fix: correcte DA2 handling
* bug fix: #223 Wrong cursor rendering position on fast new line input
* Added Make targets for gofmt
- `make check-gofmt` will check for files that aren't gofmt compliant
- `make gofmt` will fix any gofmt error's in Aminal's source
Vendored files are ignored.
* Add gofmt check to TravisCI checks
* Fix gofmt errors
* Correct handling of DeviceAttributes request
* added DECCOLM support
* added DECALN control sequence support
* added NEL support
* bug fix: Erase To Cursor should be inclusive
* added support for 'Origin Mode' (DECOM) -- top/bottom margins only
* vttest test 1 screen 3: margin tests fixes
* added support for intermediate controls inside CSI sequence
* added support for LNM (Line Feed/New Line Mode)
* removed obsolete 'intermediate' parameter
* window resize on programmatic CSI resize
* DECCOLM should clear screen on both set and reset
* bug fix in autowrap mode
* TestCursorMovement runs all test cases; screen template images updated
Signed-off-by: Max Risuhin <risuhin.max@gmail.com>
* bug fix: line mode messing with autowrap
* added ResetVerticalMargins() method
* IsAutoWrap(), IsNewLineMode()
* corrected DECALN
* fixed NEL to work in Line Feed mode
* tyding up: removed map of 1 element
* Terminal state moved out from buffer
* fix
* Correct handling of DeviceAttributes request
* added DECCOLM support
* added DECALN control sequence support
* added NEL support
* bug fix: Erase To Cursor should be inclusive
* added support for 'Origin Mode' (DECOM) -- top/bottom margins only
* vttest test 1 screen 3: margin tests fixes
* added support for intermediate controls inside CSI sequence
* added support for LNM (Line Feed/New Line Mode)
* removed obsolete 'intermediate' parameter
* window resize on programmatic CSI resize
* DECCOLM should clear screen on both set and reset
* bug fix in autowrap mode
* TestCursorMovement runs all test cases; screen template images updated
Signed-off-by: Max Risuhin <risuhin.max@gmail.com>
* bug fix: line mode messing with autowrap
* added ResetVerticalMargins() method
* IsAutoWrap(), IsNewLineMode()
* corrected DECALN
* fixed NEL to work in Line Feed mode
* tyding up: removed map of 1 element
* Run vttest on Travis to validate active buffer data and screenshot.
Signed-off-by: Max Risuhin <risuhin.max@gmail.com>
* Add deps sources to vendor
Signed-off-by: Max Risuhin <risuhin.max@gmail.com>
* Windows support and enhancements.
- Added basic platform abstraction layer for Pty and Process creation;
- Added "platform" package that exposes a few interfaces and provides implementations for different platforms;
- Windows build and dev env setup instructions;
- Setup Travis and deploy git tags to GItHub releases;
- Window scaling awares of monitor's dpi;
- Resolved memory leaks on window resizing;
- Default limit for terminal's buffer length.
Co-authored-by: nikitar020 <nikitar020@mail.ru>
Co-authored-by: Max Risuhin <risuhin.max@gmail.com>
Co-authored-by: Roman Shevchenko <rrrooommmaaa@mail.ru>
* ReadMe updated with Windows support; Detecting of currently used monitor.