Reproducible in vscode.dev or in VS Code Desktop?
Reproducible in the monaco editor playground?
Monaco Editor Playground Link
https://microsoft.github.io/monaco-editor/playground.html?source=v0.55.1#XQAAAAK3CAAAAAAAAABBqQkHQ5NjdMjwa-jY7SIQ9S7DNlzs5W-mwj0fe1ZCDRFc9ws9XQE0SJE1jc2VKxhaLFIw9vEWSxW3yscxEV6ndHDs_Oo7Xmsqvtmcqcu0QkeA2KlJFL139OKPpM1b9qcAOVt_68CKtqOHbMTQcUaP7mTlFafzQOtXO89b4lptZCA9C8mFAo-VCMFTDsuyjuJqY2WguSmtmEG4Y_uVZmcP9g3ewBAsVT6LH0HGB8BBybJLqPHFkS9nJI8Faino1p9Jno-0CMuh9thQ2tP4imGfp4OC3KoVdyzgray39L8E7oxasNgy96S7trOYHBarYu-jYip2uJOZQWDNWwkL4-ynWxEHfGhunikjT-MzLY2CGx_56k8muMVMFc9tv9H-9CpsLqPT_0CBrGfdsQOHe-LtEbSEgB8NM1v5P9WtX3ySqZG3m6s7CSoOAvx098wPzgmByNpjE0n7nwrItHgYrIpowmpGOvvSYlLia_a_DviNysozNGQgr2AvUk2GBwajX5o4M-TBrv29aUUKJOJ3tcYhUily83Mi0GKP4BUx24aPxbFP4jITS4k7v4O3mWed5ciOPen9XgT27Ap_5nzddrAai3OL3jal_QMj4JxtqEJqxaxZ-GOd6hFvE2Vg3isfKf0a_U82ce3Lz-x5P1OgUnc1S6KA8rPk6YTO8M7z-TIXHzXzzTajLJO9CHlCqq8lTAlspuhPc402iUI7PR2jMu6VC57xjJb3J4-iVmoDHnGdTzA9unMfOsURb6jWyOW4r6e_q8CGMCQ-W6yv46ArHXXcWQQ_Kj_N6YG6pY5qvvjxOUHK2Iu4ns2vB_ei7uQZTdSE8i97ZSC0rEFyEc_TVMP4rcaArn8muHe4OEZoZq1felqeoN__ztghuzyLe1s6LifpqY4T9STXvQKrqA0i0-lzUKOsT44_4povDZZehKRrRNXViDWfrm8Z_mcQBh9teYl4fmNClODb2flMM_A2hKpYjcITCDoNdKSNvW1KG0Wk1iscxT0N6KaH_dR1f43xeERrsQ0UAXXGfaBcVi8hqQO7RfUDd-OOzkg0GBH6ZxlvEpuPwNMRc79kacz9Cvn5JvPa1g4vkP7LB0XhQtb5ySvwIh_mjDtTWBZJZHKyQhlH-pCgKHmbfZ4VKT3FriOJNRWf8e0QxtEH-sDsicgPBb4hchOjrD8B-0lcgrfR_29n81Q88VH3b21ICxPy2cd5Ej4lTbEKuNDxYb2fqdXudif9w5S3Sy6gbPPLfOr5LC14xDT9iYhOooF79TMgzxQVpiQ5HB_-v6QSRx4KvfxnfMQYiDKOHMtic962Cn0DOp2_ME67WuAVKf35kYCVAuoeztb6xCC64y3JVG2_6ugkTxebS0CLOkdTuBqMbAabSHhdfkt3kjH-vJQ_LG_bF_FzmOeYRkiOI__qwJej
Monaco Editor Playground Code
Reproduction Steps
- Register a
DocumentSemanticTokensProvider with multiple adjacent semantic tokens
- Add an inline decoration (
inlineClassName) to the same line
- Place the cursor at a boundary between two semantic tokens
- Type any character
Actual (Problematic) Behavior
Description
When using a custom DocumentSemanticTokensProvider together with inline decorations (inlineClassName),
a rendering glitch occurs at token boundaries if both are present in the same line.
When typing at a semantic token boundary, the inserted character is briefly rendered multiple times
(duplicated) and disappears immediately on the next render cycle.
This happens consistently on every keystroke at a token boundary and only when the line also
contains an inline decoration.
Actual Behavior
When typing at a semantic token boundary, the inserted character is briefly rendered multiple times
(duplicated) in the line. The glitch disappears immediately on the next render cycle.
Expected Behavior
The character is rendered exactly once and immediately at the correct position without any visual glitch.
Additional Context
- The bug only occurs when both conditions are met simultaneously:
- An inline decoration (
inlineClassName) is present in the same line
- The cursor is at a boundary between two adjacent semantic tokens
- Removing either the inline decoration or the semantic tokens eliminates the glitch
- The glitch is purely visual and disappears immediately (single render frame)
- Provider type:
DocumentSemanticTokensProvider (provideDocumentSemanticTokens)
Reproducible in vscode.dev or in VS Code Desktop?
Reproducible in the monaco editor playground?
Monaco Editor Playground Link
https://microsoft.github.io/monaco-editor/playground.html?source=v0.55.1#XQAAAAK3CAAAAAAAAABBqQkHQ5NjdMjwa-jY7SIQ9S7DNlzs5W-mwj0fe1ZCDRFc9ws9XQE0SJE1jc2VKxhaLFIw9vEWSxW3yscxEV6ndHDs_Oo7Xmsqvtmcqcu0QkeA2KlJFL139OKPpM1b9qcAOVt_68CKtqOHbMTQcUaP7mTlFafzQOtXO89b4lptZCA9C8mFAo-VCMFTDsuyjuJqY2WguSmtmEG4Y_uVZmcP9g3ewBAsVT6LH0HGB8BBybJLqPHFkS9nJI8Faino1p9Jno-0CMuh9thQ2tP4imGfp4OC3KoVdyzgray39L8E7oxasNgy96S7trOYHBarYu-jYip2uJOZQWDNWwkL4-ynWxEHfGhunikjT-MzLY2CGx_56k8muMVMFc9tv9H-9CpsLqPT_0CBrGfdsQOHe-LtEbSEgB8NM1v5P9WtX3ySqZG3m6s7CSoOAvx098wPzgmByNpjE0n7nwrItHgYrIpowmpGOvvSYlLia_a_DviNysozNGQgr2AvUk2GBwajX5o4M-TBrv29aUUKJOJ3tcYhUily83Mi0GKP4BUx24aPxbFP4jITS4k7v4O3mWed5ciOPen9XgT27Ap_5nzddrAai3OL3jal_QMj4JxtqEJqxaxZ-GOd6hFvE2Vg3isfKf0a_U82ce3Lz-x5P1OgUnc1S6KA8rPk6YTO8M7z-TIXHzXzzTajLJO9CHlCqq8lTAlspuhPc402iUI7PR2jMu6VC57xjJb3J4-iVmoDHnGdTzA9unMfOsURb6jWyOW4r6e_q8CGMCQ-W6yv46ArHXXcWQQ_Kj_N6YG6pY5qvvjxOUHK2Iu4ns2vB_ei7uQZTdSE8i97ZSC0rEFyEc_TVMP4rcaArn8muHe4OEZoZq1felqeoN__ztghuzyLe1s6LifpqY4T9STXvQKrqA0i0-lzUKOsT44_4povDZZehKRrRNXViDWfrm8Z_mcQBh9teYl4fmNClODb2flMM_A2hKpYjcITCDoNdKSNvW1KG0Wk1iscxT0N6KaH_dR1f43xeERrsQ0UAXXGfaBcVi8hqQO7RfUDd-OOzkg0GBH6ZxlvEpuPwNMRc79kacz9Cvn5JvPa1g4vkP7LB0XhQtb5ySvwIh_mjDtTWBZJZHKyQhlH-pCgKHmbfZ4VKT3FriOJNRWf8e0QxtEH-sDsicgPBb4hchOjrD8B-0lcgrfR_29n81Q88VH3b21ICxPy2cd5Ej4lTbEKuNDxYb2fqdXudif9w5S3Sy6gbPPLfOr5LC14xDT9iYhOooF79TMgzxQVpiQ5HB_-v6QSRx4KvfxnfMQYiDKOHMtic962Cn0DOp2_ME67WuAVKf35kYCVAuoeztb6xCC64y3JVG2_6ugkTxebS0CLOkdTuBqMbAabSHhdfkt3kjH-vJQ_LG_bF_FzmOeYRkiOI__qwJej
Monaco Editor Playground Code
Reproduction Steps
DocumentSemanticTokensProviderwith multiple adjacent semantic tokensinlineClassName) to the same lineActual (Problematic) Behavior
Description
When using a custom
DocumentSemanticTokensProvidertogether with inline decorations (inlineClassName),a rendering glitch occurs at token boundaries if both are present in the same line.
When typing at a semantic token boundary, the inserted character is briefly rendered multiple times
(duplicated) and disappears immediately on the next render cycle.
This happens consistently on every keystroke at a token boundary and only when the line also
contains an inline decoration.
Actual Behavior
When typing at a semantic token boundary, the inserted character is briefly rendered multiple times
(duplicated) in the line. The glitch disappears immediately on the next render cycle.
Expected Behavior
The character is rendered exactly once and immediately at the correct position without any visual glitch.
Additional Context
inlineClassName) is present in the same lineDocumentSemanticTokensProvider(provideDocumentSemanticTokens)