Merge branch 'master' into parser_colon_notation

This commit is contained in:
Jörg Breitbart
2019-07-02 16:44:43 +02:00
16 changed files with 690 additions and 645 deletions
+1 -1
View File
@@ -26,7 +26,7 @@ export const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);
export const isMac = contains(['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'], platform);
export const isIpad = platform === 'iPad';
export const isIphone = platform === 'iPhone';
export const isMSWindows = contains(['Windows', 'Win16', 'Win32', 'WinCE'], platform);
export const isWindows = contains(['Windows', 'Win16', 'Win32', 'WinCE'], platform);
export const isLinux = platform.indexOf('Linux') >= 0;
/**
+3
View File
@@ -9,6 +9,7 @@ import { clone } from 'common/Clone';
import { DEFAULT_OPTIONS } from 'common/services/OptionsService';
import { IBufferSet, IBuffer } from 'common/buffer/Types';
import { BufferSet } from 'common/buffer/BufferSet';
import { IDecPrivateModes } from 'common/Types';
export class MockBufferService implements IBufferService {
public get buffer(): IBuffer { return this.buffers.active; }
@@ -28,8 +29,10 @@ export class MockBufferService implements IBufferService {
}
export class MockCoreService implements ICoreService {
decPrivateModes: IDecPrivateModes = {} as any;
onData: IEvent<string> = new EventEmitter<string>().event;
onUserInput: IEvent<void> = new EventEmitter<void>().event;
reset(): void {}
triggerDataEvent(data: string, wasUserInput?: boolean): void {}
}
+4
View File
@@ -149,3 +149,7 @@ export interface IMarker extends IDisposable {
readonly isDisposed: boolean;
readonly line: number;
}
export interface IDecPrivateModes {
applicationCursorKeys: boolean;
}
+13
View File
@@ -5,8 +5,16 @@
import { ICoreService, IOptionsService, IBufferService } from 'common/services/Services';
import { EventEmitter, IEvent } from 'common/EventEmitter';
import { IDecPrivateModes } from 'common/Types';
import { clone } from 'common/Clone';
const DEFAULT_DEC_PRIVATE_MODES: IDecPrivateModes = Object.freeze({
applicationCursorKeys: false
});
export class CoreService implements ICoreService {
public decPrivateModes: IDecPrivateModes;
private _onData = new EventEmitter<string>();
public get onData(): IEvent<string> { return this._onData.event; }
private _onUserInput = new EventEmitter<void>();
@@ -18,6 +26,11 @@ export class CoreService implements ICoreService {
private readonly _bufferService: IBufferService,
private readonly _optionsService: IOptionsService
) {
this.decPrivateModes = clone(DEFAULT_DEC_PRIVATE_MODES);
}
public reset(): void {
this.decPrivateModes = clone(DEFAULT_DEC_PRIVATE_MODES);
}
public triggerDataEvent(data: string, wasUserInput: boolean = false): void {
+6 -1
View File
@@ -5,6 +5,7 @@
import { IEvent } from 'common/EventEmitter';
import { IBuffer, IBufferSet } from 'common/buffer/Types';
import { IDecPrivateModes } from 'common/Types';
export interface IBufferService {
readonly cols: number;
@@ -19,9 +20,13 @@ export interface IBufferService {
}
export interface ICoreService {
readonly decPrivateModes: IDecPrivateModes;
readonly onData: IEvent<string>;
readonly onUserInput: IEvent<void>;
reset(): void;
/**
* Triggers the onData event in the public API.
* @param data The data that is being emitted.
@@ -99,6 +104,7 @@ export interface ITerminalOptions {
tabStopWidth: number;
theme: ITheme;
windowsMode: boolean;
wordSeparator: string;
[key: string]: any;
cancelEvents: boolean;
@@ -107,7 +113,6 @@ export interface ITerminalOptions {
screenKeys: boolean;
termName: string;
useFlowControl: boolean;
wordSeparator?: string;
}
export interface ITheme {