@@ -92,10 +92,13 @@ addTest('io.JS', [
9292] ) ;
9393
9494// Named characters
95- addTest ( '\n\r\t' , [
95+ addTest ( '\n\r\t\x1b\n\x1b\r\x1b\t ' , [
9696 { name : 'enter' , sequence : '\n' } ,
9797 { name : 'return' , sequence : '\r' } ,
9898 { 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 } ,
99102] ) ;
100103
101104// Space and backspace
@@ -132,6 +135,25 @@ addTest('a\x1baA\x1bA', [
132135 { name : 'a' , sequence : '\x1bA' , meta : true , shift : true } ,
133136] ) ;
134137
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+
135157// xterm/gnome ESC O letter
136158addTest ( '\x1bOP\x1bOQ\x1bOR\x1bOS' , [
137159 { name : 'f1' , sequence : '\x1bOP' , code : 'OP' } ,
0 commit comments