hooks for custom control sequences

This fixes (at least partially) issue #1176
"Add a way to plugin a custom control sequence handler".
This commit is contained in:
Per Bothner
2018-12-04 19:00:44 -08:00
parent b5f1c3384a
commit 4d660deff3
5 changed files with 106 additions and 14 deletions
+14
View File
@@ -182,6 +182,16 @@ export interface IInputHandler {
ESC ~ */ setgLevel(level: number): void;
}
/*
* An InputHandler for VT-style terminals
*/
export interface IVtInputHandler extends IInputHandler {
addCsiHandler(flag: string, callback: (params: number[], collect: string) => boolean): void;
removeCsiHandler(flag: string, callback: (params: number[], collect: string) => boolean): void;
addOscHandler(ident: number, callback: (data: string) => boolean): void;
removeOscHandler(ident: number, callback: (data: string) => boolean): void;
}
export interface ILinkMatcher {
id: number;
regex: RegExp;
@@ -492,6 +502,10 @@ export interface IEscapeSequenceParser extends IDisposable {
setCsiHandler(flag: string, callback: (params: number[], collect: string) => void): void;
clearCsiHandler(flag: string): void;
setCsiHandlerFallback(callback: (collect: string, params: number[], flag: number) => void): void;
addCsiHandler(flag: string, callback: (params: number[], collect: string) => boolean): void;
removeCsiHandler(flag: string, callback: (params: number[], collect: string) => boolean): void;
addOscHandler(ident: number, callback: (data: string) => boolean): void;
removeOscHandler(ident: number, callback: (data: string) => boolean): void;
setEscHandler(collectAndFlag: string, callback: () => void): void;
clearEscHandler(collectAndFlag: string): void;