Daniel Imms and Cursor
4a0cb5ae6b
Add MicrotaskTimer and use it for decoration line index sync
...
Introduce MicrotaskTimer as a TimeoutTimer-style helper that schedules a
single runner via queueMicrotask, with set and cancel but no cancelAndSet.
Use it in DecorationLineCache to batch insert/delete line-index updates after
marker line adjustments, replacing ad-hoc queueMicrotask scheduling.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-26 09:52:53 -07:00
Daniel Imms and Cursor
9e72a4b6d3
Refactor decoration line index into DecorationLineCache
...
Extract the per-line lookup index from DecorationService into an exported
DecorationLineCache class in the same module, with DecorationService listed
first for readability.
Optimize buffer insert/delete maintenance to shift map keys in O(unique
indexed lines) instead of full re-indexing every affected decoration. Only
multi-line decorations that span the mutation point get a full re-index.
Add a direct DecorationLineCache unit test in DecorationService.test.ts.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-26 09:47:11 -07:00
Daniel Imms and Cursor
f484584b70
Speed up decoration cell lookup with a per-line index
...
Refs #5176 .
forEachDecorationAtCell and getDecorationsAtCell previously scanned every
registered decoration on each call. With thousands of search highlights this
becomes O(total decorations) per cell and blocks rendering during viewport
refreshes.
Maintain a Map of buffer line -> decorations that cover that line. Multi-line
decorations are indexed on every line in their span, so mixed single-line and
multi-line workloads stay fast without falling back to a full scan.
Keep the index aligned with buffer mutations:
- Register and unregister decorations in the line buckets on add/dispose.
- On trim, shift line keys synchronously (before marker handlers run).
- On insert/delete, re-index affected decorations in a microtask after marker
line updates are applied.
Inject IBufferService so line listeners follow the active buffer. Add unit
tests for trim, dispose-on-trim, insert, and dense single-line plus multi-line
lookup. Add DecorationService.benchmark.ts to measure sparse hits and
viewport-sized grid scans with 20k decorations.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-26 09:30:25 -07:00
Daniel Imms
80debafa11
Convert a lot of top level consts to const enums
2026-05-02 06:44:25 -07:00
Daniel Imms
16b5da5c4c
Fix assertion, bring back triggerMouseEvent tests
2026-03-11 11:03:17 +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
2331abe6bd
Rename CoreMouseService to MouseStateService
...
Part of #5756
2026-03-11 10:31:57 +09:00
Daniel Imms
eccbc60aa0
Migrate to tsgo
...
Fixes #5689
2026-02-13 06:59:24 -08:00
Daniel Imms
d155bb6767
Move overviewRuler API under scrollbar
...
Fixes #5678
2026-02-05 09:14:58 -08:00
Daniel Imms
3a147e8e10
Merge pull request #5679 from Tyriar/scrollbar
...
Add scrollbar.showScrollbar
2026-02-05 07:28:45 -08:00
Daniel Imms
c2db7d4c8a
Add scrollbar.showScrollbar
...
Fixes #5676
2026-02-05 07:20:23 -08:00
Daniel Imms
2e776c0820
Use ILogService in TaskQueue
2026-02-05 06:40:50 -08:00
Daniel Imms
6ef653e589
Merge remote-tracking branch 'upstream/master' into de_vs
2026-02-03 07:05:50 -08:00
Daniel Imms
8a00898533
Implement blink rendering
...
Fixes #944
2026-02-03 03:46:21 -08:00
Daniel Imms
77695cb405
Make arrows configurable via API
2026-02-02 12:33:33 -08:00
Daniel Imms
bab7db13db
Remove cancelEvent/cancel function
2026-01-31 22:18:32 -08:00
Daniel Imms
9fca3d8ecf
Merge branch 'master' into 5626
2026-01-31 09:12:15 -08:00
Daniel Imms
b30d9c3533
Remove trace decorator and unused platform consts
2026-01-30 07:27:38 -08: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
6f87ae77a7
Support color scheme reporting
...
CSI ? 996 n
CSI ? 2031 h
CSI ? 2031 l
Fixes #5626
2026-01-27 10:19:26 -08:00
meganrogge
a20ff565b0
add showCursorImmediately option
2026-01-13 10:36:35 -06:00
Daniel Imms
ee47054678
Implement win32-input-mode
...
Fixes #2357
2026-01-10 05:27:03 -08:00
Daniel Imms
50b0f3d7ee
Add vtExtensions.kittySgrBoldFaintControl
2026-01-10 04:31:36 -08:00
Daniel Imms
c624a47780
Maintain different buffer flags, stack limit, tests
2026-01-09 11:59:50 -08:00
Daniel Imms
992da3cc4d
Hook up vt extensions option
2026-01-09 07:07:10 -08:00
Daniel Imms
2265fa2ade
Implement kitty keyboard protocol (CSI u)
...
Fixes #4198
2026-01-09 05:59:57 -08:00
Daniel Imms
857c4529cd
Save cursor and restore more modes
...
Fixes #1526
2025-12-30 04:49:54 -08:00
Daniel Imms
9780b44115
Fix decorations with height > 1
...
Fixes #4855
2025-12-29 04:14:56 -08:00
Daniel Imms
ca5a681363
Add quirks setting to control DECSET/DECRST 12
...
Fixes #5314
2025-12-28 07:34:55 -08:00
Daniel Imms
5d24866042
Move customGlyphs option into webgl addon
...
Fixes #5480
2025-12-24 08:35:06 -08:00
Daniel Imms
663b94011a
Remove remnants of deprecated options
...
Following up on #5462
2025-12-23 08:24:35 -08:00
Chris Lloyd and Claude
6b63c5f260
Address PR review feedback for synchronized output
...
- Remove synchronizedOutputTimeout public API, hardcode 1s timeout
- Extract SynchronizedOutputHandler class for cleaner code
- Update spec URL to contour-terminal/vt-extensions
- Remove unnecessary comment in InputHandler
- Delete unit tests, add integration tests in SharedRendererTests
- Fix whitespace issue
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-09 07:58:31 -08:00
Chris Lloyd and Claude
7228e2e2dc
Add synchronized output support (DEC mode 2026)
...
Implement synchronized output mode (CSI ? 2026 h/l) which allows
applications to batch terminal updates and render them atomically,
preventing screen tearing during rapid output.
Features:
- BSU (CSI ? 2026 h) pauses rendering, buffering row updates
- ESU (CSI ? 2026 l) flushes buffer and renders atomically
- Configurable timeout via synchronizedOutputTimeout option (default 5s)
- Exposed via terminal.modes.synchronizedOutputMode
Closes #3375
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-04 11:16:25 -08:00
Daniel Imms
9a7517d3eb
Clear selection on vertical resize
...
Fixes #5300
2025-10-19 01:15:30 -07:00
Anthony Kim
67cf25989a
only send codes, not the data when in trace
2025-10-17 11:26:34 -07:00
Anthony Kim and Daniel Imms
f87e574971
Update src/common/services/CoreService.ts
...
Co-authored-by: Daniel Imms <2193314+Tyriar@users.noreply.github.com >
2025-10-17 11:23:24 -07:00
Anthony Kim
5269462817
Only log character codes for verbose/trace
2025-10-17 10:12:10 -07:00
Daniel Imms
d7d7f1b023
Merge pull request #5391 from Tyriar/tyriar/mouse_events
...
Bring back partial wheel tracking
2025-09-09 18:42:38 -07:00
Anthony Kim
9c42fb348b
ignore fastScrollModifier
2025-09-09 13:21:37 -07:00
Anthony Kim
e4f222f6b0
Make test happy
2025-09-09 12:03:51 -07:00
Anthony Kim
38bee71630
More clear comments
2025-09-09 12:00:19 -07:00
Anthony Kim
1a6a807f68
Remove stale comment
2025-09-09 11:59:29 -07:00
Anthony Kim
03ce26c697
Questions, possible concern
2025-09-09 11:56:28 -07:00
Anthony Kim
cf6b868dfb
fastScrollModifier seems deprecated
2025-09-09 11:51:27 -07:00
Anthony Kim
50df7a69e6
remove unused var
2025-09-08 21:06:37 -07:00
Anthony Kim
26ecba8de1
Fix sluggish mouse problem. Now similar to trackpad
2025-09-08 21:03:05 -07:00
Anthony Kim
ebddd5d346
Move from CoreBrowerTerminal to CoreMouseService. Still slow though
2025-08-28 22:54:50 -07:00
Anthony Kim
a6fdf043ce
Respect original formatting
2025-08-28 08:57:25 -07:00