Thanks for considering donating your time and energy! All contributions are welcome, no matter how small.
Everything should be documented with rustdoc annotations. If anything is missing, contributions to fill in the gaps are welcome.
Contributions for other kinds of documentation are also welcome.
streampager is divided up into modules as follows:
bufferprovides a safe fillable buffer that is used for storing streams in memory.filecontains representations of loaded streams or files.progresscontains the representation of the progress input stream.overstrikeconverts ancient overstrike styling into merely old CSI code sequences.linecontains the representation of a single line in a file, including how to render it.line_cachedefines a cache of lines.screencontains the definition of a screen that displays a single file.refreshrecords which parts of the screen need to be refreshed.commandcontains the commands the user can invoke, like search and go to line.promptcontains the implementation of the prompt for input.searchcontains the implementation of searching for text.displaycontains the controller of the display.eventcontains the event definitions that control how streampager handles input events.appcontains the definition of the command line arguments.mainparses the arguments, sets up the input streams, and starts the display.
streampager is a project that I work on in my spare time. While I will try to get round to reviewing pull requests, please remember that I may not have time.
I am providing the code in this repository to you under an open source license. Because this is my personal repository, the license you receive to my code is from me and not my employer.