Remove altEscape DECSET mode and add support for alt+esc key

This commit is contained in:
kumaran-14
2020-02-21 13:13:46 +05:30
parent 5896a05ca6
commit c9277c3c72
6 changed files with 13 additions and 14 deletions
+8 -3
View File
@@ -16,7 +16,6 @@ function testEvaluateKeyboardEvent(partialEvent: {
key?: string;
type?: string;
}, partialOptions: {
altEnterMode?: boolean;
applicationCursorMode?: boolean;
isMac?: boolean;
macOptionIsMeta?: boolean;
@@ -31,12 +30,11 @@ function testEvaluateKeyboardEvent(partialEvent: {
type: partialEvent.type || ''
};
const options = {
altEnterMode: partialOptions.altEnterMode || true,
applicationCursorMode: partialOptions.applicationCursorMode || false,
isMac: partialOptions.isMac || false,
macOptionIsMeta: partialOptions.macOptionIsMeta || false
};
return evaluateKeyboardEvent(event, options.altEnterMode, options.applicationCursorMode, options.isMac, options.macOptionIsMeta);
return evaluateKeyboardEvent(event, options.applicationCursorMode, options.isMac, options.macOptionIsMeta);
}
describe('Keyboard', () => {
@@ -91,6 +89,9 @@ describe('Keyboard', () => {
it('should return \\x1b\\r for alt+enter', () => {
assert.equal(testEvaluateKeyboardEvent({ altKey: true, keyCode: 13 }).key, '\x1b\r');
});
it('should return \\x1b\\x1b for alt+esc', () => {
assert.equal(testEvaluateKeyboardEvent({ altKey: true, keyCode: 27 }).key, '\x1b\x1b');
});
it('should return \\x1b[5D for ctrl+left', () => {
assert.equal(testEvaluateKeyboardEvent({ ctrlKey: true, keyCode: 37 }).key, '\x1b[1;5D'); // CSI 5 D
});
@@ -146,6 +147,10 @@ describe('Keyboard', () => {
it('should return \\x1ba for alt+a', () => {
assert.equal(testEvaluateKeyboardEvent({ altKey: true, keyCode: 65 }, { isMac: true, macOptionIsMeta: true }).key, '\x1ba');
});
it('should return \\x1b\\x1b for alt+enter', () => {
assert.equal(testEvaluateKeyboardEvent({ altKey: true, keyCode: 13 }, { isMac: true, macOptionIsMeta: true }).key, '\x1b\r');
});
});
it('should return \\x1b[5A for alt+up', () => {
+4 -2
View File
@@ -37,7 +37,6 @@ const KEYCODE_KEY_MAPPINGS: { [key: number]: [string, string]} = {
export function evaluateKeyboardEvent(
ev: IKeyboardEvent,
altEscMode: boolean,
applicationCursorMode: boolean,
isMac: boolean,
macOptionIsMeta: boolean
@@ -104,7 +103,7 @@ export function evaluateKeyboardEvent(
break;
case 13:
// return/enter
if (altEscMode && modifiers === 2) {
if (ev.altKey) {
result.key = C0.ESC + C0.CR;
}
else {
@@ -115,6 +114,9 @@ export function evaluateKeyboardEvent(
case 27:
// escape
result.key = C0.ESC;
if (ev.altKey) {
result.key = C0.ESC + C0.ESC;
}
result.cancel = true;
break;
case 37: