Commit Graph
63 Commits
Author SHA1 Message Date
Cursor AgentandDaniel Imms 5070a08b58 Move Color to base; slim services/Types; colocate ICoreTerminal
- Restore Color.ts under common/base/ (not services)
- Add base/ColorTypes (IColor, IColorRGB)
- Add terminal/CoreTerminalTypes (ICoreTerminal, IScrollEvent, XtermListener)
- Add terminal/InputHandlerTypes and input/WindowOptions for handler types
- services/Types.ts: service-only (modes, mouse, osc link, cursor styles)
- Update imports across src, addons, browser; re-export KeyboardResultType removed
- browser tsconfig: exclude unit tests from composite build

Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com>
2026-05-30 17:45:15 +00:00
Cursor AgentandDaniel Imms 1d125ac715 Restructure common into layered folders (issue #5963)
Reorganize src/common into platform (base, encoding, data, buffer,
parser, input), integration (services, terminal), and public API layers.

- Move core utilities to common/base/
- Move TextDecoder to common/encoding/
- Move Types, CircularList, Color, TaskQueue, SortedList to common/services/
- Move CoreTerminal, InputHandler, WindowsMode to common/terminal/
- Define ICharset in common/data/Charsets.ts (re-exported from Types)
- Update imports across src/, addons/, and test/
- Add per-layer tsconfig.json files and REARCHITECTURE.md
- Root common/tsconfig.json remains the composite build entry

Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com>
2026-05-30 16:12:18 +00:00
Daniel Imms 6813fc175e Merge remote-tracking branch 'upstream/master' into 5377_scroll 2026-03-11 12:15:59 +09:00
Daniel Imms 5f3a4646be Move non-state methods into MouseService
Fixes #5756
2026-03-11 10:49:55 +09:00
Daniel Imms d63445be94 Move custom mouse event handler into MouseStateService
Don't need to keep it in CoreBrowserTerminal
2026-03-11 10:36:35 +09:00
Daniel Imms c727240f16 Fix cyclic dependency
Linkifier -> MouseService -> SelectionService -> Linkifier
2026-03-11 10:23:38 +09:00
Daniel Imms 649ce22081 Move bindMouse into MouseService
Fixes #5754
2026-03-11 10:10:13 +09:00
Daniel Imms f80dbf3d03 Fix lint, split up namespace and interface 2026-01-30 06:21:15 -08:00
Daniel Imms e8d99d50a6 Remove vs dependency in common
Fixes #5631
2026-01-30 06:03:16 -08:00
Daniel Imms afc6f0b7eb Fix caps not working in win32InputMode
Part of #2357
2026-01-11 09:00:08 -08:00
Daniel Imms ec78500f86 Create IKeyboardService 2026-01-10 04:19:23 -08:00
Daniel Imms 2fb42c554e Force reset to use sync render
Fixes #5184
2025-12-28 15:16:23 -08:00
Daniel Imms 9c7e2ea98e Remove IEvent and runAndSubscribe 2024-07-14 08:17:16 -07:00
Daniel Imms 8733d2cfa2 Separate link provider service from linkifier 2023-12-23 08:21:35 -08:00
Daniel Imms 4cc51ca08f Move ScreenDprMonitor into CoreBrowserService 2023-10-17 08:55:07 -07:00
Daniel Imms 45605db3c5 Listen to window change and pass through to ScreenDprMonitor 2023-10-17 08:39:48 -07:00
Daniel Imms c80453f602 Use correct document when creating elements 2023-10-16 11:09:36 -07:00
Daniel Imms 5660c404f0 Differentiate special color indexes and others 2023-07-28 16:32:05 -07:00
Daniel Imms 4dee0c5d4b Build out theme service more 2022-10-08 12:15:21 -07:00
Daniel Imms c4750eaf77 Create basic theme service
Part of #4184
2022-10-08 11:43:19 -07:00
Daniel Imms eecf52e949 Add lint rule to ensure on prefix is only for event emitters
Fixes #4183
2022-10-08 10:57:31 -07:00
Daniel Imms ffa4d921bb Merge remote-tracking branch 'upstream/master' into renderer_before_open 2022-10-07 10:10:24 -07:00
Daniel Imms d669c6e9d6 Fix remaining references 2022-10-01 18:03:43 -07:00
Daniel Imms 693d09cbad Allow setting renderer addon before open is called 2022-09-24 14:41:48 -07: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
Jörg Breitbart ef1b773fd7 fix pixel to cell offsets 2022-09-01 12:35:44 +02:00
Jörg Breitbart 06d6e08347 sgr_pixels mouse report 2022-09-01 00:50:11 +02:00
Daniel Imms 4a6e7bee21 Fix lgtm recommendations 2022-08-30 14:09:39 -07:00
Daniel Imms 09ae3a9b44 Remove sound service and simplify bell 2022-07-27 05:55:00 -07:00
Daniel Imms 59e1bddb6e Merge branch 'master' into 3810 2022-05-17 11:43:06 -07:00
Megan Rogge a5f2ea336e update search results onBufferContentsChange (#3811) 2022-05-17 10:00:55 -07:00
Megan Rogge de5df69333 share animation frame with renderService (#3796) 2022-05-17 09:52:46 -07:00
Daniel Imms eb96187801 Support selectionForeground in dom
Part of #3810
2022-05-16 10:08:51 -07:00
Daniel Imms 3d41f028e4 Layout dimension left/right after renderer dims change
Fixes #3773
2022-05-11 10:12:48 -07:00
meganrogge 1f60a398b2 on render, fire when height has changed (was 0) 2022-03-22 15:04:22 -04:00
Daniel Imms c8d1266f0a Fix buffer decoration onRender, start using internal decoration 2022-03-14 15:24:53 -07:00
meganrogge ced06629d4 large refactor, broken 2022-03-14 15:11:20 -04:00
meganrogge 98a03dd477 re-arrange dom structure 2022-03-11 17:15:11 -05:00
meganrogge cfd7912afa enable registering a decoration before attach to dom has happened 2022-03-09 08:40:40 -06:00
meganrogge d46a685925 more cleanup 2022-03-08 20:49:32 -06:00
meganrogge 4350c7ffcd get it to work 2022-03-08 16:23:51 -06:00
meganrogge ae958c2b12 fix the problem 2022-02-08 21:41:26 -06:00
meganrogge f2991a5636 cleanup 2022-02-08 21:10:34 -06:00
meganrogge 3e5ecbf52b more formatting 2022-02-08 14:23:59 -06:00
meganrogge 01b66b756f revert formatting changes 2022-02-08 14:22:37 -06:00
meganrogge 19b9d0eadd cleanup 2022-02-08 12:05:38 -06:00
meganrogge cae9f44f5c remove mention of buffer 2022-02-08 11:45:22 -06:00
meganrogge 49085bbd5b use decorations service instead of decorations render layer 2022-02-02 20:51:28 -06:00
meganrogge c5a0711f84 clean up 2022-01-31 12:53:07 -06:00
meganrogge ebdd07b8ae get button to work 2022-01-29 00:07:51 -06:00