Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
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
- Using screen buffers
- Reporting background or foreground colors
- Select Graphic Rendition mode: colors and other whizzy stuff
- Cursor visibilty changes
- Hyperlinks
- 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.
Synopsis
- data ConsoleLayer
- data Color
- data SGR
- = Reset
- | SetConsoleIntensity !ConsoleIntensity
- | SetItalicized !Bool
- | SetUnderlining !Underlining
- | SetBlinkSpeed !BlinkSpeed
- | SetVisible !Bool
- | SetSwapForegroundBackground !Bool
- | SetColor !ConsoleLayer !ColorIntensity !Color
- | SetRGBColor !ConsoleLayer !(Colour Float)
- | SetPaletteColor !ConsoleLayer !Word8
- | SetDefaultColor !ConsoleLayer
- data ConsoleIntensity
- data Underlining
- data BlinkSpeed
- data ColorIntensity
- xterm24LevelGray :: Int -> Word8
- xterm6LevelRGB :: Int -> Int -> Int -> Word8
- xtermSystem :: ColorIntensity -> Color -> Word8
- 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
- useAlternateScreenBufferCode :: String
- useNormalScreenBufferCode :: String
- reportLayerColorCode :: ConsoleLayer -> String
- setSGRCode :: [SGR] -> String
- hideCursorCode :: String
- showCursorCode :: String
- hyperlinkCode :: String -> String -> String
- hyperlinkWithIdCode :: String -> String -> String -> String
- hyperlinkWithParamsCode :: [(String, String)] -> String -> String -> String
- setTitleCode :: String -> String
- colorToCode :: Color -> Int
- csi :: [Int] -> String -> String
- osc :: String -> String -> String
- sgrToCode :: SGR -> [Int]
Basic data types
data ConsoleLayer #
Constructors
Foreground | |
Background |
Instances
Instances
Bounded Color | |
Defined in System.Console.ANSI.Types | |
Enum Color | |
Ix Color | |
Read Color | |
Defined in System.Console.ANSI.Types | |
Show Color | |
Eq Color | |
Ord Color | |
Constructors
Reset | |
SetConsoleIntensity !ConsoleIntensity | |
SetItalicized !Bool | |
SetUnderlining !Underlining | |
SetBlinkSpeed !BlinkSpeed | |
SetVisible !Bool | |
SetSwapForegroundBackground !Bool | |
SetColor !ConsoleLayer !ColorIntensity !Color | |
SetRGBColor !ConsoleLayer !(Colour Float) | |
SetPaletteColor !ConsoleLayer !Word8 | |
SetDefaultColor !ConsoleLayer |
Instances
Read SGR | |
Defined in System.Console.ANSI.Types | |
Show SGR | |
Eq SGR | |
data ConsoleIntensity #
Constructors
BoldIntensity | |
FaintIntensity | |
NormalIntensity |
Instances
data Underlining #
Constructors
SingleUnderline | |
DoubleUnderline | |
NoUnderline |
Instances
data BlinkSpeed #
Constructors
SlowBlink | |
RapidBlink | |
NoBlink |
Instances
data ColorIntensity #
Instances
xterm24LevelGray :: Int -> Word8 #
xterm6LevelRGB :: Int -> Int -> Int -> Word8 #
xtermSystem :: ColorIntensity -> Color -> Word8 #
Cursor movement by character
These functions yield ""
when the number is 0
as, on some
terminals, a 0
parameter for the underlying 'ANSI' code specifies a
default parameter of 1
.
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
These functions yield the equivalent of setCursorColumnCode 0
when
the number is 0
as, on some terminals, a 0
parameter for the
underlying 'ANSI' code specifies a default parameter of 1
.
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.
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
These functions yield ""
when the number is 0
as, on some
terminals, a 0
parameter for the underlying 'ANSI' code specifies a
default parameter of 1
.
Arguments
:: Int | Number of lines to scroll by |
-> String |
Arguments
:: Int | Number of lines to scroll by |
-> String |
Using screen buffers
useAlternateScreenBufferCode :: String Source #
useNormalScreenBufferCode :: String Source #
Reporting background or foreground colors
reportLayerColorCode :: ConsoleLayer -> String Source #
Code to emit the layer color into the console input stream, immediately
after being recognised on the output stream, as:
ESC ] <Ps> ; rgb: <red> ; <green> ; <blue> <ST>
where <Ps>
is 10
for Foreground
and 11
for Background
; <red>
,
<green>
and <blue>
are the color channel values in hexadecimal (4, 8,
12 and 16 bit values are possible, although 16 bit values are most common);
and <ST>
is the STRING TERMINATOR (ST). ST depends on the terminal
software and may be the BEL
character or ESC \
characters.
This function may be of limited, or no, use on Windows operating systems
because (1) the control character sequence is not supported on native
terminals (2) of difficulties in obtaining the data emitted into the
console input stream. See getReportedLayerColor
.
Since: 0.11.4
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 #
Hyperlinks
Some, but not all, terminals support hyperlinks - that is, clickable text that points to a URI.
Arguments
:: String | URI |
-> String | Link text |
-> String |
Code to introduce a hyperlink.
Since: 0.11.3
Arguments
:: String | Identifier for the link |
-> String | URI |
-> String | Link text |
-> String |
Code to introduce a hyperlink with an identifier for the link. Some terminals support an identifier, so that hyperlinks with the same identifier are treated as connected.
Since: 0.11.3
hyperlinkWithParamsCode Source #
Arguments
:: [(String, String)] | Parameters |
-> String | URI |
-> String | Link text |
-> String |
Code to introduce a hyperlink with (key, value) parameters. Some terminals
support an id
parameter key, so that hyperlinks with the same id
value
are treated as connected.
Since: 0.11.3
Changing the title
Arguments
:: String | New window title and icon name |
-> String |
Code to set the terminal window title and the icon name (that is, the text for the window in the Start bar, or similar).
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.
Arguments
:: String | Ps parameter |
-> String | Pt parameter(s) |
-> String |
osc
parameterS parametersT
, where parameterS
specifies the type of
operation to perform and parametersT
is the other parameter(s) (if any),
returns the control sequence comprising the control function OPERATING SYSTEM
COMMAND (OSC) followed by the parameters (separated by ';') and ending with
the STRING TERMINATOR (ST) "\ESC\\"
.
Since: 0.11.4