Skip to content

Fantom-Factory/afTerminal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#ANSI Terminal v0.9.0

Written in: Fantom pod: v0.9.0 Licence: ISC

Overview

An FWT widget that prints ANSI escape sequences.

Features:

  • 256 Colour VGA palette or full colour
  • Foreground and background colours, palette index and full colour
  • Bold, italic, underline, and crossed out fonts
  • Cursor commands for up, down, left, right, absolute, save, restore
  • Clear commands for line and screen

AnsiTerminal wraps a RichText widget and provides methods to print ANSI escape sequences.

The AnsiBuf class provides convenient methods for generating ANSI escape sequences.

Install

Install ANSI Terminal with the Fantom Pod Manager ( FPM ):

C:\> fpm install afTerminal

Or install ANSI Terminal with fanr:

C:\> fanr install -r http://eggbox.fantomfactory.org/fanr/ afTerminal

To use in a Fantom project, add a dependency to build.fan:

depends = ["sys 1.0", ..., "afTerminal 0.9"]

Documentation

Full API & fandocs are available on the Eggbox - the Fantom Pod Repository.

Quick Start

  1. Create a text file called Example.fan

     using gfx::Size
     using fwt::Window
     using afTerminal
     
     class Example {
         Void main() {
             term := AnsiTerminal()
             ansi := AnsiBuf()
                 .fgIdx( 9).print("RED\n").reset
                 .fgIdx(10).print("GREEN\n").reset
                 .fgIdx(12).print("BLUE\n").reset
                 .underline.print("Underline").reset
     
             Window {
                 it.title = "ANSI Terminal"
                 it.size = Size(320, 200)
                 it.add(term.richText)
                 it.onOpen.add |->| {
                     term.print(ansi)
                 }
             }.open
         }
     }
    
  2. Run Example.fan as a Fantom script from the command line:

     C:\> fan Example.fan
    

ANSI Terminal Example