@opentui/core 0.0.0-20251026-8b7fde6b → 0.0.0-20251027-327d7e76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/3d.js +1 -1
- package/Renderable.d.ts +4 -4
- package/edit-buffer.d.ts +6 -0
- package/{index-hgxcxzxa.js → index-bsb3x2r3.js} +117 -127
- package/{index-hgxcxzxa.js.map → index-bsb3x2r3.js.map} +8 -8
- package/index.js +19 -4
- package/index.js.map +4 -4
- package/lib/extmarks.d.ts +20 -12
- package/package.json +7 -7
- package/renderables/Textarea.d.ts +2 -2
- package/renderer.d.ts +1 -0
- package/testing/mock-keys.d.ts +20 -62
- package/testing.js +32 -78
- package/testing.js.map +3 -3
- package/zig.d.ts +7 -0
package/3d.js
CHANGED
package/Renderable.d.ts
CHANGED
|
@@ -77,7 +77,7 @@ export interface RenderableOptions<T extends BaseRenderable = BaseRenderable> ex
|
|
|
77
77
|
onMouseOver?: (this: T, event: MouseEvent) => void;
|
|
78
78
|
onMouseOut?: (this: T, event: MouseEvent) => void;
|
|
79
79
|
onMouseScroll?: (this: T, event: MouseEvent) => void;
|
|
80
|
-
onPaste?: (this: T,
|
|
80
|
+
onPaste?: (this: T, event: PasteEvent) => void;
|
|
81
81
|
onKeyDown?: (key: KeyEvent) => void;
|
|
82
82
|
onSizeChange?: (this: T) => void;
|
|
83
83
|
}
|
|
@@ -172,7 +172,7 @@ export declare abstract class Renderable extends BaseRenderable {
|
|
|
172
172
|
set live(value: boolean);
|
|
173
173
|
protected propagateLiveCount(delta: number): void;
|
|
174
174
|
handleKeyPress?(key: KeyEvent | string): boolean;
|
|
175
|
-
handlePaste?(
|
|
175
|
+
handlePaste?(event: PasteEvent): void;
|
|
176
176
|
findDescendantById(id: string): Renderable | undefined;
|
|
177
177
|
requestRender(): void;
|
|
178
178
|
get translateX(): number;
|
|
@@ -276,8 +276,8 @@ export declare abstract class Renderable extends BaseRenderable {
|
|
|
276
276
|
set onMouseOver(handler: ((event: MouseEvent) => void) | undefined);
|
|
277
277
|
set onMouseOut(handler: ((event: MouseEvent) => void) | undefined);
|
|
278
278
|
set onMouseScroll(handler: ((event: MouseEvent) => void) | undefined);
|
|
279
|
-
set onPaste(handler: ((
|
|
280
|
-
get onPaste(): ((
|
|
279
|
+
set onPaste(handler: ((event: PasteEvent) => void) | undefined);
|
|
280
|
+
get onPaste(): ((event: PasteEvent) => void) | undefined;
|
|
281
281
|
set onKeyDown(handler: ((key: KeyEvent) => void) | undefined);
|
|
282
282
|
get onKeyDown(): ((key: KeyEvent) => void) | undefined;
|
|
283
283
|
set onSizeChange(handler: (() => void) | undefined);
|
package/edit-buffer.d.ts
CHANGED
|
@@ -52,6 +52,12 @@ export declare class EditBuffer extends EventEmitter {
|
|
|
52
52
|
getNextWordBoundary(): LogicalCursor;
|
|
53
53
|
getPrevWordBoundary(): LogicalCursor;
|
|
54
54
|
getEOL(): LogicalCursor;
|
|
55
|
+
offsetToPosition(offset: number): {
|
|
56
|
+
row: number;
|
|
57
|
+
col: number;
|
|
58
|
+
} | null;
|
|
59
|
+
positionToOffset(row: number, col: number): number;
|
|
60
|
+
getLineStartOffset(row: number): number;
|
|
55
61
|
debugLogRope(): void;
|
|
56
62
|
undo(): string | null;
|
|
57
63
|
redo(): string | null;
|
|
@@ -6217,9 +6217,6 @@ function getTreeSitterClient() {
|
|
|
6217
6217
|
});
|
|
6218
6218
|
}
|
|
6219
6219
|
|
|
6220
|
-
// src/lib/extmarks.ts
|
|
6221
|
-
import { EventEmitter as EventEmitter4 } from "events";
|
|
6222
|
-
|
|
6223
6220
|
// src/lib/extmarks-history.ts
|
|
6224
6221
|
class ExtmarksHistory {
|
|
6225
6222
|
undoStack = [];
|
|
@@ -6261,13 +6258,18 @@ class ExtmarksHistory {
|
|
|
6261
6258
|
}
|
|
6262
6259
|
|
|
6263
6260
|
// src/lib/extmarks.ts
|
|
6264
|
-
class ExtmarksController
|
|
6261
|
+
class ExtmarksController {
|
|
6265
6262
|
editBuffer;
|
|
6266
6263
|
editorView;
|
|
6267
6264
|
extmarks = new Map;
|
|
6265
|
+
extmarksByTypeId = new Map;
|
|
6266
|
+
metadata = new Map;
|
|
6268
6267
|
nextId = 1;
|
|
6269
6268
|
destroyed = false;
|
|
6270
6269
|
history = new ExtmarksHistory;
|
|
6270
|
+
typeNameToId = new Map;
|
|
6271
|
+
typeIdToName = new Map;
|
|
6272
|
+
nextTypeId = 1;
|
|
6271
6273
|
originalMoveCursorLeft;
|
|
6272
6274
|
originalMoveCursorRight;
|
|
6273
6275
|
originalSetCursorByOffset;
|
|
@@ -6286,7 +6288,6 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6286
6288
|
originalUndo;
|
|
6287
6289
|
originalRedo;
|
|
6288
6290
|
constructor(editBuffer, editorView) {
|
|
6289
|
-
super();
|
|
6290
6291
|
this.editBuffer = editBuffer;
|
|
6291
6292
|
this.editorView = editorView;
|
|
6292
6293
|
this.originalMoveCursorLeft = editBuffer.moveCursorLeft.bind(editBuffer);
|
|
@@ -6395,7 +6396,6 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6395
6396
|
this.originalMoveDownVisual();
|
|
6396
6397
|
return;
|
|
6397
6398
|
}
|
|
6398
|
-
const currentOffset = this.editorView.getVisualCursor().offset;
|
|
6399
6399
|
this.originalMoveDownVisual();
|
|
6400
6400
|
const newOffset = this.editorView.getVisualCursor().offset;
|
|
6401
6401
|
const virtualExtmark = this.findVirtualExtmarkContaining(newOffset);
|
|
@@ -6462,13 +6462,9 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6462
6462
|
const endCursor = this.offsetToPosition(virtualExtmark.end);
|
|
6463
6463
|
const deleteOffset = virtualExtmark.start;
|
|
6464
6464
|
const deleteLength = virtualExtmark.end - virtualExtmark.start;
|
|
6465
|
-
this.
|
|
6465
|
+
this.deleteExtmarkById(virtualExtmark.id);
|
|
6466
6466
|
this.originalDeleteRange(startCursor.row, startCursor.col, endCursor.row, endCursor.col);
|
|
6467
6467
|
this.adjustExtmarksAfterDeletion(deleteOffset, deleteLength);
|
|
6468
|
-
this.emit("extmark-deleted", {
|
|
6469
|
-
extmark: virtualExtmark,
|
|
6470
|
-
trigger: "backspace"
|
|
6471
|
-
});
|
|
6472
6468
|
this.updateHighlights();
|
|
6473
6469
|
return;
|
|
6474
6470
|
}
|
|
@@ -6499,13 +6495,9 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6499
6495
|
const endCursor = this.offsetToPosition(virtualExtmark.end);
|
|
6500
6496
|
const deleteOffset = virtualExtmark.start;
|
|
6501
6497
|
const deleteLength = virtualExtmark.end - virtualExtmark.start;
|
|
6502
|
-
this.
|
|
6498
|
+
this.deleteExtmarkById(virtualExtmark.id);
|
|
6503
6499
|
this.originalDeleteRange(startCursor.row, startCursor.col, endCursor.row, endCursor.col);
|
|
6504
6500
|
this.adjustExtmarksAfterDeletion(deleteOffset, deleteLength);
|
|
6505
|
-
this.emit("extmark-deleted", {
|
|
6506
|
-
extmark: virtualExtmark,
|
|
6507
|
-
trigger: "delete"
|
|
6508
|
-
});
|
|
6509
6501
|
this.updateHighlights();
|
|
6510
6502
|
return;
|
|
6511
6503
|
}
|
|
@@ -6632,6 +6624,14 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6632
6624
|
this.updateHighlights();
|
|
6633
6625
|
});
|
|
6634
6626
|
}
|
|
6627
|
+
deleteExtmarkById(id) {
|
|
6628
|
+
const extmark = this.extmarks.get(id);
|
|
6629
|
+
if (extmark) {
|
|
6630
|
+
this.extmarks.delete(id);
|
|
6631
|
+
this.extmarksByTypeId.get(extmark.typeId)?.delete(id);
|
|
6632
|
+
this.metadata.delete(id);
|
|
6633
|
+
}
|
|
6634
|
+
}
|
|
6635
6635
|
findVirtualExtmarkContaining(offset) {
|
|
6636
6636
|
for (const extmark of this.extmarks.values()) {
|
|
6637
6637
|
if (extmark.virtual && offset >= extmark.start && offset < extmark.end) {
|
|
@@ -6645,10 +6645,8 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6645
6645
|
if (extmark.start >= insertOffset) {
|
|
6646
6646
|
extmark.start += length;
|
|
6647
6647
|
extmark.end += length;
|
|
6648
|
-
this.emit("extmark-updated", extmark);
|
|
6649
6648
|
} else if (extmark.end > insertOffset) {
|
|
6650
6649
|
extmark.end += length;
|
|
6651
|
-
this.emit("extmark-updated", extmark);
|
|
6652
6650
|
}
|
|
6653
6651
|
}
|
|
6654
6652
|
this.updateHighlights();
|
|
@@ -6662,82 +6660,32 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6662
6660
|
if (extmark.start >= deleteOffset + length) {
|
|
6663
6661
|
extmark.start -= length;
|
|
6664
6662
|
extmark.end -= length;
|
|
6665
|
-
this.emit("extmark-updated", extmark);
|
|
6666
6663
|
} else if (extmark.start >= deleteOffset && extmark.end <= deleteOffset + length) {
|
|
6667
6664
|
toDelete.push(extmark.id);
|
|
6668
6665
|
} else if (extmark.start < deleteOffset && extmark.end > deleteOffset + length) {
|
|
6669
6666
|
extmark.end -= length;
|
|
6670
|
-
this.emit("extmark-updated", extmark);
|
|
6671
6667
|
} else if (extmark.start < deleteOffset && extmark.end > deleteOffset) {
|
|
6672
6668
|
extmark.end -= Math.min(extmark.end, deleteOffset + length) - deleteOffset;
|
|
6673
|
-
this.emit("extmark-updated", extmark);
|
|
6674
6669
|
} else if (extmark.start < deleteOffset + length && extmark.end > deleteOffset + length) {
|
|
6675
6670
|
const overlap = deleteOffset + length - extmark.start;
|
|
6676
6671
|
extmark.start = deleteOffset;
|
|
6677
6672
|
extmark.end -= length;
|
|
6678
|
-
this.emit("extmark-updated", extmark);
|
|
6679
6673
|
}
|
|
6680
6674
|
}
|
|
6681
6675
|
for (const id of toDelete) {
|
|
6682
|
-
|
|
6683
|
-
if (extmark) {
|
|
6684
|
-
this.extmarks.delete(id);
|
|
6685
|
-
this.emit("extmark-deleted", {
|
|
6686
|
-
extmark,
|
|
6687
|
-
trigger: "manual"
|
|
6688
|
-
});
|
|
6689
|
-
}
|
|
6676
|
+
this.deleteExtmarkById(id);
|
|
6690
6677
|
}
|
|
6691
6678
|
this.updateHighlights();
|
|
6692
6679
|
}
|
|
6693
6680
|
offsetToPosition(offset) {
|
|
6694
|
-
const
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
let col = 0;
|
|
6698
|
-
for (let i = 0;i < text.length && currentOffset < offset; i++) {
|
|
6699
|
-
if (text[i] === `
|
|
6700
|
-
`) {
|
|
6701
|
-
row++;
|
|
6702
|
-
col = 0;
|
|
6703
|
-
} else {
|
|
6704
|
-
col++;
|
|
6705
|
-
}
|
|
6706
|
-
currentOffset++;
|
|
6681
|
+
const result = this.editBuffer.offsetToPosition(offset);
|
|
6682
|
+
if (!result) {
|
|
6683
|
+
return { row: 0, col: 0 };
|
|
6707
6684
|
}
|
|
6708
|
-
return
|
|
6685
|
+
return result;
|
|
6709
6686
|
}
|
|
6710
6687
|
positionToOffset(row, col) {
|
|
6711
|
-
|
|
6712
|
-
let currentRow = 0;
|
|
6713
|
-
let offset = 0;
|
|
6714
|
-
for (let i = 0;i < text.length; i++) {
|
|
6715
|
-
if (currentRow === row && offset - this.getLineStartOffset(row) === col) {
|
|
6716
|
-
return offset;
|
|
6717
|
-
}
|
|
6718
|
-
if (text[i] === `
|
|
6719
|
-
`) {
|
|
6720
|
-
currentRow++;
|
|
6721
|
-
}
|
|
6722
|
-
offset++;
|
|
6723
|
-
}
|
|
6724
|
-
return offset;
|
|
6725
|
-
}
|
|
6726
|
-
getLineStartOffset(targetRow) {
|
|
6727
|
-
const text = this.editBuffer.getText();
|
|
6728
|
-
let row = 0;
|
|
6729
|
-
let offset = 0;
|
|
6730
|
-
for (let i = 0;i < text.length; i++) {
|
|
6731
|
-
if (row === targetRow) {
|
|
6732
|
-
return offset;
|
|
6733
|
-
}
|
|
6734
|
-
if (text[i] === `
|
|
6735
|
-
`) {
|
|
6736
|
-
row++;
|
|
6737
|
-
offset = i + 1;
|
|
6738
|
-
}
|
|
6739
|
-
}
|
|
6740
|
-
return offset;
|
|
6688
|
+
return this.editBuffer.positionToOffset(row, col);
|
|
6741
6689
|
}
|
|
6742
6690
|
updateHighlights() {
|
|
6743
6691
|
this.editBuffer.clearAllHighlights();
|
|
@@ -6771,6 +6719,7 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6771
6719
|
throw new Error("ExtmarksController is destroyed");
|
|
6772
6720
|
}
|
|
6773
6721
|
const id = this.nextId++;
|
|
6722
|
+
const typeId = options.typeId ?? 0;
|
|
6774
6723
|
const extmark = {
|
|
6775
6724
|
id,
|
|
6776
6725
|
start: options.start,
|
|
@@ -6778,34 +6727,19 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6778
6727
|
virtual: options.virtual ?? false,
|
|
6779
6728
|
styleId: options.styleId,
|
|
6780
6729
|
priority: options.priority,
|
|
6781
|
-
data: options.data
|
|
6730
|
+
data: options.data,
|
|
6731
|
+
typeId
|
|
6782
6732
|
};
|
|
6783
6733
|
this.extmarks.set(id, extmark);
|
|
6784
|
-
this.
|
|
6785
|
-
|
|
6786
|
-
|
|
6787
|
-
|
|
6788
|
-
if (
|
|
6789
|
-
|
|
6734
|
+
if (!this.extmarksByTypeId.has(typeId)) {
|
|
6735
|
+
this.extmarksByTypeId.set(typeId, new Set);
|
|
6736
|
+
}
|
|
6737
|
+
this.extmarksByTypeId.get(typeId).add(id);
|
|
6738
|
+
if (options.metadata !== undefined) {
|
|
6739
|
+
this.metadata.set(id, options.metadata);
|
|
6790
6740
|
}
|
|
6791
|
-
const extmark = this.extmarks.get(id);
|
|
6792
|
-
if (!extmark)
|
|
6793
|
-
return false;
|
|
6794
|
-
if (options.start !== undefined)
|
|
6795
|
-
extmark.start = options.start;
|
|
6796
|
-
if (options.end !== undefined)
|
|
6797
|
-
extmark.end = options.end;
|
|
6798
|
-
if (options.virtual !== undefined)
|
|
6799
|
-
extmark.virtual = options.virtual;
|
|
6800
|
-
if (options.styleId !== undefined)
|
|
6801
|
-
extmark.styleId = options.styleId;
|
|
6802
|
-
if (options.priority !== undefined)
|
|
6803
|
-
extmark.priority = options.priority;
|
|
6804
|
-
if (options.data !== undefined)
|
|
6805
|
-
extmark.data = options.data;
|
|
6806
|
-
this.emit("extmark-updated", extmark);
|
|
6807
6741
|
this.updateHighlights();
|
|
6808
|
-
return
|
|
6742
|
+
return id;
|
|
6809
6743
|
}
|
|
6810
6744
|
delete(id) {
|
|
6811
6745
|
if (this.destroyed) {
|
|
@@ -6814,11 +6748,7 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6814
6748
|
const extmark = this.extmarks.get(id);
|
|
6815
6749
|
if (!extmark)
|
|
6816
6750
|
return false;
|
|
6817
|
-
this.
|
|
6818
|
-
this.emit("extmark-deleted", {
|
|
6819
|
-
extmark,
|
|
6820
|
-
trigger: "manual"
|
|
6821
|
-
});
|
|
6751
|
+
this.deleteExtmarkById(id);
|
|
6822
6752
|
this.updateHighlights();
|
|
6823
6753
|
return true;
|
|
6824
6754
|
}
|
|
@@ -6842,16 +6772,20 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6842
6772
|
return [];
|
|
6843
6773
|
return Array.from(this.extmarks.values()).filter((e) => offset >= e.start && offset < e.end);
|
|
6844
6774
|
}
|
|
6775
|
+
getAllForTypeId(typeId) {
|
|
6776
|
+
if (this.destroyed)
|
|
6777
|
+
return [];
|
|
6778
|
+
const ids = this.extmarksByTypeId.get(typeId);
|
|
6779
|
+
if (!ids)
|
|
6780
|
+
return [];
|
|
6781
|
+
return Array.from(ids).map((id) => this.extmarks.get(id)).filter((e) => e !== undefined);
|
|
6782
|
+
}
|
|
6845
6783
|
clear() {
|
|
6846
6784
|
if (this.destroyed)
|
|
6847
6785
|
return;
|
|
6848
|
-
for (const extmark of this.extmarks.values()) {
|
|
6849
|
-
this.emit("extmark-deleted", {
|
|
6850
|
-
extmark,
|
|
6851
|
-
trigger: "manual"
|
|
6852
|
-
});
|
|
6853
|
-
}
|
|
6854
6786
|
this.extmarks.clear();
|
|
6787
|
+
this.extmarksByTypeId.clear();
|
|
6788
|
+
this.metadata.clear();
|
|
6855
6789
|
this.updateHighlights();
|
|
6856
6790
|
}
|
|
6857
6791
|
saveSnapshot() {
|
|
@@ -6896,6 +6830,34 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6896
6830
|
return this.originalRedo();
|
|
6897
6831
|
};
|
|
6898
6832
|
}
|
|
6833
|
+
registerType(typeName) {
|
|
6834
|
+
if (this.destroyed) {
|
|
6835
|
+
throw new Error("ExtmarksController is destroyed");
|
|
6836
|
+
}
|
|
6837
|
+
const existing = this.typeNameToId.get(typeName);
|
|
6838
|
+
if (existing !== undefined) {
|
|
6839
|
+
return existing;
|
|
6840
|
+
}
|
|
6841
|
+
const typeId = this.nextTypeId++;
|
|
6842
|
+
this.typeNameToId.set(typeName, typeId);
|
|
6843
|
+
this.typeIdToName.set(typeId, typeName);
|
|
6844
|
+
return typeId;
|
|
6845
|
+
}
|
|
6846
|
+
getTypeId(typeName) {
|
|
6847
|
+
if (this.destroyed)
|
|
6848
|
+
return null;
|
|
6849
|
+
return this.typeNameToId.get(typeName) ?? null;
|
|
6850
|
+
}
|
|
6851
|
+
getTypeName(typeId) {
|
|
6852
|
+
if (this.destroyed)
|
|
6853
|
+
return null;
|
|
6854
|
+
return this.typeIdToName.get(typeId) ?? null;
|
|
6855
|
+
}
|
|
6856
|
+
getMetadataFor(extmarkId) {
|
|
6857
|
+
if (this.destroyed)
|
|
6858
|
+
return;
|
|
6859
|
+
return this.metadata.get(extmarkId);
|
|
6860
|
+
}
|
|
6899
6861
|
destroy() {
|
|
6900
6862
|
if (this.destroyed)
|
|
6901
6863
|
return;
|
|
@@ -6917,9 +6879,12 @@ class ExtmarksController extends EventEmitter4 {
|
|
|
6917
6879
|
this.editBuffer.undo = this.originalUndo;
|
|
6918
6880
|
this.editBuffer.redo = this.originalRedo;
|
|
6919
6881
|
this.extmarks.clear();
|
|
6882
|
+
this.extmarksByTypeId.clear();
|
|
6883
|
+
this.metadata.clear();
|
|
6884
|
+
this.typeNameToId.clear();
|
|
6885
|
+
this.typeIdToName.clear();
|
|
6920
6886
|
this.history.clear();
|
|
6921
6887
|
this.destroyed = true;
|
|
6922
|
-
this.removeAllListeners();
|
|
6923
6888
|
}
|
|
6924
6889
|
}
|
|
6925
6890
|
function createExtmarksController(editBuffer, editorView) {
|
|
@@ -6928,7 +6893,7 @@ function createExtmarksController(editBuffer, editorView) {
|
|
|
6928
6893
|
// src/zig.ts
|
|
6929
6894
|
import { dlopen, toArrayBuffer as toArrayBuffer4, JSCallback, ptr as ptr3 } from "bun:ffi";
|
|
6930
6895
|
import { existsSync as existsSync2 } from "fs";
|
|
6931
|
-
import { EventEmitter as
|
|
6896
|
+
import { EventEmitter as EventEmitter4 } from "events";
|
|
6932
6897
|
|
|
6933
6898
|
// src/buffer.ts
|
|
6934
6899
|
import { toArrayBuffer } from "bun:ffi";
|
|
@@ -8344,6 +8309,18 @@ function getOpenTUILib(libPath) {
|
|
|
8344
8309
|
args: ["ptr", "ptr"],
|
|
8345
8310
|
returns: "void"
|
|
8346
8311
|
},
|
|
8312
|
+
editBufferOffsetToPosition: {
|
|
8313
|
+
args: ["ptr", "u32", "ptr"],
|
|
8314
|
+
returns: "bool"
|
|
8315
|
+
},
|
|
8316
|
+
editBufferPositionToOffset: {
|
|
8317
|
+
args: ["ptr", "u32", "u32"],
|
|
8318
|
+
returns: "u32"
|
|
8319
|
+
},
|
|
8320
|
+
editBufferGetLineStartOffset: {
|
|
8321
|
+
args: ["ptr", "u32"],
|
|
8322
|
+
returns: "u32"
|
|
8323
|
+
},
|
|
8347
8324
|
editorViewSetSelection: {
|
|
8348
8325
|
args: ["ptr", "u32", "u32", "ptr", "ptr"],
|
|
8349
8326
|
returns: "void"
|
|
@@ -8565,7 +8542,7 @@ class FFIRenderLib {
|
|
|
8565
8542
|
decoder = new TextDecoder;
|
|
8566
8543
|
logCallbackWrapper;
|
|
8567
8544
|
eventCallbackWrapper;
|
|
8568
|
-
_nativeEvents = new
|
|
8545
|
+
_nativeEvents = new EventEmitter4;
|
|
8569
8546
|
_anyEventHandlers = [];
|
|
8570
8547
|
constructor(libPath) {
|
|
8571
8548
|
this.opentui = getOpenTUILib(libPath);
|
|
@@ -9301,6 +9278,19 @@ class FFIRenderLib {
|
|
|
9301
9278
|
this.opentui.symbols.editBufferGetEOL(buffer, ptr3(cursorBuffer));
|
|
9302
9279
|
return LogicalCursorStruct.unpack(cursorBuffer);
|
|
9303
9280
|
}
|
|
9281
|
+
editBufferOffsetToPosition(buffer, offset) {
|
|
9282
|
+
const cursorBuffer = new ArrayBuffer(LogicalCursorStruct.size);
|
|
9283
|
+
const success = this.opentui.symbols.editBufferOffsetToPosition(buffer, offset, ptr3(cursorBuffer));
|
|
9284
|
+
if (!success)
|
|
9285
|
+
return null;
|
|
9286
|
+
return LogicalCursorStruct.unpack(cursorBuffer);
|
|
9287
|
+
}
|
|
9288
|
+
editBufferPositionToOffset(buffer, row, col) {
|
|
9289
|
+
return this.opentui.symbols.editBufferPositionToOffset(buffer, row, col);
|
|
9290
|
+
}
|
|
9291
|
+
editBufferGetLineStartOffset(buffer, row) {
|
|
9292
|
+
return this.opentui.symbols.editBufferGetLineStartOffset(buffer, row);
|
|
9293
|
+
}
|
|
9304
9294
|
editorViewSetSelection(view, start, end, bgColor, fgColor) {
|
|
9305
9295
|
const bg2 = bgColor ? bgColor.buffer : null;
|
|
9306
9296
|
const fg2 = fgColor ? fgColor.buffer : null;
|
|
@@ -9630,7 +9620,7 @@ class TextBuffer {
|
|
|
9630
9620
|
}
|
|
9631
9621
|
|
|
9632
9622
|
// src/Renderable.ts
|
|
9633
|
-
import { EventEmitter as
|
|
9623
|
+
import { EventEmitter as EventEmitter5 } from "events";
|
|
9634
9624
|
|
|
9635
9625
|
// src/lib/renderable.validations.ts
|
|
9636
9626
|
function validateOptions(id, options) {
|
|
@@ -9723,7 +9713,7 @@ function isRenderable(obj) {
|
|
|
9723
9713
|
return !!obj?.[BrandedRenderable];
|
|
9724
9714
|
}
|
|
9725
9715
|
|
|
9726
|
-
class BaseRenderable extends
|
|
9716
|
+
class BaseRenderable extends EventEmitter5 {
|
|
9727
9717
|
[BrandedRenderable] = true;
|
|
9728
9718
|
static renderableNumber = 1;
|
|
9729
9719
|
_id;
|
|
@@ -9901,9 +9891,9 @@ class Renderable extends BaseRenderable {
|
|
|
9901
9891
|
}
|
|
9902
9892
|
};
|
|
9903
9893
|
this.pasteHandler = (event) => {
|
|
9904
|
-
this._pasteListener?.call(this, event
|
|
9894
|
+
this._pasteListener?.call(this, event);
|
|
9905
9895
|
if (!event.defaultPrevented && this.handlePaste) {
|
|
9906
|
-
this.handlePaste(event
|
|
9896
|
+
this.handlePaste(event);
|
|
9907
9897
|
}
|
|
9908
9898
|
};
|
|
9909
9899
|
this.ctx._internalKeyInput.onInternal("keypress", this.keypressHandler);
|
|
@@ -11044,7 +11034,7 @@ function delegate(mapping, vnode) {
|
|
|
11044
11034
|
}
|
|
11045
11035
|
|
|
11046
11036
|
// src/console.ts
|
|
11047
|
-
import { EventEmitter as
|
|
11037
|
+
import { EventEmitter as EventEmitter7 } from "events";
|
|
11048
11038
|
import { Console } from "console";
|
|
11049
11039
|
import fs from "fs";
|
|
11050
11040
|
import path4 from "path";
|
|
@@ -11052,9 +11042,9 @@ import util2 from "util";
|
|
|
11052
11042
|
|
|
11053
11043
|
// src/lib/output.capture.ts
|
|
11054
11044
|
import { Writable } from "stream";
|
|
11055
|
-
import { EventEmitter as
|
|
11045
|
+
import { EventEmitter as EventEmitter6 } from "events";
|
|
11056
11046
|
|
|
11057
|
-
class Capture extends
|
|
11047
|
+
class Capture extends EventEmitter6 {
|
|
11058
11048
|
output = [];
|
|
11059
11049
|
constructor() {
|
|
11060
11050
|
super();
|
|
@@ -11130,7 +11120,7 @@ registerEnvVar({
|
|
|
11130
11120
|
default: false
|
|
11131
11121
|
});
|
|
11132
11122
|
|
|
11133
|
-
class TerminalConsoleCache extends
|
|
11123
|
+
class TerminalConsoleCache extends EventEmitter7 {
|
|
11134
11124
|
_cachedLogs = [];
|
|
11135
11125
|
MAX_CACHE_SIZE = 1000;
|
|
11136
11126
|
_collectCallerInfo = false;
|
|
@@ -11256,7 +11246,7 @@ var DEFAULT_CONSOLE_OPTIONS = {
|
|
|
11256
11246
|
};
|
|
11257
11247
|
var INDENT_WIDTH = 2;
|
|
11258
11248
|
|
|
11259
|
-
class TerminalConsole extends
|
|
11249
|
+
class TerminalConsole extends EventEmitter7 {
|
|
11260
11250
|
isVisible = false;
|
|
11261
11251
|
isFocused = false;
|
|
11262
11252
|
renderer;
|
|
@@ -11716,7 +11706,7 @@ class TerminalConsole extends EventEmitter8 {
|
|
|
11716
11706
|
}
|
|
11717
11707
|
|
|
11718
11708
|
// src/renderer.ts
|
|
11719
|
-
import { EventEmitter as
|
|
11709
|
+
import { EventEmitter as EventEmitter8 } from "events";
|
|
11720
11710
|
|
|
11721
11711
|
// src/lib/objects-in-viewport.ts
|
|
11722
11712
|
function getObjectsInViewport(viewport, objects, direction = "column", padding = 10, minTriggerSize = 16) {
|
|
@@ -11942,7 +11932,7 @@ var RendererControlState;
|
|
|
11942
11932
|
RendererControlState2["EXPLICIT_STOPPED"] = "explicit_stopped";
|
|
11943
11933
|
})(RendererControlState ||= {});
|
|
11944
11934
|
|
|
11945
|
-
class CliRenderer extends
|
|
11935
|
+
class CliRenderer extends EventEmitter8 {
|
|
11946
11936
|
static animationFrameId = 0;
|
|
11947
11937
|
lib;
|
|
11948
11938
|
rendererPtr;
|
|
@@ -11970,7 +11960,7 @@ class CliRenderer extends EventEmitter9 {
|
|
|
11970
11960
|
frameTimes = [];
|
|
11971
11961
|
maxStatSamples = 300;
|
|
11972
11962
|
postProcessFns = [];
|
|
11973
|
-
backgroundColor = RGBA.
|
|
11963
|
+
backgroundColor = RGBA.fromInts(0, 0, 0, 0);
|
|
11974
11964
|
waitingForPixelResolution = false;
|
|
11975
11965
|
rendering = false;
|
|
11976
11966
|
renderingNative = false;
|
|
@@ -12582,7 +12572,7 @@ Captured output:
|
|
|
12582
12572
|
this.renderOffset = height - this._splitHeight;
|
|
12583
12573
|
this.width = width;
|
|
12584
12574
|
this.height = this._splitHeight;
|
|
12585
|
-
this.currentRenderBuffer.clear(
|
|
12575
|
+
this.currentRenderBuffer.clear(this.backgroundColor);
|
|
12586
12576
|
this.lib.setRenderOffset(this.rendererPtr, this.renderOffset);
|
|
12587
12577
|
} else {
|
|
12588
12578
|
this.width = width;
|
|
@@ -13027,5 +13017,5 @@ Captured output:
|
|
|
13027
13017
|
|
|
13028
13018
|
export { __toESM, __commonJS, __export, __require, Edge, Gutter, exports_src, BorderChars, getBorderFromSides, getBorderSides, borderCharsToArray, BorderCharArrays, nonAlphanumericKeys, parseKeypress, ANSI, KeyEvent, PasteEvent, KeyHandler, InternalKeyHandler, RGBA, hexToRgb, rgbToHex, hsvToRgb, parseColor, fonts, measureText, getCharacterPositions, coordinateToCharacterIndex, renderFontToFrameBuffer, TextAttributes, DebugOverlayCorner, createTextAttributes, visualizeRenderableTree, isStyledText, StyledText, stringToStyledText, black, red, green, yellow, blue, magenta, cyan, white, brightBlack, brightRed, brightGreen, brightYellow, brightBlue, brightMagenta, brightCyan, brightWhite, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bold, italic, underline, strikethrough, dim, reverse, blink, fg, bg, t, hastToStyledText, LinearScrollAccel, MacOSScrollAccel, parseAlign, parseBoxSizing, parseDimension, parseDirection, parseDisplay, parseEdge, parseFlexDirection, parseGutter, parseJustify, parseLogLevel, parseMeasureMode, parseOverflow, parsePositionType, parseUnit, parseWrap, MouseParser, Selection, convertGlobalToLocalSelection, ASCIIFontSelectionHelper, envRegistry, registerEnvVar, clearEnvCache, generateEnvMarkdown, generateEnvColored, env, treeSitterToTextChunks, treeSitterToStyledText, addDefaultParsers, TreeSitterClient, DataPathsManager, getDataPaths, extToFiletype, pathToFiletype, main, getTreeSitterClient, ExtmarksController, createExtmarksController, TextBuffer, LogLevel2 as LogLevel, setRenderLibPath, resolveRenderLib, OptimizedBuffer, h, isVNode, maybeMakeRenderable, wrapWithDelegates, instantiate, delegate, isValidPercentage, LayoutEvents, RenderableEvents, isRenderable, BaseRenderable, Renderable, RootRenderable, capture, ConsolePosition, TerminalConsole, getObjectsInViewport, MouseEvent, MouseButton, createCliRenderer, CliRenderEvents, RendererControlState, CliRenderer };
|
|
13029
13019
|
|
|
13030
|
-
//# debugId=
|
|
13031
|
-
//# sourceMappingURL=index-
|
|
13020
|
+
//# debugId=C1D0F4A11DB898E164756E2164756E21
|
|
13021
|
+
//# sourceMappingURL=index-bsb3x2r3.js.map
|