Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- classifyMapForTerm :: String -> Terminal -> ClassifyMap
- universalTable :: ClassifyMap
- capsClassifyMap :: Terminal -> [(String, Event)] -> ClassifyMap
- termSpecificTables :: String -> [ClassifyMap]
- visibleChars :: ClassifyMap
- ctrlChars :: ClassifyMap
- ctrlMetaChars :: ClassifyMap
- specialSupportKeys :: ClassifyMap
- keysFromCapsTable :: ClassifyMap
- functionKeyCapsTable :: ClassifyMap
Documentation
classifyMapForTerm :: String -> Terminal -> ClassifyMap Source #
Queries the terminal for all capability-based input sequences and then adds on a terminal-dependent input sequence mapping.
For reference see:
- http://vimdoc.sourceforge.net/htmldoc/term.html
- vim74srcterm.c
- http://invisible-island.net/vttest/
- http://aperiodic.net/phil/archives/Geekery/term-function-keys.html
Terminfo is incomplete. The vim source implies that terminfo is also incorrect. Vty assumes that the internal terminfo table added to the system-provided terminfo table is correct.
The procedure used here is:
- Build terminfo table for all caps. Missing caps are not added.
- Add tables for visible chars, esc, del, ctrl, and meta.
- Add internally-defined table for given terminal type.
Precedence is currently implicit in the compile
algorithm.
universalTable :: ClassifyMap Source #
The key table applicable to all terminals.
Note that some of these entries are probably only applicable to ANSI/VT100 terminals.
capsClassifyMap :: Terminal -> [(String, Event)] -> ClassifyMap Source #
termSpecificTables :: String -> [ClassifyMap] Source #
Tables specific to a given terminal that are not derivable from terminfo.
Note that this adds the ANSIVT100VT50 tables regardless of term identifier.
visibleChars :: ClassifyMap Source #
Visible characters in the ISO-8859-1 and UTF-8 common set.
We limit to < 0xC1. The UTF8 sequence detector will catch all values 0xC2 and above before this classify table is reached.
ctrlChars :: ClassifyMap Source #
Non-printable characters in the ISO-8859-1 and UTF-8 common set translated to ctrl + char.
This treats CTRL-i the same as tab.
ctrlMetaChars :: ClassifyMap Source #
Ctrl+Meta+Char
specialSupportKeys :: ClassifyMap Source #
Esc, meta-esc, delete, meta-delete, enter, meta-enter.
keysFromCapsTable :: ClassifyMap Source #
A classification table directly generated from terminfo cap strings. These are:
- ka1 - keypad up-left
- ka3 - keypad up-right
- kb2 - keypad center
- kbs - keypad backspace
- kbeg - begin
- kcbt - back tab
- kc1 - keypad left-down
- kc3 - keypad right-down
- kdch1 - delete
- kcud1 - down
- kend - end
- kent - enter
- kf0 - kf63 - function keys
- khome - KHome
- kich1 - insert
- kcub1 - left
- knp - next page (page down)
- kpp - previous page (page up)
- kcuf1 - right
- kDC - shift delete
- kEND - shift end
- kHOM - shift home
- kIC - shift insert
- kLFT - shift left
- kRIT - shift right
- kcuu1 - up
functionKeyCapsTable :: ClassifyMap Source #
Cap names for function keys.