Go package for ANSI terminal emulation in Windows
Go
Switch branches/tags
Nothing to show
Clone or download
jstarks Merge pull request #25 from kenshaw/remove-logrus-dependency
Remove logrus dependency, and add functional options to specify logger
Latest commit d6e3b33 Sep 29, 2017
Permalink
Failed to load latest commit information.
winterm Merge pull request #25 from kenshaw/remove-logrus-dependency Sep 29, 2017
LICENSE Fixed License: MICROSOFT -> Microsoft Corporation Jun 9, 2015
README.md Add code of conduct Jun 22, 2016
constants.go Stop exporting internal functions Apr 25, 2016
context.go Stop exporting internal functions Apr 25, 2016
csi_entry_state.go Remove logrus dependency, and add functional options to specify logger Sep 25, 2017
csi_param_state.go Remove logrus dependency, and add functional options to specify logger Sep 25, 2017
escape_intermediate_state.go Remove logrus dependency, and add functional options to specify logger Sep 25, 2017
escape_state.go Remove logrus dependency, and add functional options to specify logger Sep 25, 2017
event_handler.go Add DECCOLM support to toggle 80 and 132 columns Aug 7, 2015
ground_state.go Stop exporting internal functions Apr 25, 2016
osc_string_state.go Remove logrus dependency, and add functional options to specify logger Sep 25, 2017
parser.go Remove logrus dependency, and add functional options to specify logger Sep 25, 2017
parser_action_helpers.go Remove logrus dependency, and add functional options to specify logger Sep 25, 2017
parser_actions.go Remove logrus dependency, and add functional options to specify logger Sep 25, 2017
parser_test.go Stop exporting internal functions Apr 25, 2016
parser_test_helpers_test.go Don't build test files outside of go test Apr 25, 2016
parser_test_utilities_test.go Stop exporting internal functions Apr 25, 2016
states.go Stop exporting internal functions Apr 25, 2016
test_event_handler_test.go Don't build test files outside of go test Apr 25, 2016
utilities.go Initial commit Jun 8, 2015

README.md

go-ansiterm

This is a cross platform Ansi Terminal Emulation library. It reads a stream of Ansi characters and produces the appropriate function calls. The results of the function calls are platform dependent.

For example the parser might receive "ESC, [, A" as a stream of three characters. This is the code for Cursor Up (http://www.vt100.net/docs/vt510-rm/CUU). The parser then calls the cursor up function (CUU()) on an event handler. The event handler determines what platform specific work must be done to cause the cursor to move up one position.

The parser (parser.go) is a partial implementation of this state machine (http://vt100.net/emu/vt500_parser.png). There are also two event handler implementations, one for tests (test_event_handler.go) to validate that the expected events are being produced and called, the other is a Windows implementation (winterm/win_event_handler.go).

See parser_test.go for examples exercising the state machine and generating appropriate function calls.


This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.