Safe Haskell | Safe |
---|---|
Language | Haskell98 |
System.Console.ANSI.Codes
Contents
- Basic data types
- Cursor movement by character
- Cursor movement by line
- Directly changing cursor position
- Saving, restoring and reporting cursor position
- Clearing parts of the screen
- Scrolling the screen
- Select Graphic Rendition mode: colors and other whizzy stuff
- Cursor visibilty changes
- Changing the title
- Utilities
Description
This module exports functions that return String
values containing codes
in accordance with the 'ANSI' standards for control character sequences
described in the documentation of module System.Console.ANSI.
The module System.Console.ANSI exports functions with the same names as those in this module. On some versions of Windows, the terminal in use may not be ANSI-capable. When that is the case, the same-named functions exported by module System.Console.ANSI return "", for the reasons set out in the documentation of that module.
Consequently, if module System.Console.ANSI is also imported, this module is intended to be imported qualified, to avoid name clashes with those functions. For example:
import qualified System.Console.ANSI.Codes as ANSI
Synopsis
- module System.Console.ANSI.Types
- cursorUpCode :: Int -> String
- cursorDownCode :: Int -> String
- cursorForwardCode :: Int -> String
- cursorBackwardCode :: Int -> String
- cursorUpLineCode :: Int -> String
- cursorDownLineCode :: Int -> String
- setCursorColumnCode :: Int -> String
- setCursorPositionCode :: Int -> Int -> String
- saveCursorCode :: String
- restoreCursorCode :: String
- reportCursorPositionCode :: String
- clearFromCursorToScreenEndCode :: String
- clearFromCursorToScreenBeginningCode :: String
- clearScreenCode :: String
- clearFromCursorToLineEndCode :: String
- clearFromCursorToLineBeginningCode :: String
- clearLineCode :: String
- scrollPageUpCode :: Int -> String
- scrollPageDownCode :: Int -> String
- setSGRCode :: [SGR] -> String
- hideCursorCode :: String
- showCursorCode :: String
- setTitleCode :: String -> String
- colorToCode :: Color -> Int
- csi :: [Int] -> String -> String
- sgrToCode :: SGR -> [Int]
Basic data types
module System.Console.ANSI.Types
Cursor movement by character
Arguments
:: Int | Number of lines or characters to move |
-> String |
Arguments
:: Int | Number of lines or characters to move |
-> String |
Arguments
:: Int | Number of lines or characters to move |
-> String |
Arguments
:: Int | Number of lines or characters to move |
-> String |
Cursor movement by line
Arguments
:: Int | Number of lines to move |
-> String |
Arguments
:: Int | Number of lines to move |
-> String |
Directly changing cursor position
Arguments
:: Int | 0-based column to move to |
-> String |
Code to move the cursor to the specified column. The column numbering is 0-based (that is, the left-most column is numbered 0).
setCursorPositionCode Source #
Arguments
:: Int | 0-based row to move to |
-> Int | 0-based column to move to |
-> String |
Code to move the cursor to the specified position (row and column). The position is 0-based (that is, the top-left corner is at row 0 column 0).
Saving, restoring and reporting cursor position
saveCursorCode :: String Source #
Since: 0.7.1
restoreCursorCode :: String Source #
Since: 0.7.1
reportCursorPositionCode :: String Source #
Code to emit the cursor position into the console input stream, immediately
after being recognised on the output stream, as:
ESC [ <cursor row> ; <cursor column> R
Note that the information that is emitted is 1-based (the top-left corner is
at row 1 column 1) but setCursorPositionCode
is 0-based.
In isolation of getReportedCursorPosition
or getCursorPosition
, this
function may be of limited use on Windows operating systems because of
difficulties in obtaining the data emitted into the console input stream.
The function hGetBufNonBlocking
in module System.IO does not work on
Windows. This has been attributed to the lack of non-blocking primatives in
the operating system (see the GHC bug report #806 at
https://ghc.haskell.org/trac/ghc/ticket/806).
Since: 0.7.1
Clearing parts of the screen
clearFromCursorToScreenEndCode :: String Source #
clearFromCursorToScreenBeginningCode :: String Source #
clearScreenCode :: String Source #
clearFromCursorToLineEndCode :: String Source #
clearFromCursorToLineBeginningCode :: String Source #
clearLineCode :: String Source #
Scrolling the screen
Arguments
:: Int | Number of lines to scroll by |
-> String |
Arguments
:: Int | Number of lines to scroll by |
-> String |
Select Graphic Rendition mode: colors and other whizzy stuff
Arguments
:: [SGR] | Commands: these will typically be applied on top of the
current console SGR mode. An empty list of commands is
equivalent to the list |
-> String |
Cursor visibilty changes
hideCursorCode :: String Source #
showCursorCode :: String Source #
Changing the title
Thanks to Brandon S. Allbery and Curt Sampson for pointing me in the right direction on xterm title setting on haskell-cafe. The "0" signifies that both the title and "icon" text should be set: i.e. the text for the window in the Start bar (or similar) as well as that in the actual window title. This is chosen for consistent behaviour between Unixes and Windows.
Arguments
:: String | New Icon Name and Window Title |
-> String |
XTerm control sequence to set the Icon Name and Window Title.
Utilities
colorToCode :: Color -> Int Source #
colorToCode
color
returns the 0-based index of the color (one of the
eight colors in the ANSI standard).
Arguments
:: [Int] | List of parameters for the control sequence |
-> String | Character(s) that identify the control function |
-> String |
csi
parameters controlFunction
, where parameters
is a list of Int
,
returns the control sequence comprising the control function CONTROL
SEQUENCE INTRODUCER (CSI) followed by the parameter(s) (separated by ';')
and ending with the controlFunction
character(s) that identifies the
control function.