on master help sign in
rename ClassifyTable to ClassifyTableV1
4fae6a2Corey O'Connor
install_examples+1
@@ -1,3 +1,4 @@
1#!/bin/bash
1#!/bin/bash
2+set -ex
2cabal install
3cabal install
3(cd test && cabal install)
4(cd test && cabal install)
src/Graphics/Vty/Input/Data.hs+9−9
@@ -82,14 +82,14 @@ nav_keys_1 =
82 ]
82 ]
83
83
84-- | VT 100 (?) encoding for ins, del, pageup, pagedown, home, end
84-- | VT 100 (?) encoding for ins, del, pageup, pagedown, home, end
85−nav_keys_2 :: ClassifyTable
85+nav_keys_2 :: ClassifyTableV1
86nav_keys_2 =
86nav_keys_2 =
87 let k n s = ("\ESC["++show n++"~",(s,[]))
87 let k n s = ("\ESC["++show n++"~",(s,[]))
88 in zipWith k [2::Int,3,5,6,1,4]
88 in zipWith k [2::Int,3,5,6,1,4]
89 [KIns,KDel,KPageUp,KPageDown,KHome,KEnd]
89 [KIns,KDel,KPageUp,KPageDown,KHome,KEnd]
90
90
91-- | VT 100 (?) encoding for ctrl + ins, del, pageup, pagedown, home, end
91-- | VT 100 (?) encoding for ctrl + ins, del, pageup, pagedown, home, end
92−nav_keys_3 :: ClassifyTable
92+nav_keys_3 :: ClassifyTableV1
93nav_keys_3 =
93nav_keys_3 =
94 let k n s = ("\ESC["++show n++";5~",(s,[MCtrl]))
94 let k n s = ("\ESC["++show n++";5~",(s,[MCtrl]))
95 in zipWith k [2::Int,3,5,6,1,4]
95 in zipWith k [2::Int,3,5,6,1,4]
@@ -102,7 +102,7 @@ nav_keys_3 =
102--
102--
103-- TODO: resolve
103-- TODO: resolve
104-- 1. start at ' '. The earlier characters are all ctrl_char_keys
104-- 1. start at ' '. The earlier characters are all ctrl_char_keys
105−simple_chars :: ClassifyTable
105+simple_chars :: ClassifyTableV1
106simple_chars = [(x:[],(KASCII x,[])) | x <- [' ' .. toEnum 0xC1]]
106simple_chars = [(x:[],(KASCII x,[])) | x <- [' ' .. toEnum 0xC1]]
107
107
108-- | VT 100 (?) encoding for shift plus function keys
108-- | VT 100 (?) encoding for shift plus function keys
@@ -114,7 +114,7 @@ simple_chars = [(x:[],(KASCII x,[])) | x <- [' ' .. toEnum 0xC1]]
114-- ``meta mode'' on and off, they can be given as smm and rmm."
114-- ``meta mode'' on and off, they can be given as smm and rmm."
115--
115--
116-- That is more complex than below. I cannot fault the original author for just hard coding a table.
116-- That is more complex than below. I cannot fault the original author for just hard coding a table.
117−function_keys_1 :: ClassifyTable
117+function_keys_1 :: ClassifyTableV1
118function_keys_1 =
118function_keys_1 =
119 let f ff nrs m = [ ("\ESC["++show n++"~",(KFun (n-(nrs!!0)+ff), m)) | n <- nrs ] in
119 let f ff nrs m = [ ("\ESC["++show n++"~",(KFun (n-(nrs!!0)+ff), m)) | n <- nrs ] in
120 concat [f 1 [25,26] [MShift], f 3 [28,29] [MShift], f 5 [31..34] [MShift] ]
120 concat [f 1 [25,26] [MShift], f 3 [28,29] [MShift], f 5 [31..34] [MShift] ]
@@ -128,12 +128,12 @@ function_keys_1 =
128-- the same as ESC should examine km and current encoding.
128-- the same as ESC should examine km and current encoding.
129-- 3. stopped enumeration at '~' instead of '\DEL'. The latter is mapped to KBS by
129-- 3. stopped enumeration at '~' instead of '\DEL'. The latter is mapped to KBS by
130-- special_support_keys.
130-- special_support_keys.
131−function_keys_2 :: ClassifyTable
131+function_keys_2 :: ClassifyTableV1
132function_keys_2 = [ ('\ESC':[x],(KASCII x,[MMeta])) | x <- '\t':[' ' .. '~'],
132function_keys_2 = [ ('\ESC':[x],(KASCII x,[MMeta])) | x <- '\t':[' ' .. '~'],
133 x /= '[']
133 x /= '[']
134
134
135-- | Ctrl+Char
135-- | Ctrl+Char
136−ctrl_char_keys :: ClassifyTable
136+ctrl_char_keys :: ClassifyTableV1
137ctrl_char_keys =
137ctrl_char_keys =
138 [ ([toEnum x],(KASCII y,[MCtrl]))
138 [ ([toEnum x],(KASCII y,[MCtrl]))
139 | (x,y) <- zip ([0..31]) ('@':['a'..'z']++['['..'_']),
139 | (x,y) <- zip ([0..31]) ('@':['a'..'z']++['['..'_']),
@@ -143,14 +143,14 @@ ctrl_char_keys =
143-- | Ctrl+Meta+Char
143-- | Ctrl+Meta+Char
144--
144--
145-- TODO: CTRL-i is the same as tab thing
145-- TODO: CTRL-i is the same as tab thing
146−ctrl_meta_keys :: ClassifyTable
146+ctrl_meta_keys :: ClassifyTableV1
147ctrl_meta_keys =
147ctrl_meta_keys =
148 [ ('\ESC':[toEnum x],(KASCII y,[MMeta,MCtrl])) | (x,y) <- zip [0..31] ('@':['a'..'z']++['['..'_']),
148 [ ('\ESC':[toEnum x],(KASCII y,[MMeta,MCtrl])) | (x,y) <- zip [0..31] ('@':['a'..'z']++['['..'_']),
149 y /= 'i'
149 y /= 'i'
150 ]
150 ]
151
151
152-- | Special support
152-- | Special support
153−special_support_keys :: ClassifyTable
153+special_support_keys :: ClassifyTableV1
154special_support_keys =
154special_support_keys =
155 [ -- special support for ESC
155 [ -- special support for ESC
156 ("\ESC",(KEsc,[])) , ("\ESC\ESC",(KEsc,[MMeta]))
156 ("\ESC",(KEsc,[])) , ("\ESC\ESC",(KEsc,[MMeta]))
@@ -161,7 +161,7 @@ special_support_keys =
161 ]
161 ]
162
162
163-- | classify table for ANSI terminals
163-- | classify table for ANSI terminals
164−ansi_classify_table :: [ClassifyTable]
164+ansi_classify_table :: [ClassifyTableV1]
165ansi_classify_table =
165ansi_classify_table =
166 [ nav_keys_0
166 [ nav_keys_0
167 , nav_keys_1
167 , nav_keys_1
src/Graphics/Vty/Input/Internal.hs+3−3
@@ -47,7 +47,7 @@ inputToEventThread classifier inputChannel eventChannel = loop []
47 MisPfx k m s -> writeChan eventChannel (EvKey k m) >> loop s
47 MisPfx k m s -> writeChan eventChannel (EvKey k m) >> loop s
48 Valid k m -> writeChan eventChannel (EvKey k m) >> loop ""
48 Valid k m -> writeChan eventChannel (EvKey k m) >> loop ""
49
49
50−compile :: ClassifyTable -> [Char] -> KClass
50+compile :: ClassifyTableV1 -> [Char] -> KClass
51compile table = cl' where
51compile table = cl' where
52 -- take all prefixes and create a set of these
52 -- take all prefixes and create a set of these
53 prefix_set = S.fromList $ concatMap (init . inits . fst) $ table
53 prefix_set = S.fromList $ concatMap (init . inits . fst) $ table
@@ -71,7 +71,7 @@ compile table = cl' where
71 ++ "input not a prefix nor contains any event data "
71 ++ "input not a prefix nor contains any event data "
72 ++ show input_block
72 ++ show input_block
73
73
74−classify, classifyTab :: ClassifyTable -> [Char] -> KClass
74+classify, classifyTab :: ClassifyTableV1 -> [Char] -> KClass
75
75
76-- As soon as
76-- As soon as
77classify _table "\xFFFD" = EndLoop
77classify _table "\xFFFD" = EndLoop
@@ -98,7 +98,7 @@ utf8Length c
98 | c < 0xF0 = 3
98 | c < 0xF0 = 3
99 | otherwise = 4
99 | otherwise = 4
100
100
101−initInputForFd :: Int -> ClassifyTable -> Fd -> IO (Chan Event, IO ())
101+initInputForFd :: Int -> ClassifyTableV1 -> Fd -> IO (Chan Event, IO ())
102initInputForFd escDelay classify_table input_fd = do
102initInputForFd escDelay classify_table input_fd = do
103 inputChannel <- newChan
103 inputChannel <- newChan
104 eventChannel <- newChan
104 eventChannel <- newChan
src/Graphics/Vty/Input/Terminfo.hs+1−1
@@ -9,7 +9,7 @@ caps_classify_table :: Terminal -> [(String,Event)] -> [(String,Event)]
9caps_classify_table terminal table = [(x,y) | (Just x,y) <- map extract_cap table]
9caps_classify_table terminal table = [(x,y) | (Just x,y) <- map extract_cap table]
10 where extract_cap = first (getCapability terminal . tiGetStr)
10 where extract_cap = first (getCapability terminal . tiGetStr)
11
11
12−classify_table_for_term :: Terminal -> ClassifyTable
12+classify_table_for_term :: Terminal -> ClassifyTableV1
13classify_table_for_term term =
13classify_table_for_term term =
14 let caps_legacy_table = map_to_legacy_table $ caps_classify_table term keys_from_caps_table
14 let caps_legacy_table = map_to_legacy_table $ caps_classify_table term keys_from_caps_table
15 in concat $ caps_legacy_table : ansi_classify_table
15 in concat $ caps_legacy_table : ansi_classify_table
test/VerifyUsingMockInput.hs+2−2
@@ -101,7 +101,7 @@ compare_events input_spec expected_events out_events = compare_events' expected_
101 printf "received events %s\n" (show out_events) :: IO ()
101 printf "received events %s\n" (show out_events) :: IO ()
102 return False
102 return False
103
103
104−assert_events_from_syn_input :: ClassifyTable -> InputSpec -> ExpectedSpec -> IO Bool
104+assert_events_from_syn_input :: ClassifyTableV1 -> InputSpec -> ExpectedSpec -> IO Bool
105assert_events_from_syn_input table input_spec expected_events = do
105assert_events_from_syn_input table input_spec expected_events = do
106 let max_duration = sum [t | Delay t <- input_spec] + min_detectable_delay
106 let max_duration = sum [t | Delay t <- input_spec] + min_detectable_delay
107 event_count = length expected_events
107 event_count = length expected_events
@@ -126,7 +126,7 @@ assert_events_from_syn_input table input_spec expected_events = do
126 out_events <- reverse <$> readIORef events_ref
126 out_events <- reverse <$> readIORef events_ref
127 compare_events input_spec expected_events out_events
127 compare_events input_spec expected_events out_events
128
128
129−assert_events_from_input_block :: ClassifyTable -> InputSpec -> ExpectedSpec -> IO Bool
129+assert_events_from_input_block :: ClassifyTableV1 -> InputSpec -> ExpectedSpec -> IO Bool
130assert_events_from_input_block table input_spec expected_events = do
130assert_events_from_input_block table input_spec expected_events = do
131 let classifier = classify table
131 let classifier = classify table
132 max_duration = sum [t | Delay t <- input_spec] + min_detectable_delay
132 max_duration = sum [t | Delay t <- input_spec] + min_detectable_delay