@@ -92,10 +92,13 @@ addTest('io.JS', [
92
92
] ) ;
93
93
94
94
// Named characters
95
- addTest ( '\n\r\t' , [
95
+ addTest ( '\n\r\t\x1b\n\x1b\r\x1b\t ' , [
96
96
{ name : 'enter' , sequence : '\n' } ,
97
97
{ name : 'return' , sequence : '\r' } ,
98
98
{ name : 'tab' , sequence : '\t' } ,
99
+ { name : 'enter' , sequence : '\x1b\n' , meta : true } ,
100
+ { name : 'return' , sequence : '\x1b\r' , meta : true } ,
101
+ { name : 'tab' , sequence : '\x1b\t' , meta : true } ,
99
102
] ) ;
100
103
101
104
// Space and backspace
@@ -132,6 +135,25 @@ addTest('a\x1baA\x1bA', [
132
135
{ name : 'a' , sequence : '\x1bA' , meta : true , shift : true } ,
133
136
] ) ;
134
137
138
+ // xterm/gnome ESC [ letter (with modifiers)
139
+ /* eslint-disable max-len */
140
+ addTest ( '\x1b[2P\x1b[3P\x1b[4P\x1b[5P\x1b[6P\x1b[7P\x1b[8P\x1b[3Q\x1b[8Q\x1b[3R\x1b[8R\x1b[3S\x1b[8S' , [
141
+ { name : 'f1' , sequence : '\x1b[2P' , code : '[P' , shift : true , meta : false , ctrl : false } ,
142
+ { name : 'f1' , sequence : '\x1b[3P' , code : '[P' , shift : false , meta : true , ctrl : false } ,
143
+ { name : 'f1' , sequence : '\x1b[4P' , code : '[P' , shift : true , meta : true , ctrl : false } ,
144
+ { name : 'f1' , sequence : '\x1b[5P' , code : '[P' , shift : false , meta : false , ctrl : true } ,
145
+ { name : 'f1' , sequence : '\x1b[6P' , code : '[P' , shift : true , meta : false , ctrl : true } ,
146
+ { name : 'f1' , sequence : '\x1b[7P' , code : '[P' , shift : false , meta : true , ctrl : true } ,
147
+ { name : 'f1' , sequence : '\x1b[8P' , code : '[P' , shift : true , meta : true , ctrl : true } ,
148
+ { name : 'f2' , sequence : '\x1b[3Q' , code : '[Q' , meta : true } ,
149
+ { name : 'f2' , sequence : '\x1b[8Q' , code : '[Q' , shift : true , meta : true , ctrl : true } ,
150
+ { name : 'f3' , sequence : '\x1b[3R' , code : '[R' , meta : true } ,
151
+ { name : 'f3' , sequence : '\x1b[8R' , code : '[R' , shift : true , meta : true , ctrl : true } ,
152
+ { name : 'f4' , sequence : '\x1b[3S' , code : '[S' , meta : true } ,
153
+ { name : 'f4' , sequence : '\x1b[8S' , code : '[S' , shift : true , meta : true , ctrl : true } ,
154
+ ] ) ;
155
+ /* eslint-enable max-len */
156
+
135
157
// xterm/gnome ESC O letter
136
158
addTest ( '\x1bOP\x1bOQ\x1bOR\x1bOS' , [
137
159
{ name : 'f1' , sequence : '\x1bOP' , code : 'OP' } ,
0 commit comments