@xincli/opentui-core 0.4.6 → 0.4.7
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/LICENSE +21 -0
- package/NativeSpanFeed.d.ts +52 -0
- package/README.md +0 -0
- package/Renderable.d.ts +346 -0
- package/animation/Timeline.d.ts +126 -0
- package/ansi.d.ts +17 -0
- package/audio.d.ts +89 -0
- package/buffer.d.ts +113 -0
- package/console.d.ts +146 -0
- package/edit-buffer.d.ts +97 -0
- package/editor-view.d.ts +72 -0
- package/index-m1y9e40w.js +10045 -0
- package/index-m1y9e40w.js.map +32 -0
- package/index-sqk4ajdf.js +16121 -0
- package/index-sqk4ajdf.js.map +58 -0
- package/index.d.ts +24 -0
- package/index.js +11709 -0
- package/index.js.map +35 -0
- package/lib/KeyHandler.d.ts +61 -0
- package/lib/RGBA.d.ts +42 -0
- package/lib/ascii.font.d.ts +508 -0
- package/lib/border.d.ts +51 -0
- package/lib/bunfs.d.ts +7 -0
- package/lib/clipboard.d.ts +15 -0
- package/lib/clock.d.ts +15 -0
- package/lib/data-paths.d.ts +26 -0
- package/lib/debounce.d.ts +42 -0
- package/lib/detect-links.d.ts +6 -0
- package/lib/env.d.ts +42 -0
- package/lib/extmarks-history.d.ts +17 -0
- package/lib/extmarks.d.ts +90 -0
- package/lib/hast-styled-text.d.ts +17 -0
- package/lib/index.d.ts +22 -0
- package/lib/keybinding.internal.d.ts +33 -0
- package/lib/objects-in-viewport.d.ts +24 -0
- package/lib/output.capture.d.ts +24 -0
- package/lib/parse.keypress-kitty.d.ts +3 -0
- package/lib/parse.keypress.d.ts +27 -0
- package/lib/parse.mouse.d.ts +30 -0
- package/lib/paste.d.ts +7 -0
- package/lib/queue.d.ts +15 -0
- package/lib/render-geometry.d.ts +8 -0
- package/lib/renderable.validations.d.ts +12 -0
- package/lib/scroll-acceleration.d.ts +43 -0
- package/lib/selection.d.ts +64 -0
- package/lib/singleton.d.ts +8 -0
- package/lib/stdin-parser.d.ts +90 -0
- package/lib/styled-text.d.ts +63 -0
- package/lib/terminal-capability-detection.d.ts +32 -0
- package/lib/terminal-palette.d.ts +65 -0
- package/lib/tree-sitter/assets/update.d.ts +12 -0
- package/lib/tree-sitter/client.d.ts +65 -0
- package/lib/tree-sitter/default-parsers.d.ts +2 -0
- package/lib/tree-sitter/download-utils.d.ts +21 -0
- package/lib/tree-sitter/index.d.ts +7 -0
- package/lib/tree-sitter/parser.worker.d.ts +1 -0
- package/lib/tree-sitter/parsers-config.d.ts +53 -0
- package/lib/tree-sitter/resolve-ft.d.ts +5 -0
- package/lib/tree-sitter/types.d.ts +185 -0
- package/lib/tree-sitter/update-assets.d.ts +3 -0
- package/lib/tree-sitter/update-assets.js +379 -0
- package/lib/tree-sitter/update-assets.js.map +12 -0
- package/lib/tree-sitter-styled-text.d.ts +16 -0
- package/lib/validate-dir-name.d.ts +1 -0
- package/lib/yoga.options.d.ts +32 -0
- package/native-event-worker-repro.worker.d.ts +1 -0
- package/package.json +52 -74
- package/parser.worker.js +1399 -0
- package/parser.worker.js.map +20 -0
- package/platform/ffi.d.ts +129 -0
- package/platform/runtime.d.ts +14 -0
- package/platform/test.d.ts +12 -0
- package/platform/worker.d.ts +26 -0
- package/platform/worker.node-test.d.ts +1 -0
- package/plugins/core-slot.d.ts +72 -0
- package/plugins/registry.d.ts +42 -0
- package/plugins/types.d.ts +34 -0
- package/post/effects.d.ts +147 -0
- package/post/filters.d.ts +65 -0
- package/post/matrices.d.ts +20 -0
- package/renderables/ASCIIFont.d.ts +52 -0
- package/renderables/Box.d.ts +85 -0
- package/renderables/Code.d.ts +97 -0
- package/renderables/Diff.d.ts +147 -0
- package/renderables/EditBufferRenderable.d.ts +238 -0
- package/renderables/FrameBuffer.d.ts +16 -0
- package/renderables/Input.d.ts +72 -0
- package/renderables/LineNumberRenderable.d.ts +78 -0
- package/renderables/Markdown.d.ts +255 -0
- package/renderables/ScrollBar.d.ts +77 -0
- package/renderables/ScrollBox.d.ts +128 -0
- package/renderables/Select.d.ts +122 -0
- package/renderables/Slider.d.ts +47 -0
- package/renderables/TabSelect.d.ts +98 -0
- package/renderables/Text.d.ts +36 -0
- package/renderables/TextBufferRenderable.d.ts +107 -0
- package/renderables/TextNode.d.ts +92 -0
- package/renderables/TextTable.d.ts +154 -0
- package/renderables/Textarea.d.ts +65 -0
- package/renderables/TimeToFirstDraw.d.ts +24 -0
- package/renderables/__tests__/renderable-test-utils.d.ts +12 -0
- package/renderables/composition/VRenderable.d.ts +16 -0
- package/renderables/composition/constructs.d.ts +35 -0
- package/renderables/composition/vnode.d.ts +46 -0
- package/renderables/index.d.ts +23 -0
- package/renderables/markdown-parser.d.ts +11 -0
- package/renderer-theme-mode.d.ts +29 -0
- package/renderer.d.ts +601 -0
- package/runtime-plugin-support-configure.d.ts +4 -0
- package/runtime-plugin-support-configure.js +36 -0
- package/runtime-plugin-support-configure.js.map +1 -0
- package/runtime-plugin-support-configure.node.js +15 -0
- package/runtime-plugin-support.d.ts +3 -0
- package/runtime-plugin-support.js +5 -0
- package/runtime-plugin-support.js.map +1 -0
- package/runtime-plugin-support.node.js +15 -0
- package/runtime-plugin.d.ts +16 -0
- package/runtime-plugin.js +473 -0
- package/runtime-plugin.js.map +1 -0
- package/runtime-plugin.node.js +15 -0
- package/syntax-style.d.ts +61 -0
- package/testing/bun-test-node.d.ts +87 -0
- package/testing/manual-clock.d.ts +17 -0
- package/testing/mock-keys.d.ts +81 -0
- package/testing/mock-mouse.d.ts +38 -0
- package/testing/mock-tree-sitter-client.d.ts +27 -0
- package/testing/spy.d.ts +7 -0
- package/testing/terminal-capabilities.d.ts +7 -0
- package/testing/test-recorder.d.ts +61 -0
- package/testing/test-renderer.d.ts +54 -0
- package/testing/test-streams.d.ts +12 -0
- package/testing.d.ts +8 -0
- package/testing.js +1004 -0
- package/testing.js.map +18 -0
- package/tests/yoga-upstream/tools/MeasureCounter.d.ts +16 -0
- package/tests/yoga-upstream/tools/utils.d.ts +11 -0
- package/text-buffer-view.d.ts +42 -0
- package/text-buffer.d.ts +66 -0
- package/types.d.ts +175 -0
- package/utils.d.ts +14 -0
- package/yoga.d.ts +437 -0
- package/yoga.js +193 -0
- package/yoga.js.map +9 -0
- package/zig-structs.d.ts +256 -0
- package/zig.d.ts +496 -0
- package/dev/keypress-debug-renderer.ts +0 -148
- package/dev/keypress-debug.ts +0 -43
- package/dev/print-env-vars.ts +0 -32
- package/dev/test-tmux-graphics-334.sh +0 -68
- package/dev/test-tmux-theme-queries.sh +0 -151
- package/dev/thai-debug-test.ts +0 -68
- package/dev/theme-mode.ts +0 -290
- package/docs/development.md +0 -144
- package/prebuilt/aarch64-android/libopentui.so +0 -0
- package/scripts/build-android.ts +0 -226
- package/scripts/build-native-termux.sh +0 -525
- package/scripts/build.ts +0 -530
- package/scripts/dist-test.ts +0 -312
- package/scripts/package-prebuilt.ts +0 -110
- package/scripts/publish.ts +0 -60
- package/scripts/test-node-hook.mjs +0 -16
- package/scripts/test-node.ts +0 -241
- package/scripts/vendor-deps.sh +0 -73
- package/src/NativeSpanFeed.ts +0 -375
- package/src/Renderable.ts +0 -1878
- package/src/__snapshots__/buffer.test.ts.snap +0 -28
- package/src/animation/Timeline.test.ts +0 -2709
- package/src/animation/Timeline.ts +0 -598
- package/src/ansi.ts +0 -22
- package/src/audio.ts +0 -479
- package/src/benchmark/attenuation-benchmark.ts +0 -81
- package/src/benchmark/audio-playback-benchmark.ts +0 -344
- package/src/benchmark/box-draw-benchmark.ts +0 -1042
- package/src/benchmark/colormatrix-benchmark.ts +0 -123
- package/src/benchmark/gain-benchmark.ts +0 -80
- package/src/benchmark/latest-all-bench-run.json +0 -707
- package/src/benchmark/latest-async-bench-run.json +0 -336
- package/src/benchmark/latest-default-bench-run.json +0 -657
- package/src/benchmark/latest-large-bench-run.json +0 -707
- package/src/benchmark/latest-quick-bench-run.json +0 -207
- package/src/benchmark/layout-benchmark.ts +0 -2547
- package/src/benchmark/markdown-benchmark.ts +0 -1796
- package/src/benchmark/native-span-feed-async-benchmark.ts +0 -355
- package/src/benchmark/native-span-feed-benchmark.md +0 -56
- package/src/benchmark/native-span-feed-benchmark.ts +0 -596
- package/src/benchmark/native-span-feed-compare.ts +0 -280
- package/src/benchmark/render-traversal-benchmark.ts +0 -928
- package/src/benchmark/text-buffer-render-benchmark.ts +0 -874
- package/src/benchmark/text-table-benchmark.ts +0 -948
- package/src/buffer.test.ts +0 -292
- package/src/buffer.ts +0 -564
- package/src/console.test.ts +0 -629
- package/src/console.ts +0 -1253
- package/src/edit-buffer.test.ts +0 -1852
- package/src/edit-buffer.ts +0 -417
- package/src/editor-view.test.ts +0 -1056
- package/src/editor-view.ts +0 -290
- package/src/index.ts +0 -25
- package/src/lib/KeyHandler.integration.test.ts +0 -292
- package/src/lib/KeyHandler.stopPropagation.test.ts +0 -289
- package/src/lib/KeyHandler.test.ts +0 -662
- package/src/lib/KeyHandler.ts +0 -222
- package/src/lib/RGBA.test.ts +0 -60
- package/src/lib/RGBA.ts +0 -343
- package/src/lib/ascii.font.ts +0 -330
- package/src/lib/border.test.ts +0 -83
- package/src/lib/border.ts +0 -170
- package/src/lib/bunfs.test.ts +0 -27
- package/src/lib/bunfs.ts +0 -18
- package/src/lib/clipboard.test.ts +0 -63
- package/src/lib/clipboard.ts +0 -41
- package/src/lib/clock.ts +0 -35
- package/src/lib/data-paths.test.ts +0 -133
- package/src/lib/data-paths.ts +0 -109
- package/src/lib/debounce.ts +0 -106
- package/src/lib/detect-links.test.ts +0 -98
- package/src/lib/detect-links.ts +0 -56
- package/src/lib/env.test.ts +0 -228
- package/src/lib/env.ts +0 -209
- package/src/lib/extmarks-history.ts +0 -51
- package/src/lib/extmarks-multiwidth.test.ts +0 -324
- package/src/lib/extmarks.test.ts +0 -3547
- package/src/lib/extmarks.ts +0 -861
- package/src/lib/fonts/block.json +0 -405
- package/src/lib/fonts/grid.json +0 -265
- package/src/lib/fonts/huge.json +0 -741
- package/src/lib/fonts/pallet.json +0 -314
- package/src/lib/fonts/shade.json +0 -591
- package/src/lib/fonts/slick.json +0 -321
- package/src/lib/fonts/tiny.json +0 -69
- package/src/lib/hast-styled-text.ts +0 -59
- package/src/lib/index.ts +0 -22
- package/src/lib/keybinding.internal.test.ts +0 -342
- package/src/lib/keybinding.internal.ts +0 -182
- package/src/lib/objects-in-viewport.test.ts +0 -789
- package/src/lib/objects-in-viewport.ts +0 -153
- package/src/lib/output.capture.ts +0 -58
- package/src/lib/parse.keypress-kitty.protocol.test.ts +0 -347
- package/src/lib/parse.keypress-kitty.test.ts +0 -712
- package/src/lib/parse.keypress-kitty.ts +0 -470
- package/src/lib/parse.keypress.test.ts +0 -2020
- package/src/lib/parse.keypress.ts +0 -480
- package/src/lib/parse.mouse.test.ts +0 -552
- package/src/lib/parse.mouse.ts +0 -232
- package/src/lib/paste.ts +0 -18
- package/src/lib/queue.ts +0 -65
- package/src/lib/render-geometry.ts +0 -36
- package/src/lib/renderable.validations.test.ts +0 -87
- package/src/lib/renderable.validations.ts +0 -83
- package/src/lib/scroll-acceleration.ts +0 -98
- package/src/lib/selection.ts +0 -261
- package/src/lib/singleton.ts +0 -34
- package/src/lib/stdin-parser.test.ts +0 -2439
- package/src/lib/stdin-parser.ts +0 -2007
- package/src/lib/styled-text.ts +0 -178
- package/src/lib/terminal-capability-detection.test.ts +0 -226
- package/src/lib/terminal-capability-detection.ts +0 -98
- package/src/lib/terminal-palette.test.ts +0 -954
- package/src/lib/terminal-palette.ts +0 -441
- package/src/lib/tree-sitter/assets/README.md +0 -119
- package/src/lib/tree-sitter/assets/update.ts +0 -360
- package/src/lib/tree-sitter/assets.d.ts +0 -9
- package/src/lib/tree-sitter/cache.test.ts +0 -291
- package/src/lib/tree-sitter/client.test.ts +0 -1434
- package/src/lib/tree-sitter/client.ts +0 -847
- package/src/lib/tree-sitter/default-parsers.ts +0 -133
- package/src/lib/tree-sitter/download-utils.ts +0 -148
- package/src/lib/tree-sitter/index.ts +0 -75
- package/src/lib/tree-sitter/parser.worker.ts +0 -1098
- package/src/lib/tree-sitter/parsers-config.ts +0 -81
- package/src/lib/tree-sitter/resolve-ft.test.ts +0 -55
- package/src/lib/tree-sitter/resolve-ft.ts +0 -189
- package/src/lib/tree-sitter/types.ts +0 -132
- package/src/lib/tree-sitter/update-assets.ts +0 -10
- package/src/lib/tree-sitter-styled-text.test.ts +0 -1253
- package/src/lib/tree-sitter-styled-text.ts +0 -314
- package/src/lib/validate-dir-name.ts +0 -55
- package/src/lib/yoga.options.test.ts +0 -628
- package/src/lib/yoga.options.ts +0 -346
- package/src/native-event-worker-repro.test.ts +0 -48
- package/src/native-event-worker-repro.worker.ts +0 -9
- package/src/native-handle.test.ts +0 -221
- package/src/platform/ffi.test.ts +0 -516
- package/src/platform/ffi.ts +0 -653
- package/src/platform/runtime.test.ts +0 -52
- package/src/platform/runtime.ts +0 -121
- package/src/platform/test.ts +0 -45
- package/src/platform/worker-handler-cleanup.fixture.ts +0 -12
- package/src/platform/worker-onmessage-startup.fixture.ts +0 -10
- package/src/platform/worker-startup.fixture.ts +0 -9
- package/src/platform/worker.node-test.ts +0 -153
- package/src/platform/worker.ts +0 -425
- package/src/plugins/core-slot.ts +0 -579
- package/src/plugins/registry.ts +0 -402
- package/src/plugins/types.ts +0 -46
- package/src/post/effects.ts +0 -948
- package/src/post/filters.ts +0 -512
- package/src/post/matrices.ts +0 -288
- package/src/renderables/ASCIIFont.ts +0 -219
- package/src/renderables/Box.test.ts +0 -474
- package/src/renderables/Box.ts +0 -353
- package/src/renderables/Code.test.ts +0 -2388
- package/src/renderables/Code.ts +0 -555
- package/src/renderables/Diff.regression.test.ts +0 -381
- package/src/renderables/Diff.test.ts +0 -3212
- package/src/renderables/Diff.ts +0 -1278
- package/src/renderables/EditBufferRenderable.test.ts +0 -288
- package/src/renderables/EditBufferRenderable.ts +0 -1152
- package/src/renderables/FrameBuffer.ts +0 -47
- package/src/renderables/Input.test.ts +0 -1310
- package/src/renderables/Input.ts +0 -273
- package/src/renderables/LineNumberRenderable.ts +0 -725
- package/src/renderables/Markdown.ts +0 -2144
- package/src/renderables/ScrollBar.ts +0 -423
- package/src/renderables/ScrollBox.ts +0 -903
- package/src/renderables/Select.test.ts +0 -1134
- package/src/renderables/Select.ts +0 -535
- package/src/renderables/Slider.test.ts +0 -456
- package/src/renderables/Slider.ts +0 -342
- package/src/renderables/TabSelect.test.ts +0 -238
- package/src/renderables/TabSelect.ts +0 -447
- package/src/renderables/Text.selection-buffer.test.ts +0 -118
- package/src/renderables/Text.test.ts +0 -2662
- package/src/renderables/Text.ts +0 -147
- package/src/renderables/TextBufferRenderable.ts +0 -504
- package/src/renderables/TextNode.test.ts +0 -1137
- package/src/renderables/TextNode.ts +0 -379
- package/src/renderables/TextTable.test.ts +0 -1411
- package/src/renderables/TextTable.ts +0 -1434
- package/src/renderables/Textarea.ts +0 -425
- package/src/renderables/TimeToFirstDraw.ts +0 -89
- package/src/renderables/__snapshots__/Code.test.ts.snap +0 -13
- package/src/renderables/__snapshots__/Diff.test.ts.snap +0 -785
- package/src/renderables/__snapshots__/Text.test.ts.snap +0 -421
- package/src/renderables/__snapshots__/TextTable.test.ts.snap +0 -215
- package/src/renderables/__tests__/Code.test.ts +0 -55
- package/src/renderables/__tests__/LineNumberRenderable.scrollbox-simple.test.ts +0 -144
- package/src/renderables/__tests__/LineNumberRenderable.scrollbox.test.ts +0 -827
- package/src/renderables/__tests__/LineNumberRenderable.test.ts +0 -1906
- package/src/renderables/__tests__/LineNumberRenderable.wrapping.test.ts +0 -85
- package/src/renderables/__tests__/Markdown.code-colors.test.ts +0 -288
- package/src/renderables/__tests__/Markdown.test.ts +0 -4175
- package/src/renderables/__tests__/MultiRenderable.selection.test.ts +0 -87
- package/src/renderables/__tests__/Textarea.buffer.test.ts +0 -683
- package/src/renderables/__tests__/Textarea.destroyed-events.test.ts +0 -675
- package/src/renderables/__tests__/Textarea.editing.test.ts +0 -2120
- package/src/renderables/__tests__/Textarea.error-handling.test.ts +0 -35
- package/src/renderables/__tests__/Textarea.events.test.ts +0 -738
- package/src/renderables/__tests__/Textarea.highlights.test.ts +0 -590
- package/src/renderables/__tests__/Textarea.keybinding.test.ts +0 -3275
- package/src/renderables/__tests__/Textarea.paste.test.ts +0 -357
- package/src/renderables/__tests__/Textarea.rendering.test.ts +0 -1927
- package/src/renderables/__tests__/Textarea.scroll.test.ts +0 -733
- package/src/renderables/__tests__/Textarea.selection.test.ts +0 -1589
- package/src/renderables/__tests__/Textarea.stress.test.ts +0 -670
- package/src/renderables/__tests__/Textarea.undo-redo.test.ts +0 -383
- package/src/renderables/__tests__/Textarea.visual-lines.test.ts +0 -310
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.code.test.ts.snap +0 -221
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox-simple.test.ts.snap +0 -89
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox.test.ts.snap +0 -457
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.test.ts.snap +0 -158
- package/src/renderables/__tests__/__snapshots__/Textarea.rendering.test.ts.snap +0 -387
- package/src/renderables/__tests__/markdown-parser.test.ts +0 -241
- package/src/renderables/__tests__/renderable-test-utils.ts +0 -60
- package/src/renderables/composition/README.md +0 -8
- package/src/renderables/composition/VRenderable.ts +0 -32
- package/src/renderables/composition/constructs.ts +0 -127
- package/src/renderables/composition/vnode.ts +0 -277
- package/src/renderables/index.ts +0 -23
- package/src/renderables/markdown-parser.ts +0 -79
- package/src/renderer-theme-mode.ts +0 -199
- package/src/renderer.ts +0 -4975
- package/src/runtime-plugin-support-configure.ts +0 -63
- package/src/runtime-plugin-support.ts +0 -13
- package/src/runtime-plugin.ts +0 -626
- package/src/specs/terminal-startup.md +0 -64
- package/src/syntax-style.test.ts +0 -841
- package/src/syntax-style.ts +0 -274
- package/src/testing/README.md +0 -219
- package/src/testing/bun-test-node.ts +0 -880
- package/src/testing/capture-spans.test.ts +0 -216
- package/src/testing/integration.test.ts +0 -276
- package/src/testing/manual-clock.ts +0 -117
- package/src/testing/mock-keys.test.ts +0 -1378
- package/src/testing/mock-keys.ts +0 -457
- package/src/testing/mock-mouse.test.ts +0 -218
- package/src/testing/mock-mouse.ts +0 -247
- package/src/testing/mock-tree-sitter-client.ts +0 -81
- package/src/testing/spy.ts +0 -13
- package/src/testing/terminal-capabilities.ts +0 -47
- package/src/testing/test-recorder.test.ts +0 -410
- package/src/testing/test-recorder.ts +0 -133
- package/src/testing/test-renderer.ts +0 -375
- package/src/testing/test-renderer.wait.test.ts +0 -278
- package/src/testing/test-streams.ts +0 -31
- package/src/testing.ts +0 -9
- package/src/tests/__snapshots__/absolute-positioning.snapshot.test.ts.snap +0 -481
- package/src/tests/__snapshots__/renderable.snapshot.test.ts.snap +0 -19
- package/src/tests/__snapshots__/scrollbox.test.ts.snap +0 -29
- package/src/tests/absolute-positioning.snapshot.test.ts +0 -638
- package/src/tests/allocator-stats.test.ts +0 -53
- package/src/tests/audio.test.ts +0 -303
- package/src/tests/destroy-during-render.test.ts +0 -200
- package/src/tests/destroy-on-exit.fixture.ts +0 -36
- package/src/tests/destroy-on-exit.test.ts +0 -62
- package/src/tests/ffi-borrowed-pointer-callsites.test.ts +0 -153
- package/src/tests/hover-cursor.test.ts +0 -98
- package/src/tests/native-backed-measurement-lifecycle.test.ts +0 -133
- package/src/tests/native-backed-measurement-parity.test.ts +0 -322
- package/src/tests/native-span-feed-async.test.ts +0 -173
- package/src/tests/native-span-feed-close.test.ts +0 -120
- package/src/tests/native-span-feed-coverage.test.ts +0 -227
- package/src/tests/native-span-feed-edge-cases.test.ts +0 -384
- package/src/tests/native-span-feed-use-after-free.test.ts +0 -45
- package/src/tests/opacity.test.ts +0 -123
- package/src/tests/renderable.snapshot.test.ts +0 -524
- package/src/tests/renderable.test.ts +0 -1851
- package/src/tests/renderer.clock.test.ts +0 -270
- package/src/tests/renderer.console-startup.test.ts +0 -2151
- package/src/tests/renderer.control.test.ts +0 -458
- package/src/tests/renderer.core-slot-binding.test.ts +0 -962
- package/src/tests/renderer.cursor.test.ts +0 -26
- package/src/tests/renderer.custom-stdout.test.ts +0 -1112
- package/src/tests/renderer.destroy-during-render.test.ts +0 -147
- package/src/tests/renderer.focus-restore.test.ts +0 -257
- package/src/tests/renderer.focus.test.ts +0 -329
- package/src/tests/renderer.idle.test.ts +0 -219
- package/src/tests/renderer.input.test.ts +0 -2615
- package/src/tests/renderer.kitty-flags.test.ts +0 -195
- package/src/tests/renderer.lifecycle.test.ts +0 -34
- package/src/tests/renderer.mouse.test.ts +0 -1315
- package/src/tests/renderer.notifications.test.ts +0 -27
- package/src/tests/renderer.palette.test.ts +0 -1199
- package/src/tests/renderer.remote.test.ts +0 -247
- package/src/tests/renderer.render-stats.test.ts +0 -146
- package/src/tests/renderer.scrollback-surface.test.ts +0 -474
- package/src/tests/renderer.selection.test.ts +0 -138
- package/src/tests/renderer.slot-registry.test.ts +0 -684
- package/src/tests/renderer.tracker.test.ts +0 -202
- package/src/tests/renderer.useMouse.test.ts +0 -83
- package/src/tests/runtime-plugin-node-modules-cycle.fixture.ts +0 -76
- package/src/tests/runtime-plugin-node-modules-import-like-string.fixture.ts +0 -48
- package/src/tests/runtime-plugin-node-modules-mjs.fixture.ts +0 -43
- package/src/tests/runtime-plugin-node-modules-no-bare-rewrite.fixture.ts +0 -67
- package/src/tests/runtime-plugin-node-modules-package-type-cache.fixture.ts +0 -72
- package/src/tests/runtime-plugin-node-modules-runtime-specifier.fixture.ts +0 -44
- package/src/tests/runtime-plugin-node-modules-scoped-package-bare-rewrite.fixture.ts +0 -85
- package/src/tests/runtime-plugin-path-alias.fixture.ts +0 -43
- package/src/tests/runtime-plugin-resolve-roots.fixture.ts +0 -65
- package/src/tests/runtime-plugin-support-configure.fixture.ts +0 -31
- package/src/tests/runtime-plugin-support-late-addition.fixture.ts +0 -17
- package/src/tests/runtime-plugin-support.fixture.ts +0 -11
- package/src/tests/runtime-plugin-support.test.ts +0 -54
- package/src/tests/runtime-plugin-windows-file-url.fixture.ts +0 -30
- package/src/tests/runtime-plugin.fixture.ts +0 -40
- package/src/tests/runtime-plugin.test.ts +0 -369
- package/src/tests/scrollbox-culling-bug.test.ts +0 -114
- package/src/tests/scrollbox-hitgrid-resize.test.ts +0 -136
- package/src/tests/scrollbox-hitgrid.test.ts +0 -909
- package/src/tests/scrollbox.test.ts +0 -1895
- package/src/tests/wrap-resize-perf.test.ts +0 -276
- package/src/tests/yoga-api-coverage.test.ts +0 -409
- package/src/tests/yoga-callback-stress.test.ts +0 -122
- package/src/tests/yoga-ffi.test.ts +0 -117
- package/src/tests/yoga-setters.test.ts +0 -921
- package/src/tests/yoga-upstream/YGAlignBaselineTest.test.ts +0 -124
- package/src/tests/yoga-upstream/YGComputedBorderTest.test.ts +0 -27
- package/src/tests/yoga-upstream/YGComputedMarginTest.test.ts +0 -27
- package/src/tests/yoga-upstream/YGComputedPaddingTest.test.ts +0 -27
- package/src/tests/yoga-upstream/YGDirtiedTest.test.ts +0 -157
- package/src/tests/yoga-upstream/YGErrataTest.test.ts +0 -40
- package/src/tests/yoga-upstream/YGFlexBasisAuto.test.ts +0 -23
- package/src/tests/yoga-upstream/YGHasNewLayout.test.ts +0 -81
- package/src/tests/yoga-upstream/YGMeasureCacheTest.test.ts +0 -31
- package/src/tests/yoga-upstream/YGMeasureTest.test.ts +0 -70
- package/src/tests/yoga-upstream/generated/YGAbsolutePositionTest.test.ts +0 -1864
- package/src/tests/yoga-upstream/generated/YGAlignContentTest.test.ts +0 -5829
- package/src/tests/yoga-upstream/generated/YGAlignItemsTest.test.ts +0 -2444
- package/src/tests/yoga-upstream/generated/YGAlignSelfTest.test.ts +0 -293
- package/src/tests/yoga-upstream/generated/YGAndroidNewsFeed.test.ts +0 -315
- package/src/tests/yoga-upstream/generated/YGAspectRatioTest.test.ts +0 -231
- package/src/tests/yoga-upstream/generated/YGAutoTest.test.ts +0 -347
- package/src/tests/yoga-upstream/generated/YGBorderTest.test.ts +0 -256
- package/src/tests/yoga-upstream/generated/YGBoxSizingTest.test.ts +0 -2747
- package/src/tests/yoga-upstream/generated/YGDimensionTest.test.ts +0 -129
- package/src/tests/yoga-upstream/generated/YGDisplayContentsTest.test.ts +0 -109
- package/src/tests/yoga-upstream/generated/YGDisplayTest.test.ts +0 -1097
- package/src/tests/yoga-upstream/generated/YGFlexDirectionTest.test.ts +0 -4562
- package/src/tests/yoga-upstream/generated/YGFlexTest.test.ts +0 -677
- package/src/tests/yoga-upstream/generated/YGFlexWrapTest.test.ts +0 -2071
- package/src/tests/yoga-upstream/generated/YGGapTest.test.ts +0 -3303
- package/src/tests/yoga-upstream/generated/YGIntrinsicSizeTest.test.ts +0 -582
- package/src/tests/yoga-upstream/generated/YGJustifyContentTest.test.ts +0 -2150
- package/src/tests/yoga-upstream/generated/YGMarginTest.test.ts +0 -1963
- package/src/tests/yoga-upstream/generated/YGMinMaxDimensionTest.test.ts +0 -1446
- package/src/tests/yoga-upstream/generated/YGPaddingTest.test.ts +0 -354
- package/src/tests/yoga-upstream/generated/YGPercentageTest.test.ts +0 -1760
- package/src/tests/yoga-upstream/generated/YGRoundingTest.test.ts +0 -1161
- package/src/tests/yoga-upstream/generated/YGSizeOverflowTest.test.ts +0 -207
- package/src/tests/yoga-upstream/generated/YGStaticPositionTest.test.ts +0 -6338
- package/src/tests/yoga-upstream/tools/MeasureCounter.ts +0 -54
- package/src/tests/yoga-upstream/tools/utils.ts +0 -81
- package/src/text-buffer-view.test.ts +0 -722
- package/src/text-buffer-view.ts +0 -193
- package/src/text-buffer.test.ts +0 -512
- package/src/text-buffer.ts +0 -250
- package/src/types.ts +0 -199
- package/src/utils.ts +0 -88
- package/src/yoga.ts +0 -1146
- package/src/zig/ansi.zig +0 -502
- package/src/zig/audio.zig +0 -1206
- package/src/zig/bench/README.md +0 -50
- package/src/zig/bench/buffer-color-blending_bench.zig +0 -350
- package/src/zig/bench/buffer-draw-box_bench.zig +0 -786
- package/src/zig/bench/buffer-draw-text-buffer_bench.zig +0 -894
- package/src/zig/bench/edit-buffer_bench.zig +0 -476
- package/src/zig/bench/editor-view_bench.zig +0 -169
- package/src/zig/bench/native-span-feed_bench.zig +0 -107
- package/src/zig/bench/rope-markers_bench.zig +0 -713
- package/src/zig/bench/rope_bench.zig +0 -514
- package/src/zig/bench/styled-text_bench.zig +0 -476
- package/src/zig/bench/text-buffer-coords_bench.zig +0 -362
- package/src/zig/bench/text-buffer-view_bench.zig +0 -459
- package/src/zig/bench/text-chunk-graphemes_bench.zig +0 -272
- package/src/zig/bench/utf8_bench.zig +0 -799
- package/src/zig/bench-utils.zig +0 -431
- package/src/zig/bench.zig +0 -223
- package/src/zig/buffer-methods.zig +0 -215
- package/src/zig/buffer.zig +0 -2515
- package/src/zig/build.zig +0 -700
- package/src/zig/build.zig.zon +0 -19
- package/src/zig/edit-buffer.zig +0 -900
- package/src/zig/editor-view.zig +0 -812
- package/src/zig/event-bus.zig +0 -28
- package/src/zig/event-emitter.zig +0 -65
- package/src/zig/file-logger.zig +0 -92
- package/src/zig/grapheme.zig +0 -838
- package/src/zig/handles.zig +0 -267
- package/src/zig/lib.zig +0 -2813
- package/src/zig/link.zig +0 -349
- package/src/zig/logger.zig +0 -43
- package/src/zig/mem-registry.zig +0 -126
- package/src/zig/miniaudio_shim.c +0 -21
- package/src/zig/native-renderable.zig +0 -112
- package/src/zig/native-span-feed-bench-lib.zig +0 -7
- package/src/zig/native-span-feed.zig +0 -747
- package/src/zig/renderer-output.zig +0 -677
- package/src/zig/renderer.zig +0 -2106
- package/src/zig/rope.zig +0 -1220
- package/src/zig/split-scrollback.zig +0 -88
- package/src/zig/syntax-style.zig +0 -174
- package/src/zig/terminal.zig +0 -1652
- package/src/zig/test.zig +0 -82
- package/src/zig/tests/README.md +0 -18
- package/src/zig/tests/ansi_test.zig +0 -18
- package/src/zig/tests/audio_test.zig +0 -439
- package/src/zig/tests/buffer-methods_test.zig +0 -1111
- package/src/zig/tests/buffer_test.zig +0 -2926
- package/src/zig/tests/edit-buffer-history_test.zig +0 -299
- package/src/zig/tests/edit-buffer_test.zig +0 -1688
- package/src/zig/tests/editor-view_test.zig +0 -3454
- package/src/zig/tests/event-emitter_test.zig +0 -249
- package/src/zig/tests/grapheme_test.zig +0 -1329
- package/src/zig/tests/handles_test.zig +0 -123
- package/src/zig/tests/link_test.zig +0 -220
- package/src/zig/tests/mem-registry_test.zig +0 -473
- package/src/zig/tests/memory_leak_regression_test.zig +0 -234
- package/src/zig/tests/native-renderable_test.zig +0 -16
- package/src/zig/tests/native-span-feed_test.zig +0 -1266
- package/src/zig/tests/renderer_test.zig +0 -2604
- package/src/zig/tests/rope-nested_test.zig +0 -712
- package/src/zig/tests/rope_fuzz_test.zig +0 -238
- package/src/zig/tests/rope_test.zig +0 -2362
- package/src/zig/tests/segment-merge.test.zig +0 -148
- package/src/zig/tests/split-scrollback_test.zig +0 -70
- package/src/zig/tests/syntax-style_test.zig +0 -558
- package/src/zig/tests/terminal_test.zig +0 -1489
- package/src/zig/tests/test-renderer.zig +0 -126
- package/src/zig/tests/text-buffer-drawing_test.zig +0 -3291
- package/src/zig/tests/text-buffer-highlights_test.zig +0 -706
- package/src/zig/tests/text-buffer-iterators_test.zig +0 -776
- package/src/zig/tests/text-buffer-segment_test.zig +0 -320
- package/src/zig/tests/text-buffer-selection_test.zig +0 -1056
- package/src/zig/tests/text-buffer-selection_viewport_test.zig +0 -358
- package/src/zig/tests/text-buffer-view_test.zig +0 -3672
- package/src/zig/tests/text-buffer_test.zig +0 -2191
- package/src/zig/tests/unicode-width-map.zon +0 -3909
- package/src/zig/tests/utf8_no_zwj_test.zig +0 -260
- package/src/zig/tests/utf8_test.zig +0 -4060
- package/src/zig/tests/utf8_wcwidth_cursor_test.zig +0 -267
- package/src/zig/tests/utf8_wcwidth_test.zig +0 -357
- package/src/zig/tests/word-wrap-editing_test.zig +0 -498
- package/src/zig/tests/wrap-cache-perf_test.zig +0 -113
- package/src/zig/tests/yoga_test.zig +0 -65
- package/src/zig/text-buffer-iterators.zig +0 -496
- package/src/zig/text-buffer-segment.zig +0 -403
- package/src/zig/text-buffer-view.zig +0 -1428
- package/src/zig/text-buffer.zig +0 -1272
- package/src/zig/utf8.zig +0 -1954
- package/src/zig/utils.zig +0 -12
- package/src/zig/uucode-stub.zig +0 -76
- package/src/zig/vendor/miniaudio/miniaudio.h +0 -93468
- package/src/zig/yoga.zig +0 -658
- package/src/zig-structs.ts +0 -381
- package/src/zig.ts +0 -5260
- package/tsconfig.build.json +0 -17
- package/tsconfig.json +0 -27
- package/tsconfig.node-test.json +0 -138
- /package/{src/lib/tree-sitter/assets → assets}/javascript/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/javascript/tree-sitter-javascript.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown/injections.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown/tree-sitter-markdown.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown_inline/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown_inline/tree-sitter-markdown_inline.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/typescript/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/typescript/tree-sitter-typescript.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/zig/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/zig/tree-sitter-zig.wasm +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { TextChunk } from "../text-buffer.js";
|
|
2
|
+
import { type ColorInput } from "./RGBA.js";
|
|
3
|
+
declare const BrandedStyledText: unique symbol;
|
|
4
|
+
export type Color = ColorInput;
|
|
5
|
+
export interface StyleAttrs {
|
|
6
|
+
fg?: Color;
|
|
7
|
+
bg?: Color;
|
|
8
|
+
bold?: boolean;
|
|
9
|
+
italic?: boolean;
|
|
10
|
+
underline?: boolean;
|
|
11
|
+
strikethrough?: boolean;
|
|
12
|
+
dim?: boolean;
|
|
13
|
+
reverse?: boolean;
|
|
14
|
+
blink?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function isStyledText(obj: any): obj is StyledText;
|
|
17
|
+
export declare class StyledText {
|
|
18
|
+
[BrandedStyledText]: boolean;
|
|
19
|
+
chunks: TextChunk[];
|
|
20
|
+
constructor(chunks: TextChunk[]);
|
|
21
|
+
}
|
|
22
|
+
export declare function stringToStyledText(content: string): StyledText;
|
|
23
|
+
export type StylableInput = string | number | boolean | TextChunk;
|
|
24
|
+
export declare const black: (input: StylableInput) => TextChunk;
|
|
25
|
+
export declare const red: (input: StylableInput) => TextChunk;
|
|
26
|
+
export declare const green: (input: StylableInput) => TextChunk;
|
|
27
|
+
export declare const yellow: (input: StylableInput) => TextChunk;
|
|
28
|
+
export declare const blue: (input: StylableInput) => TextChunk;
|
|
29
|
+
export declare const magenta: (input: StylableInput) => TextChunk;
|
|
30
|
+
export declare const cyan: (input: StylableInput) => TextChunk;
|
|
31
|
+
export declare const white: (input: StylableInput) => TextChunk;
|
|
32
|
+
export declare const brightBlack: (input: StylableInput) => TextChunk;
|
|
33
|
+
export declare const brightRed: (input: StylableInput) => TextChunk;
|
|
34
|
+
export declare const brightGreen: (input: StylableInput) => TextChunk;
|
|
35
|
+
export declare const brightYellow: (input: StylableInput) => TextChunk;
|
|
36
|
+
export declare const brightBlue: (input: StylableInput) => TextChunk;
|
|
37
|
+
export declare const brightMagenta: (input: StylableInput) => TextChunk;
|
|
38
|
+
export declare const brightCyan: (input: StylableInput) => TextChunk;
|
|
39
|
+
export declare const brightWhite: (input: StylableInput) => TextChunk;
|
|
40
|
+
export declare const bgBlack: (input: StylableInput) => TextChunk;
|
|
41
|
+
export declare const bgRed: (input: StylableInput) => TextChunk;
|
|
42
|
+
export declare const bgGreen: (input: StylableInput) => TextChunk;
|
|
43
|
+
export declare const bgYellow: (input: StylableInput) => TextChunk;
|
|
44
|
+
export declare const bgBlue: (input: StylableInput) => TextChunk;
|
|
45
|
+
export declare const bgMagenta: (input: StylableInput) => TextChunk;
|
|
46
|
+
export declare const bgCyan: (input: StylableInput) => TextChunk;
|
|
47
|
+
export declare const bgWhite: (input: StylableInput) => TextChunk;
|
|
48
|
+
export declare const bold: (input: StylableInput) => TextChunk;
|
|
49
|
+
export declare const italic: (input: StylableInput) => TextChunk;
|
|
50
|
+
export declare const underline: (input: StylableInput) => TextChunk;
|
|
51
|
+
export declare const strikethrough: (input: StylableInput) => TextChunk;
|
|
52
|
+
export declare const dim: (input: StylableInput) => TextChunk;
|
|
53
|
+
export declare const reverse: (input: StylableInput) => TextChunk;
|
|
54
|
+
export declare const blink: (input: StylableInput) => TextChunk;
|
|
55
|
+
export declare const fg: (color: Color) => (input: StylableInput) => TextChunk;
|
|
56
|
+
export declare const bg: (color: Color) => (input: StylableInput) => TextChunk;
|
|
57
|
+
export declare const link: (url: string) => (input: StylableInput) => TextChunk;
|
|
58
|
+
/**
|
|
59
|
+
* Template literal handler for styled text (non-cached version).
|
|
60
|
+
* Returns a StyledText object containing chunks of text with optional styles.
|
|
61
|
+
*/
|
|
62
|
+
export declare function t(strings: TemplateStringsArray, ...values: StylableInput[]): StyledText;
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal capability response detection utilities.
|
|
3
|
+
*
|
|
4
|
+
* Detects various terminal capability response sequences:
|
|
5
|
+
* - DECRPM (DEC Request Mode): ESC[?...;N$y where N is 0,1,2,3,4
|
|
6
|
+
* - CPR (Cursor Position Report): ESC[row;colR (used for width detection)
|
|
7
|
+
* - XTVersion: ESC P >| ... ESC \
|
|
8
|
+
* - Kitty Graphics: ESC _ G ... ESC \
|
|
9
|
+
* - Kitty Keyboard Query: ESC[?Nu where N is 0,1,2,etc
|
|
10
|
+
* - DA1 (Device Attributes): ESC[?...c
|
|
11
|
+
* - Pixel Resolution: ESC[4;height;widtht
|
|
12
|
+
* - OSC 99 notification capability query response
|
|
13
|
+
* - iTerm2 OSC 1337 feature-reporting response
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Check if a sequence is a terminal capability response.
|
|
17
|
+
* Returns true if the sequence matches any known capability response pattern.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isCapabilityResponse(sequence: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Check if a sequence is a pixel resolution response.
|
|
22
|
+
* Format: ESC[4;height;widtht
|
|
23
|
+
*/
|
|
24
|
+
export declare function isPixelResolutionResponse(sequence: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Parse pixel resolution from response sequence.
|
|
27
|
+
* Returns { width, height } or null if not a valid resolution response.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parsePixelResolution(sequence: string): {
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
} | null;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { RGBA } from "./RGBA.js";
|
|
2
|
+
import { type Clock } from "./clock.js";
|
|
3
|
+
type Hex = string | null;
|
|
4
|
+
export type WriteFunction = (data: string | Buffer) => boolean;
|
|
5
|
+
export interface TerminalColors {
|
|
6
|
+
palette: Hex[];
|
|
7
|
+
defaultForeground: Hex;
|
|
8
|
+
defaultBackground: Hex;
|
|
9
|
+
cursorColor: Hex;
|
|
10
|
+
mouseForeground: Hex;
|
|
11
|
+
mouseBackground: Hex;
|
|
12
|
+
tekForeground: Hex;
|
|
13
|
+
tekBackground: Hex;
|
|
14
|
+
highlightBackground: Hex;
|
|
15
|
+
highlightForeground: Hex;
|
|
16
|
+
}
|
|
17
|
+
export interface GetPaletteOptions {
|
|
18
|
+
timeout?: number;
|
|
19
|
+
size?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface TerminalPaletteDetector {
|
|
22
|
+
detect(options?: GetPaletteOptions): Promise<TerminalColors>;
|
|
23
|
+
detectOSCSupport(timeoutMs?: number): Promise<boolean>;
|
|
24
|
+
cleanup(): void;
|
|
25
|
+
}
|
|
26
|
+
export interface NormalizedTerminalPalette {
|
|
27
|
+
palette: RGBA[];
|
|
28
|
+
defaultForeground: RGBA;
|
|
29
|
+
defaultBackground: RGBA;
|
|
30
|
+
}
|
|
31
|
+
export type OscSubscriptionSource = {
|
|
32
|
+
subscribeOsc(handler: (sequence: string) => void): () => void;
|
|
33
|
+
};
|
|
34
|
+
export interface TerminalPaletteOptions {
|
|
35
|
+
stdin: NodeJS.ReadStream;
|
|
36
|
+
stdout: NodeJS.WriteStream;
|
|
37
|
+
writeFn?: WriteFunction;
|
|
38
|
+
isLegacyTmux?: boolean;
|
|
39
|
+
isTmux?: boolean;
|
|
40
|
+
oscSource?: OscSubscriptionSource;
|
|
41
|
+
clock?: Clock;
|
|
42
|
+
}
|
|
43
|
+
export declare class TerminalPalette implements TerminalPaletteDetector {
|
|
44
|
+
private stdin;
|
|
45
|
+
private stdout;
|
|
46
|
+
private writeFn;
|
|
47
|
+
private activeQuerySessions;
|
|
48
|
+
private inLegacyTmux;
|
|
49
|
+
private inTmux;
|
|
50
|
+
private oscSource?;
|
|
51
|
+
private readonly clock;
|
|
52
|
+
constructor(options: TerminalPaletteOptions);
|
|
53
|
+
private writeOsc;
|
|
54
|
+
cleanup(): void;
|
|
55
|
+
private subscribeInput;
|
|
56
|
+
private createQuerySession;
|
|
57
|
+
detectOSCSupport(timeoutMs?: number): Promise<boolean>;
|
|
58
|
+
private queryPalette;
|
|
59
|
+
private querySpecialColors;
|
|
60
|
+
detect(options?: GetPaletteOptions): Promise<TerminalColors>;
|
|
61
|
+
}
|
|
62
|
+
export declare function createTerminalPalette(options: TerminalPaletteOptions): TerminalPaletteDetector;
|
|
63
|
+
export declare function normalizeTerminalPalette(colors?: TerminalColors | null): NormalizedTerminalPalette;
|
|
64
|
+
export declare function buildTerminalPaletteSignature(colors?: TerminalColors | null): string;
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
export interface UpdateOptions {
|
|
3
|
+
/** Path to parsers-config.json */
|
|
4
|
+
configPath: string;
|
|
5
|
+
/** Directory where .wasm and .scm files will be downloaded */
|
|
6
|
+
assetsDir: string;
|
|
7
|
+
/** Path where the generated TypeScript file will be written */
|
|
8
|
+
outputPath: string;
|
|
9
|
+
}
|
|
10
|
+
declare function main(options?: Partial<UpdateOptions>): Promise<void>;
|
|
11
|
+
export declare function runUpdateAssetsCli(): Promise<void>;
|
|
12
|
+
export { main as updateAssets };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
import type { TreeSitterClientOptions, TreeSitterClientEvents, BufferState, FiletypeParserOptions, Edit, PerformanceStats, SimpleHighlight } from "./types.js";
|
|
3
|
+
declare global {
|
|
4
|
+
const OTUI_TREE_SITTER_WORKER_PATH: string;
|
|
5
|
+
}
|
|
6
|
+
interface TreeSitterClientInternalOptions {
|
|
7
|
+
autoStartWorker?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function addDefaultParsers(parsers: FiletypeParserOptions[]): void;
|
|
10
|
+
export declare class TreeSitterClient extends EventEmitter<TreeSitterClientEvents> {
|
|
11
|
+
private initialized;
|
|
12
|
+
private worker;
|
|
13
|
+
private buffers;
|
|
14
|
+
private initializePromise;
|
|
15
|
+
private initializeResolvers;
|
|
16
|
+
private messageCallbacks;
|
|
17
|
+
private messageIdCounter;
|
|
18
|
+
private editQueues;
|
|
19
|
+
private debouncer;
|
|
20
|
+
private options;
|
|
21
|
+
private destroyCallbacks;
|
|
22
|
+
private lifecycleGeneration;
|
|
23
|
+
private rejectInitialization;
|
|
24
|
+
private destroyPromise;
|
|
25
|
+
private workerTerminationFailed;
|
|
26
|
+
constructor(options: TreeSitterClientOptions, internalOptions?: TreeSitterClientInternalOptions);
|
|
27
|
+
onDestroy(callback: () => void): () => void;
|
|
28
|
+
private emitError;
|
|
29
|
+
private emitWarning;
|
|
30
|
+
private startWorker;
|
|
31
|
+
private sendWorkerMessage;
|
|
32
|
+
private rejectPendingRequests;
|
|
33
|
+
private rejectActiveInitialization;
|
|
34
|
+
private handleWorkerFailure;
|
|
35
|
+
private resolveWorkerPath;
|
|
36
|
+
private stopWorker;
|
|
37
|
+
private handleReset;
|
|
38
|
+
initialize(): Promise<void>;
|
|
39
|
+
private assertCurrentInitialization;
|
|
40
|
+
private initializeClient;
|
|
41
|
+
private registerDefaultParsers;
|
|
42
|
+
private resolvePath;
|
|
43
|
+
addFiletypeParser(filetypeParser: FiletypeParserOptions): void;
|
|
44
|
+
private resolveFiletypeParser;
|
|
45
|
+
getPerformance(): Promise<PerformanceStats>;
|
|
46
|
+
highlightOnce(content: string, filetype: string): Promise<{
|
|
47
|
+
highlights?: SimpleHighlight[];
|
|
48
|
+
warning?: string;
|
|
49
|
+
error?: string;
|
|
50
|
+
}>;
|
|
51
|
+
private handleWorkerMessage;
|
|
52
|
+
preloadParser(filetype: string): Promise<boolean>;
|
|
53
|
+
createBuffer(id: number, content: string, filetype: string, version?: number, autoInitialize?: boolean): Promise<boolean>;
|
|
54
|
+
updateBuffer(id: number, edits: Edit[], newContent: string, version: number): Promise<void>;
|
|
55
|
+
private processEdit;
|
|
56
|
+
removeBuffer(bufferId: number): Promise<void>;
|
|
57
|
+
destroy(): Promise<void>;
|
|
58
|
+
resetBuffer(bufferId: number, version: number, content: string): Promise<void>;
|
|
59
|
+
getBuffer(bufferId: number): BufferState | undefined;
|
|
60
|
+
getAllBuffers(): BufferState[];
|
|
61
|
+
isInitialized(): boolean;
|
|
62
|
+
setDataPath(dataPath: string): Promise<void>;
|
|
63
|
+
clearCache(): Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface DownloadResult {
|
|
2
|
+
content?: Buffer;
|
|
3
|
+
filePath?: string;
|
|
4
|
+
error?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class DownloadUtils {
|
|
7
|
+
private static hashUrl;
|
|
8
|
+
/**
|
|
9
|
+
* Download a file from URL or load from local path, with caching support
|
|
10
|
+
*/
|
|
11
|
+
static downloadOrLoad(source: string, cacheDir: string, cacheSubdir: string, fileExtension: string, useHashForCache?: boolean, filetype?: string): Promise<DownloadResult>;
|
|
12
|
+
/**
|
|
13
|
+
* Download and save a file to a specific target path
|
|
14
|
+
*/
|
|
15
|
+
static downloadToPath(source: string, targetPath: string): Promise<DownloadResult>;
|
|
16
|
+
/**
|
|
17
|
+
* Fetch multiple highlight queries and concatenate them
|
|
18
|
+
*/
|
|
19
|
+
static fetchHighlightQueries(sources: string[], cacheDir: string, filetype: string): Promise<string>;
|
|
20
|
+
private static fetchHighlightQuery;
|
|
21
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TreeSitterClient } from "./client.js";
|
|
2
|
+
export * from "./client.js";
|
|
3
|
+
export * from "../tree-sitter-styled-text.js";
|
|
4
|
+
export * from "./types.js";
|
|
5
|
+
export * from "./resolve-ft.js";
|
|
6
|
+
export declare function getTreeSitterClient(): TreeSitterClient;
|
|
7
|
+
export declare function destroyTreeSitterClient(): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file contains the configuration for the defaulttree-sitter parsers.
|
|
3
|
+
* It is used by ./assets/update.ts to generate the default-parsers.ts file.
|
|
4
|
+
* For changes here to be reflected in the default-parsers.ts file, you need to run `bun run ./assets/update.ts`
|
|
5
|
+
*/
|
|
6
|
+
declare const _default: {
|
|
7
|
+
parsers: ({
|
|
8
|
+
filetype: string;
|
|
9
|
+
aliases: string[];
|
|
10
|
+
wasm: string;
|
|
11
|
+
queries: {
|
|
12
|
+
highlights: string[];
|
|
13
|
+
injections?: undefined;
|
|
14
|
+
};
|
|
15
|
+
injectionMapping?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
filetype: string;
|
|
18
|
+
wasm: string;
|
|
19
|
+
queries: {
|
|
20
|
+
highlights: string[];
|
|
21
|
+
injections: string[];
|
|
22
|
+
};
|
|
23
|
+
injectionMapping: {
|
|
24
|
+
nodeTypes: {
|
|
25
|
+
inline: string;
|
|
26
|
+
pipe_table_cell: string;
|
|
27
|
+
};
|
|
28
|
+
infoStringMap: {
|
|
29
|
+
javascript: string;
|
|
30
|
+
js: string;
|
|
31
|
+
jsx: string;
|
|
32
|
+
javascriptreact: string;
|
|
33
|
+
typescript: string;
|
|
34
|
+
ts: string;
|
|
35
|
+
tsx: string;
|
|
36
|
+
typescriptreact: string;
|
|
37
|
+
markdown: string;
|
|
38
|
+
md: string;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
aliases?: undefined;
|
|
42
|
+
} | {
|
|
43
|
+
filetype: string;
|
|
44
|
+
wasm: string;
|
|
45
|
+
queries: {
|
|
46
|
+
highlights: string[];
|
|
47
|
+
injections?: undefined;
|
|
48
|
+
};
|
|
49
|
+
aliases?: undefined;
|
|
50
|
+
injectionMapping?: undefined;
|
|
51
|
+
})[];
|
|
52
|
+
};
|
|
53
|
+
export default _default;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const extensionToFiletype: Map<string, string>;
|
|
2
|
+
export declare const basenameToFiletype: Map<string, string>;
|
|
3
|
+
export declare function extToFiletype(extension: string): string | undefined;
|
|
4
|
+
export declare function pathToFiletype(path: string): string | undefined;
|
|
5
|
+
export declare function infoStringToFiletype(infoString: string): string | undefined;
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
export interface HighlightRange {
|
|
2
|
+
startCol: number;
|
|
3
|
+
endCol: number;
|
|
4
|
+
group: string;
|
|
5
|
+
}
|
|
6
|
+
export interface HighlightResponse {
|
|
7
|
+
line: number;
|
|
8
|
+
highlights: HighlightRange[];
|
|
9
|
+
droppedHighlights: HighlightRange[];
|
|
10
|
+
}
|
|
11
|
+
export interface HighlightMeta {
|
|
12
|
+
isInjection?: boolean;
|
|
13
|
+
injectionLang?: string;
|
|
14
|
+
containsInjection?: boolean;
|
|
15
|
+
conceal?: string | null;
|
|
16
|
+
concealLines?: string | null;
|
|
17
|
+
}
|
|
18
|
+
export type SimpleHighlight = [number, number, string, HighlightMeta?];
|
|
19
|
+
export interface InjectionMapping {
|
|
20
|
+
nodeTypes?: {
|
|
21
|
+
[nodeType: string]: string;
|
|
22
|
+
};
|
|
23
|
+
infoStringMap?: {
|
|
24
|
+
[infoString: string]: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export interface FiletypeParserOptions {
|
|
28
|
+
filetype: string;
|
|
29
|
+
aliases?: string[];
|
|
30
|
+
queries: {
|
|
31
|
+
highlights: string[];
|
|
32
|
+
injections?: string[];
|
|
33
|
+
};
|
|
34
|
+
wasm: string;
|
|
35
|
+
injectionMapping?: InjectionMapping;
|
|
36
|
+
}
|
|
37
|
+
export interface BufferState {
|
|
38
|
+
id: number;
|
|
39
|
+
version: number;
|
|
40
|
+
content: string;
|
|
41
|
+
filetype: string;
|
|
42
|
+
hasParser: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface ParsedBuffer extends BufferState {
|
|
45
|
+
hasParser: true;
|
|
46
|
+
}
|
|
47
|
+
export type TreeSitterWorkerLogType = "log" | "error" | "warn";
|
|
48
|
+
export type TreeSitterWorkerRequest = {
|
|
49
|
+
type: "INIT";
|
|
50
|
+
dataPath: string;
|
|
51
|
+
} | {
|
|
52
|
+
type: "ADD_FILETYPE_PARSER";
|
|
53
|
+
filetypeParser: FiletypeParserOptions;
|
|
54
|
+
} | {
|
|
55
|
+
type: "PRELOAD_PARSER";
|
|
56
|
+
filetype: string;
|
|
57
|
+
messageId: string;
|
|
58
|
+
} | {
|
|
59
|
+
type: "INITIALIZE_PARSER";
|
|
60
|
+
bufferId: number;
|
|
61
|
+
version: number;
|
|
62
|
+
content: string;
|
|
63
|
+
filetype: string;
|
|
64
|
+
messageId: string;
|
|
65
|
+
} | {
|
|
66
|
+
type: "HANDLE_EDITS";
|
|
67
|
+
bufferId: number;
|
|
68
|
+
version: number;
|
|
69
|
+
content: string;
|
|
70
|
+
edits: Edit[];
|
|
71
|
+
} | {
|
|
72
|
+
type: "GET_PERFORMANCE";
|
|
73
|
+
messageId: string;
|
|
74
|
+
} | {
|
|
75
|
+
type: "RESET_BUFFER";
|
|
76
|
+
bufferId: number;
|
|
77
|
+
version: number;
|
|
78
|
+
content: string;
|
|
79
|
+
edits: Edit[];
|
|
80
|
+
} | {
|
|
81
|
+
type: "DISPOSE_BUFFER";
|
|
82
|
+
bufferId: number;
|
|
83
|
+
} | {
|
|
84
|
+
type: "ONESHOT_HIGHLIGHT";
|
|
85
|
+
content: string;
|
|
86
|
+
filetype: string;
|
|
87
|
+
messageId: string;
|
|
88
|
+
} | {
|
|
89
|
+
type: "UPDATE_DATA_PATH";
|
|
90
|
+
dataPath: string;
|
|
91
|
+
messageId: string;
|
|
92
|
+
} | {
|
|
93
|
+
type: "CLEAR_CACHE";
|
|
94
|
+
messageId: string;
|
|
95
|
+
};
|
|
96
|
+
export type TreeSitterWorkerResponse = {
|
|
97
|
+
type: "INIT_RESPONSE";
|
|
98
|
+
error?: string;
|
|
99
|
+
} | {
|
|
100
|
+
type: "PARSER_INIT_RESPONSE";
|
|
101
|
+
bufferId: number;
|
|
102
|
+
messageId: string;
|
|
103
|
+
hasParser: boolean;
|
|
104
|
+
warning?: string;
|
|
105
|
+
error?: string;
|
|
106
|
+
} | {
|
|
107
|
+
type: "HIGHLIGHT_RESPONSE";
|
|
108
|
+
bufferId: number;
|
|
109
|
+
version: number;
|
|
110
|
+
highlights: HighlightResponse[];
|
|
111
|
+
} | {
|
|
112
|
+
type: "PRELOAD_PARSER_RESPONSE";
|
|
113
|
+
messageId: string;
|
|
114
|
+
hasParser: boolean;
|
|
115
|
+
} | {
|
|
116
|
+
type: "BUFFER_DISPOSED";
|
|
117
|
+
bufferId: number;
|
|
118
|
+
} | {
|
|
119
|
+
type: "PERFORMANCE_RESPONSE";
|
|
120
|
+
performance: PerformanceStats;
|
|
121
|
+
messageId: string;
|
|
122
|
+
} | {
|
|
123
|
+
type: "ONESHOT_HIGHLIGHT_RESPONSE";
|
|
124
|
+
messageId: string;
|
|
125
|
+
hasParser: boolean;
|
|
126
|
+
highlights?: SimpleHighlight[];
|
|
127
|
+
warning?: string;
|
|
128
|
+
error?: string;
|
|
129
|
+
} | {
|
|
130
|
+
type: "UPDATE_DATA_PATH_RESPONSE";
|
|
131
|
+
messageId: string;
|
|
132
|
+
error?: string;
|
|
133
|
+
} | {
|
|
134
|
+
type: "CLEAR_CACHE_RESPONSE";
|
|
135
|
+
messageId: string;
|
|
136
|
+
error?: string;
|
|
137
|
+
} | {
|
|
138
|
+
type: "WARNING";
|
|
139
|
+
bufferId?: number;
|
|
140
|
+
warning: string;
|
|
141
|
+
} | {
|
|
142
|
+
type: "ERROR";
|
|
143
|
+
bufferId?: number;
|
|
144
|
+
error: string;
|
|
145
|
+
} | {
|
|
146
|
+
type: "WORKER_LOG";
|
|
147
|
+
logType: TreeSitterWorkerLogType;
|
|
148
|
+
data: unknown[];
|
|
149
|
+
};
|
|
150
|
+
export interface TreeSitterClientEvents {
|
|
151
|
+
"highlights:response": [bufferId: number, version: number, highlights: HighlightResponse[]];
|
|
152
|
+
"buffer:initialized": [bufferId: number, hasParser: boolean];
|
|
153
|
+
"buffer:disposed": [bufferId: number];
|
|
154
|
+
"worker:log": [logType: TreeSitterWorkerLogType, message: string];
|
|
155
|
+
error: [error: string, bufferId?: number];
|
|
156
|
+
warning: [warning: string, bufferId?: number];
|
|
157
|
+
}
|
|
158
|
+
export interface TreeSitterClientOptions {
|
|
159
|
+
dataPath: string;
|
|
160
|
+
workerPath?: string | URL;
|
|
161
|
+
initTimeout?: number;
|
|
162
|
+
}
|
|
163
|
+
export interface Edit {
|
|
164
|
+
startIndex: number;
|
|
165
|
+
oldEndIndex: number;
|
|
166
|
+
newEndIndex: number;
|
|
167
|
+
startPosition: {
|
|
168
|
+
row: number;
|
|
169
|
+
column: number;
|
|
170
|
+
};
|
|
171
|
+
oldEndPosition: {
|
|
172
|
+
row: number;
|
|
173
|
+
column: number;
|
|
174
|
+
};
|
|
175
|
+
newEndPosition: {
|
|
176
|
+
row: number;
|
|
177
|
+
column: number;
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
export interface PerformanceStats {
|
|
181
|
+
averageParseTime: number;
|
|
182
|
+
parseTimes: number[];
|
|
183
|
+
averageQueryTime: number;
|
|
184
|
+
queryTimes: number[];
|
|
185
|
+
}
|