xterm
[VSoRC/.git] / node_modules / xterm / src / common / services / BufferService.ts
diff --git a/node_modules/xterm/src/common/services/BufferService.ts b/node_modules/xterm/src/common/services/BufferService.ts
new file mode 100644 (file)
index 0000000..c7b6afc
--- /dev/null
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) 2019 The xterm.js authors. All rights reserved.
+ * @license MIT
+ */
+
+import { IBufferService, IOptionsService } from 'common/services/Services';
+import { BufferSet } from 'common/buffer/BufferSet';
+import { IBufferSet, IBuffer } from 'common/buffer/Types';
+
+export const MINIMUM_COLS = 2; // Less than 2 can mess with wide chars
+export const MINIMUM_ROWS = 1;
+
+export class BufferService implements IBufferService {
+  serviceBrand: any;
+
+  public cols: number;
+  public rows: number;
+  public buffers: IBufferSet;
+
+  public get buffer(): IBuffer { return this.buffers.active; }
+
+  constructor(
+    @IOptionsService private _optionsService: IOptionsService
+  ) {
+    this.cols = Math.max(_optionsService.options.cols, MINIMUM_COLS);
+    this.rows = Math.max(_optionsService.options.rows, MINIMUM_ROWS);
+    this.buffers = new BufferSet(_optionsService, this);
+  }
+
+  public resize(cols: number, rows: number): void {
+    this.cols = cols;
+    this.rows = rows;
+  }
+
+  public reset(): void {
+    this.buffers = new BufferSet(this._optionsService, this);
+  }
+}