Commit Graph
12 Commits
Author SHA1 Message Date
Daniel ImmsandCursor 17ad33dc3d Remove TypeScript path mappings in favor of relative imports
Fixes https://github.com/xtermjs/xterm.js/issues/5896

TypeScript path mappings for common/*, browser/*, and headless/*
were not rewritten in emitted JavaScript, which forced webpack resolve
aliases and NODE_PATH workarounds so runtime could resolve modules.
That added build complexity and broke tooling such as ESLint import/no-cycle.

Changes:
- Convert ~750 imports across src/, addons/, and test/ to relative paths
- Remove common/browser/headless paths and src catch-all mappings from tsconfigs
  (keep @xterm/addon-* demo and addon typings paths)
- Remove webpack resolve.alias for common, browser, headless, and vs
- Drop NODE_PATH from unit tests, benchmarks, and VS Code launch config
- Fix addon-image IIPImageStorage to import ./Types after removing catch-all *

Verified: npm run build, esbuild, package, package-headless
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 09:16:10 -07:00
Daniel Imms bad7e329df Add @typescript-eslint/prefer-nullish-coalescing eslint rule 2026-01-31 08:43:05 -08:00
jeanp413 97750f672f 💄 2023-12-12 04:41:20 -05:00
jeanp413 54608bf38d Fixes https://github.com/microsoft/vscode/issues/200469 2023-12-12 04:16:28 -05:00
Mihai Parparita a39a468f19 Make terminal rendering work in popout windows
Add support for the parent element (what is passed to Terminal.open)
being in a different (same origin) window. Accesses to DOM APIs such
as requestAnimationFrame and devicePixelRatio thus need to be scoped
to the corrent window, instead of assuming that it's the same as the
window/global scope where the code is running.

This is done by inferring a parent window at the creation time, and
then storing it in CoreBrowserService, which is already passed to most
places that need it.

To catch future regressions, an ESLint rule that checks for global
accesses is added (it uses AST selectors via the no-restricted-syntax
rule).

This should also be applicable when the parent element is an iframe.

Fixes #3758
2022-09-08 16:59:31 -07:00
Megan Rogge de5df69333 share animation frame with renderService (#3796) 2022-05-17 09:52:46 -07:00
Samuel Sampson f1849cafaf Introduce IRenderDebouncer interface, unifying RenderDebouncer and TimeBasedDebouncer types 2021-08-17 20:50:47 +00:00
Samuel Sampson e82f475c9b Separate the regular render debouncer from a Time-Based debouncer to be used to update Screen Readers 2021-07-29 19:57:51 +00:00
Samuel Sampson 12e1e422e3 Update RenderDebouncer to update screen readers once per second instead of once per animation frame. 2021-07-29 19:35:14 +00:00
Daniel Imms f256206fd4 Move Terminal and AccessibilityManager into browser 2020-04-26 10:18:05 -07:00
Daniel Imms c185529ad5 Make sure selection gets redrawn when switching renderers
Fixes #2555
2020-04-25 07:11:43 -07:00
Daniel Imms 6e91875bc4 Rename ui to browser 2019-06-08 16:14:29 -07:00