xtermjs / xterm.js

A terminal for the web
https://xtermjs.org/
MIT License
16.99k stars 1.59k forks source link

Include base/ platform from VS Code, adopt DomScrollableElement and introduce esbuild #5077

Open Tyriar opened 5 days ago

Tyriar commented 5 days ago

Succeeds https://github.com/xtermjs/xterm.js/pull/5076

Tyriar commented 4 days ago

I stopped this briefly to work on some debt and to bring some of the changes here into main in smaller PRs. Doing some tables to better understand where we want to go:

Here is the current main output usage:

Use Path Format Runtime Note
Demo (/ and /test) demo/dist/client-bundle.js bundle browser Used in API/playwright tests
  out/ tsc - Used for core and addons
Unit tests out/ tsc node.js Running in a real browser would be nice
API tests out-test/api/ tsc node.js Removed in #5080
Integration tests out-test/playwright/ tsc node.js
Benchmark out-test/benchmark/ tsc node.js
@xterm/xterm package lib/xterm.js bundle browser
@xterm/headless package headless/lib-headless/xterm-headless.js bundle node.js

And the current output usage on this branch (I think):

Use Path Format Runtime Note
Demo (/ and /test) demo/dist/client-bundle.js bundle browser Used in API/playwright tests
  out-tsc/ tsc - Used for image addon only
  out-esbuild/ esbuild - Used for ligatures addon only
  lib/ esbuild - Used for core and other addons (this might require packaging atm?)
Unit tests out-tsc/ tsc node.js Running in a real browser would be nice
API tests out-tsc/test-api/ tsc node.js
Integration tests out-tsc/test-playwright/ tsc node.js
Benchmark out-tsc/test-benchmark/ tsc node.js
@xterm/xterm package lib/xterm.js bundle browser
@xterm/headless package headless/lib-headless/xterm-headless.js bundle node.js
Tyriar commented 4 days ago

main:

image

Proposal (probably needs a different PR):

image