Question:
VS Code version: Code - Insiders 1.84.0-insider (, 2023-10-27T10:41:08.734Z) OS version: WindowsNT x64 10.0. Try applying these variables using the environment collection API: Even though screenshot says they're applied as expected: ! equal sign is stripped from the end when printing the value: ! <details<summaryOriginal bug report </summary<pfrom dotenv import loaddotenv; import os with open(".env", "r") as f: f.readlines() ("TESTKEY") ("TESTKEY2") ("TESTKEY3") ("TESTKEY_4") envFile: "<placeholder" venvPath: "<placeholder" venvFolders: "<placeholder" languageServer: "Pylance" testing • unittestEnabled: true experiments • optInto: ["pythonTerminalEnvVarActivation"] </p</details
! Showing the environment variables have the '=' after I unset Python: Env File ! Showing the environment variables do not have '=' sign if loaded from the Python extension
Thanks for the bug report! We investigate issues in order based on priority and severity, which includes the impact it has on your ability to use the extension to do productive work, and the number of people affected. If other users come forward and leave a comment demonstrating they are seeing/reproducing the problem then we will raise this issue's priority. Thanks for understanding and the patience!
Thank you. I'm adding some more information if it can be useful in finding the problem. I cleared the python extension cache after re-setting the "Env File" setting, because I noticed it was loading a cached value. ! Note that when reading here in the trace log, the environment variable KEY2 has the equal sign at the end, and it's in a different color. The equal sign is also in the output of ".vscode-insiders/extensions/ms-" As far as I can tell the parsing code at is correct, and captures all the equal signs in the key. Hence the sign appears in all of the logs in the output tab, it's just not there in the terminal and/or python if the .env file is loaded by the extension: ! Last, I don't know if it's related, I'm getting the following debug messages from the Pylance extension:
Thanks, I'm able to reproduce it. Looks like an issue with environment collection API in VS Code itself, hence transferring.
This makes sense as we currently split on and so those characters won't work currently when applied via shell integration: For pwsh:
I have this issue too. I noticed if I run my backend server (which takes a secret key from the .env file) in my system terminal it behaves as expected, but if I run it in the vscode terminal it truncates the key after the equals sign in the key. This broke my backend! Please fix this. Thanks.
I face this issue too. Waiting for fixing. Thanks As a potential workaround, you can run the command directly from the terminal after every .env file changes for each terminal window
I am having the same issue when the project is setup for a C++ python extension with leak sanitizers. This requires to the sanitizer library and disable leak detection via . Unfortunately, in the terminal only remains which yields to a unusable terminal due to See
I am also experiencing this issue with a Django Secret key containing an '=' sign and would appreciate a fix. I can work around it, but it's not ideal since this runs counter to the expected behavior and how the command behaves. Thank you.
This so frustrating. I had my code working perfectly I was testing the whole day and then suddenly it broke. I spent hours figuring it out. I managed to debug it and found that the == signs in the .env variables were stripped out. I was so confused why did it work earlier and then I realised that a new version of VS Code was installed today. Did it break my code?Not 100% sure . Anyway VS Code is awesome. But the lesson of the day : stable environment . Don't update it constantly.
I'm facing the same issue. Here are some potential clues based on my project: it only occurs in the init constructor for a class. The class is located in a .py that is in a different folder than the .env. The error occurs when the code is invoked from an api endpoint but works fine otherwise. I tried making adjustments by setting the .env path explicitly but no luck. Please help.
Adding my use case: Azure services often have a connection string that's used when coding some integration and said strings usually have the '=' in them, For me, the problem can be mitigated if I leave the python.envFile config value empty, but it is a bit annoying that this "automatic" feature is somewhat hidden
Can confirm that I am also seeing this behavior in the exact same situation. VSCode Terminal - drops "=" ! Plain Terminal - returns correct !
Verification steps: Create an extension that does: Debug the extension Activate it Open a powershell terminal Run , ensure that it prints Repeat the same in a bash terminal but run
This still had an issue for fish shell which should be fixed in To verify, repeat steps above but for fish.
verified bash/fish/zsh

IFS=':' read -ra ADDR <<< "$VSCODE_ENV_PREPEND" for ITEM in "${ADDR[@]}"; do VARNAME="$(echo $ITEM | cut -d "=" -f 1)" <del> VALUE="$(echo -e "$ITEM" | cut -d "=" -f 2)" </del> <ins> VALUE="$(echo -e "$ITEM" | cut -d "=" -f 2-)" </ins> export $VARNAME="$VALUE${!VARNAME}" done builtin unset VSCODE_ENV_PREPEND


Question:
VS Code version: Code - Insiders 1.84.0-insider (, 2023-10-27T10:41:08.734Z) OS version: WindowsNT x64 10.0. Try applying these variables using the environment collection API: Even though screenshot says they're applied as expected: ! equal sign is stripped from the end when printing the value: ! <details<summaryOriginal bug report </summary<pfrom dotenv import loaddotenv; import os with open(".env", "r") as f: f.readlines() ("TESTKEY") ("TESTKEY2") ("TESTKEY3") ("TESTKEY_4") envFile: "<placeholder" venvPath: "<placeholder" venvFolders: "<placeholder" languageServer: "Pylance" testing • unittestEnabled: true experiments • optInto: ["pythonTerminalEnvVarActivation"] </p</details
! Showing the environment variables have the '=' after I unset Python: Env File ! Showing the environment variables do not have '=' sign if loaded from the Python extension
Thanks for the bug report! We investigate issues in order based on priority and severity, which includes the impact it has on your ability to use the extension to do productive work, and the number of people affected. If other users come forward and leave a comment demonstrating they are seeing/reproducing the problem then we will raise this issue's priority. Thanks for understanding and the patience!
Thank you. I'm adding some more information if it can be useful in finding the problem. I cleared the python extension cache after re-setting the "Env File" setting, because I noticed it was loading a cached value. ! Note that when reading here in the trace log, the environment variable KEY2 has the equal sign at the end, and it's in a different color. The equal sign is also in the output of ".vscode-insiders/extensions/ms-" As far as I can tell the parsing code at is correct, and captures all the equal signs in the key. Hence the sign appears in all of the logs in the output tab, it's just not there in the terminal and/or python if the .env file is loaded by the extension: ! Last, I don't know if it's related, I'm getting the following debug messages from the Pylance extension:
Thanks, I'm able to reproduce it. Looks like an issue with environment collection API in VS Code itself, hence transferring.
This makes sense as we currently split on and so those characters won't work currently when applied via shell integration: For pwsh:
I have this issue too. I noticed if I run my backend server (which takes a secret key from the .env file) in my system terminal it behaves as expected, but if I run it in the vscode terminal it truncates the key after the equals sign in the key. This broke my backend! Please fix this. Thanks.
I face this issue too. Waiting for fixing. Thanks As a potential workaround, you can run the command directly from the terminal after every .env file changes for each terminal window
I am having the same issue when the project is setup for a C++ python extension with leak sanitizers. This requires to the sanitizer library and disable leak detection via . Unfortunately, in the terminal only remains which yields to a unusable terminal due to See
I am also experiencing this issue with a Django Secret key containing an '=' sign and would appreciate a fix. I can work around it, but it's not ideal since this runs counter to the expected behavior and how the command behaves. Thank you.
This so frustrating. I had my code working perfectly I was testing the whole day and then suddenly it broke. I spent hours figuring it out. I managed to debug it and found that the == signs in the .env variables were stripped out. I was so confused why did it work earlier and then I realised that a new version of VS Code was installed today. Did it break my code?Not 100% sure . Anyway VS Code is awesome. But the lesson of the day : stable environment . Don't update it constantly.
I'm facing the same issue. Here are some potential clues based on my project: it only occurs in the init constructor for a class. The class is located in a .py that is in a different folder than the .env. The error occurs when the code is invoked from an api endpoint but works fine otherwise. I tried making adjustments by setting the .env path explicitly but no luck. Please help.
Adding my use case: Azure services often have a connection string that's used when coding some integration and said strings usually have the '=' in them, For me, the problem can be mitigated if I leave the python.envFile config value empty, but it is a bit annoying that this "automatic" feature is somewhat hidden
Can confirm that I am also seeing this behavior in the exact same situation. VSCode Terminal - drops "=" ! Plain Terminal - returns correct !
Verification steps: Create an extension that does: Debug the extension Activate it Open a powershell terminal Run , ensure that it prints Repeat the same in a bash terminal but run
This still had an issue for fish shell which should be fixed in To verify, repeat steps above but for fish.
verified bash/fish/zsh

IFS=':' read -ra ADDR <<< "$VSCODE_ENV_APPEND" for ITEM in "${ADDR[@]}"; do VARNAME="$(echo $ITEM | cut -d "=" -f 1)" <del> VALUE="$(echo -e "$ITEM" | cut -d "=" -f 2)" </del> <ins> VALUE="$(echo -e "$ITEM" | cut -d "=" -f 2-)" </ins> export $VARNAME="${!VARNAME}$VALUE" done builtin unset VSCODE_ENV_APPEND


Question:
VS Code version: Code - Insiders 1.84.0-insider (, 2023-10-27T10:41:08.734Z) OS version: WindowsNT x64 10.0. Try applying these variables using the environment collection API: Even though screenshot says they're applied as expected: ! equal sign is stripped from the end when printing the value: ! <details<summaryOriginal bug report </summary<pfrom dotenv import loaddotenv; import os with open(".env", "r") as f: f.readlines() ("TESTKEY") ("TESTKEY2") ("TESTKEY3") ("TESTKEY_4") envFile: "<placeholder" venvPath: "<placeholder" venvFolders: "<placeholder" languageServer: "Pylance" testing • unittestEnabled: true experiments • optInto: ["pythonTerminalEnvVarActivation"] </p</details
! Showing the environment variables have the '=' after I unset Python: Env File ! Showing the environment variables do not have '=' sign if loaded from the Python extension
Thanks for the bug report! We investigate issues in order based on priority and severity, which includes the impact it has on your ability to use the extension to do productive work, and the number of people affected. If other users come forward and leave a comment demonstrating they are seeing/reproducing the problem then we will raise this issue's priority. Thanks for understanding and the patience!
Thank you. I'm adding some more information if it can be useful in finding the problem. I cleared the python extension cache after re-setting the "Env File" setting, because I noticed it was loading a cached value. ! Note that when reading here in the trace log, the environment variable KEY2 has the equal sign at the end, and it's in a different color. The equal sign is also in the output of ".vscode-insiders/extensions/ms-" As far as I can tell the parsing code at is correct, and captures all the equal signs in the key. Hence the sign appears in all of the logs in the output tab, it's just not there in the terminal and/or python if the .env file is loaded by the extension: ! Last, I don't know if it's related, I'm getting the following debug messages from the Pylance extension:
Thanks, I'm able to reproduce it. Looks like an issue with environment collection API in VS Code itself, hence transferring.
This makes sense as we currently split on and so those characters won't work currently when applied via shell integration: For pwsh:
I have this issue too. I noticed if I run my backend server (which takes a secret key from the .env file) in my system terminal it behaves as expected, but if I run it in the vscode terminal it truncates the key after the equals sign in the key. This broke my backend! Please fix this. Thanks.
I face this issue too. Waiting for fixing. Thanks As a potential workaround, you can run the command directly from the terminal after every .env file changes for each terminal window
I am having the same issue when the project is setup for a C++ python extension with leak sanitizers. This requires to the sanitizer library and disable leak detection via . Unfortunately, in the terminal only remains which yields to a unusable terminal due to See
I am also experiencing this issue with a Django Secret key containing an '=' sign and would appreciate a fix. I can work around it, but it's not ideal since this runs counter to the expected behavior and how the command behaves. Thank you.
This so frustrating. I had my code working perfectly I was testing the whole day and then suddenly it broke. I spent hours figuring it out. I managed to debug it and found that the == signs in the .env variables were stripped out. I was so confused why did it work earlier and then I realised that a new version of VS Code was installed today. Did it break my code?Not 100% sure . Anyway VS Code is awesome. But the lesson of the day : stable environment . Don't update it constantly.
I'm facing the same issue. Here are some potential clues based on my project: it only occurs in the init constructor for a class. The class is located in a .py that is in a different folder than the .env. The error occurs when the code is invoked from an api endpoint but works fine otherwise. I tried making adjustments by setting the .env path explicitly but no luck. Please help.
Adding my use case: Azure services often have a connection string that's used when coding some integration and said strings usually have the '=' in them, For me, the problem can be mitigated if I leave the python.envFile config value empty, but it is a bit annoying that this "automatic" feature is somewhat hidden
Can confirm that I am also seeing this behavior in the exact same situation. VSCode Terminal - drops "=" ! Plain Terminal - returns correct !
Verification steps: Create an extension that does: Debug the extension Activate it Open a powershell terminal Run , ensure that it prints Repeat the same in a bash terminal but run
This still had an issue for fish shell which should be fixed in To verify, repeat steps above but for fish.
verified bash/fish/zsh

if ($env:VSCODE_ENV_REPLACE) { $Split = $env:VSCODE_ENV_REPLACE.Split(":") foreach ($Item in $Split) { <del> $Inner = $Item.Split('=') </del> <ins> $Inner = $Item.Split('=', 2) </ins> [Environment]::SetEnvironmentVariable($Inner[0], $Inner[1].Replace('x3a', ':')) } $env:VSCODE_ENV_REPLACE = $null


Question:
VS Code version: Code - Insiders 1.84.0-insider (, 2023-10-27T10:41:08.734Z) OS version: WindowsNT x64 10.0. Try applying these variables using the environment collection API: Even though screenshot says they're applied as expected: ! equal sign is stripped from the end when printing the value: ! <details<summaryOriginal bug report </summary<pfrom dotenv import loaddotenv; import os with open(".env", "r") as f: f.readlines() ("TESTKEY") ("TESTKEY2") ("TESTKEY3") ("TESTKEY_4") envFile: "<placeholder" venvPath: "<placeholder" venvFolders: "<placeholder" languageServer: "Pylance" testing • unittestEnabled: true experiments • optInto: ["pythonTerminalEnvVarActivation"] </p</details
! Showing the environment variables have the '=' after I unset Python: Env File ! Showing the environment variables do not have '=' sign if loaded from the Python extension
Thanks for the bug report! We investigate issues in order based on priority and severity, which includes the impact it has on your ability to use the extension to do productive work, and the number of people affected. If other users come forward and leave a comment demonstrating they are seeing/reproducing the problem then we will raise this issue's priority. Thanks for understanding and the patience!
Thank you. I'm adding some more information if it can be useful in finding the problem. I cleared the python extension cache after re-setting the "Env File" setting, because I noticed it was loading a cached value. ! Note that when reading here in the trace log, the environment variable KEY2 has the equal sign at the end, and it's in a different color. The equal sign is also in the output of ".vscode-insiders/extensions/ms-" As far as I can tell the parsing code at is correct, and captures all the equal signs in the key. Hence the sign appears in all of the logs in the output tab, it's just not there in the terminal and/or python if the .env file is loaded by the extension: ! Last, I don't know if it's related, I'm getting the following debug messages from the Pylance extension:
Thanks, I'm able to reproduce it. Looks like an issue with environment collection API in VS Code itself, hence transferring.
This makes sense as we currently split on and so those characters won't work currently when applied via shell integration: For pwsh:
I have this issue too. I noticed if I run my backend server (which takes a secret key from the .env file) in my system terminal it behaves as expected, but if I run it in the vscode terminal it truncates the key after the equals sign in the key. This broke my backend! Please fix this. Thanks.
I face this issue too. Waiting for fixing. Thanks As a potential workaround, you can run the command directly from the terminal after every .env file changes for each terminal window
I am having the same issue when the project is setup for a C++ python extension with leak sanitizers. This requires to the sanitizer library and disable leak detection via . Unfortunately, in the terminal only remains which yields to a unusable terminal due to See
I am also experiencing this issue with a Django Secret key containing an '=' sign and would appreciate a fix. I can work around it, but it's not ideal since this runs counter to the expected behavior and how the command behaves. Thank you.
This so frustrating. I had my code working perfectly I was testing the whole day and then suddenly it broke. I spent hours figuring it out. I managed to debug it and found that the == signs in the .env variables were stripped out. I was so confused why did it work earlier and then I realised that a new version of VS Code was installed today. Did it break my code?Not 100% sure . Anyway VS Code is awesome. But the lesson of the day : stable environment . Don't update it constantly.
I'm facing the same issue. Here are some potential clues based on my project: it only occurs in the init constructor for a class. The class is located in a .py that is in a different folder than the .env. The error occurs when the code is invoked from an api endpoint but works fine otherwise. I tried making adjustments by setting the .env path explicitly but no luck. Please help.
Adding my use case: Azure services often have a connection string that's used when coding some integration and said strings usually have the '=' in them, For me, the problem can be mitigated if I leave the python.envFile config value empty, but it is a bit annoying that this "automatic" feature is somewhat hidden
Can confirm that I am also seeing this behavior in the exact same situation. VSCode Terminal - drops "=" ! Plain Terminal - returns correct !
Verification steps: Create an extension that does: Debug the extension Activate it Open a powershell terminal Run , ensure that it prints Repeat the same in a bash terminal but run
This still had an issue for fish shell which should be fixed in To verify, repeat steps above but for fish.
verified bash/fish/zsh

if ($env:VSCODE_ENV_PREPEND) { $Split = $env:VSCODE_ENV_PREPEND.Split(":") foreach ($Item in $Split) { <del> $Inner = $Item.Split('=') </del> <ins> $Inner = $Item.Split('=', 2) </ins> [Environment]::SetEnvironmentVariable($Inner[0], $Inner[1].Replace('x3a', ':') + [Environment]::GetEnvironmentVariable($Inner[0])) } $env:VSCODE_ENV_PREPEND = $null


Question:
VS Code version: Code - Insiders 1.84.0-insider (, 2023-10-27T10:41:08.734Z) OS version: WindowsNT x64 10.0. Try applying these variables using the environment collection API: Even though screenshot says they're applied as expected: ! equal sign is stripped from the end when printing the value: ! <details<summaryOriginal bug report </summary<pfrom dotenv import loaddotenv; import os with open(".env", "r") as f: f.readlines() ("TESTKEY") ("TESTKEY2") ("TESTKEY3") ("TESTKEY_4") envFile: "<placeholder" venvPath: "<placeholder" venvFolders: "<placeholder" languageServer: "Pylance" testing • unittestEnabled: true experiments • optInto: ["pythonTerminalEnvVarActivation"] </p</details
! Showing the environment variables have the '=' after I unset Python: Env File ! Showing the environment variables do not have '=' sign if loaded from the Python extension
Thanks for the bug report! We investigate issues in order based on priority and severity, which includes the impact it has on your ability to use the extension to do productive work, and the number of people affected. If other users come forward and leave a comment demonstrating they are seeing/reproducing the problem then we will raise this issue's priority. Thanks for understanding and the patience!
Thank you. I'm adding some more information if it can be useful in finding the problem. I cleared the python extension cache after re-setting the "Env File" setting, because I noticed it was loading a cached value. ! Note that when reading here in the trace log, the environment variable KEY2 has the equal sign at the end, and it's in a different color. The equal sign is also in the output of ".vscode-insiders/extensions/ms-" As far as I can tell the parsing code at is correct, and captures all the equal signs in the key. Hence the sign appears in all of the logs in the output tab, it's just not there in the terminal and/or python if the .env file is loaded by the extension: ! Last, I don't know if it's related, I'm getting the following debug messages from the Pylance extension:
Thanks, I'm able to reproduce it. Looks like an issue with environment collection API in VS Code itself, hence transferring.
This makes sense as we currently split on and so those characters won't work currently when applied via shell integration: For pwsh:
I have this issue too. I noticed if I run my backend server (which takes a secret key from the .env file) in my system terminal it behaves as expected, but if I run it in the vscode terminal it truncates the key after the equals sign in the key. This broke my backend! Please fix this. Thanks.
I face this issue too. Waiting for fixing. Thanks As a potential workaround, you can run the command directly from the terminal after every .env file changes for each terminal window
I am having the same issue when the project is setup for a C++ python extension with leak sanitizers. This requires to the sanitizer library and disable leak detection via . Unfortunately, in the terminal only remains which yields to a unusable terminal due to See
I am also experiencing this issue with a Django Secret key containing an '=' sign and would appreciate a fix. I can work around it, but it's not ideal since this runs counter to the expected behavior and how the command behaves. Thank you.
This so frustrating. I had my code working perfectly I was testing the whole day and then suddenly it broke. I spent hours figuring it out. I managed to debug it and found that the == signs in the .env variables were stripped out. I was so confused why did it work earlier and then I realised that a new version of VS Code was installed today. Did it break my code?Not 100% sure . Anyway VS Code is awesome. But the lesson of the day : stable environment . Don't update it constantly.
I'm facing the same issue. Here are some potential clues based on my project: it only occurs in the init constructor for a class. The class is located in a .py that is in a different folder than the .env. The error occurs when the code is invoked from an api endpoint but works fine otherwise. I tried making adjustments by setting the .env path explicitly but no luck. Please help.
Adding my use case: Azure services often have a connection string that's used when coding some integration and said strings usually have the '=' in them, For me, the problem can be mitigated if I leave the python.envFile config value empty, but it is a bit annoying that this "automatic" feature is somewhat hidden
Can confirm that I am also seeing this behavior in the exact same situation. VSCode Terminal - drops "=" ! Plain Terminal - returns correct !
Verification steps: Create an extension that does: Debug the extension Activate it Open a powershell terminal Run , ensure that it prints Repeat the same in a bash terminal but run
This still had an issue for fish shell which should be fixed in To verify, repeat steps above but for fish.
verified bash/fish/zsh

if ($env:VSCODE_ENV_APPEND) { $Split = $env:VSCODE_ENV_APPEND.Split(":") foreach ($Item in $Split) { <del> $Inner = $Item.Split('=') </del> <ins> $Inner = $Item.Split('=', 2) </ins> [Environment]::SetEnvironmentVariable($Inner[0], [Environment]::GetEnvironmentVariable($Inner[0]) + $Inner[1].Replace('x3a', ':')) } $env:VSCODE_ENV_APPEND = $null


Question:
There is a strange issue in vs code when i split the window, and click on any code or syntax , it will highlight similar code/syntax but the highlig ht is persistent, it wont go away, it works fine in the first window but when it gets split to the right it doesnt work if i click anywhere else in the window, in the left side the currentCrew is highlighted now, it just wont clear. sys info Version: 1.84.2 (Universal) Commit: Date: 2023-11-09T10:52:33.687Z (1 wk ago) Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: Darwin x64 21.6.0 <img width="1680" alt="Screen Shot 2023-11-22 at 9 42 52 AM" src=""
could you help with triaging this issue? Thanks!

private _removeAllDecorations(): void { const currentEditors = this.codeEditorService.listCodeEditors(); <ins> const deleteURI = []; </ins> // iterate over editors and store models in currentModels for (const editor of currentEditors) { if (!editor.hasModel()) {


Question:
There is a strange issue in vs code when i split the window, and click on any code or syntax , it will highlight similar code/syntax but the highlig ht is persistent, it wont go away, it works fine in the first window but when it gets split to the right it doesnt work if i click anywhere else in the window, in the left side the currentCrew is highlighted now, it just wont clear. sys info Version: 1.84.2 (Universal) Commit: Date: 2023-11-09T10:52:33.687Z (1 wk ago) Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: Darwin x64 21.6.0 <img width="1680" alt="Screen Shot 2023-11-22 at 9 42 52 AM" src=""
could you help with triaging this issue? Thanks!

} editor.removeDecorations(currentDecorationIDs); <del> WordHighlighter.storedDecorations.delete(editor.getModel().uri); </del> <ins> deleteURI.push(editor.getModel().uri); </ins> const editorHighlighterContrib = WordHighlighterContribution.get(editor); if (!editorHighlighterContrib?.wordHighlighter) {


Question:
There is a strange issue in vs code when i split the window, and click on any code or syntax , it will highlight similar code/syntax but the highlig ht is persistent, it wont go away, it works fine in the first window but when it gets split to the right it doesnt work if i click anywhere else in the window, in the left side the currentCrew is highlighted now, it just wont clear. sys info Version: 1.84.2 (Universal) Commit: Date: 2023-11-09T10:52:33.687Z (1 wk ago) Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: Darwin x64 21.6.0 <img width="1680" alt="Screen Shot 2023-11-22 at 9 42 52 AM" src=""
could you help with triaging this issue? Thanks!

editorHighlighterContrib.wordHighlighter._hasWordHighlights.set(false); } } <ins> for (const uri of deleteURI) { WordHighlighter.storedDecorations.delete(uri); } </ins> } private _stopSingular(): void { // Remove any existing decorations + a possible query, and re - run to update decorations this._removeSingleDecorations(); <del> if (this.editor.hasWidgetFocus()) { </del> <ins> if (this.editor.hasTextFocus()) { </ins> if (this.editor.getModel()?.uri.scheme !== Schemas.vscodeNotebookCell && WordHighlighter.query?.modelInfo?.model.uri.scheme !== Schemas.vscodeNotebookCell) { // clear query if focused non-nb editor WordHighlighter.query = null; this._run();


Question:
There is a strange issue in vs code when i split the window, and click on any code or syntax , it will highlight similar code/syntax but the highlig ht is persistent, it wont go away, it works fine in the first window but when it gets split to the right it doesnt work if i click anywhere else in the window, in the left side the currentCrew is highlighted now, it just wont clear. sys info Version: 1.84.2 (Universal) Commit: Date: 2023-11-09T10:52:33.687Z (1 wk ago) Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: Darwin x64 21.6.0 <img width="1680" alt="Screen Shot 2023-11-22 at 9 42 52 AM" src=""
could you help with triaging this issue? Thanks!

} } <del> private _stopAll(): void { </del> <ins> private _stopAll() { </ins> // Remove any existing decorations <del> // TODO: @Yoyokrazy - this triggers as notebooks scroll, causing highlights to disappear momentarily. </del> <ins> // TODO: @Yoyokrazy -- this triggers as notebooks scroll, causing highlights to disappear momentarily. // maybe a nb type check? </ins> this._removeAllDecorations(); // Cancel any renderDecorationsTimer


Question:
There is a strange issue in vs code when i split the window, and click on any code or syntax , it will highlight similar code/syntax but the highlig ht is persistent, it wont go away, it works fine in the first window but when it gets split to the right it doesnt work if i click anywhere else in the window, in the left side the currentCrew is highlighted now, it just wont clear. sys info Version: 1.84.2 (Universal) Commit: Date: 2023-11-09T10:52:33.687Z (1 wk ago) Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: Darwin x64 21.6.0 <img width="1680" alt="Screen Shot 2023-11-22 at 9 42 52 AM" src=""
could you help with triaging this issue? Thanks!

// a) there is no stored query model, but there is a word. This signals the editor that drove the highlight is disposed (cell out of viewport, etc) // b) the queried model is not the current model. This signals that the editor that drove the highlight is still in the viewport, but we are highlighting a different cell // otherwise, we send null in place of the word, and the model and selection are used to compute the word <ins> // TODO: @Yoyokrazy -- investigate this logic for sendWord </ins> const sendWord = (!WordHighlighter.query.modelInfo && WordHighlighter.query.word) || (WordHighlighter.query.modelInfo?.model.uri !== this.model.uri) ? true : false;


Question:
There is a strange issue in vs code when i split the window, and click on any code or syntax , it will highlight similar code/syntax but the highlig ht is persistent, it wont go away, it works fine in the first window but when it gets split to the right it doesnt work if i click anywhere else in the window, in the left side the currentCrew is highlighted now, it just wont clear. sys info Version: 1.84.2 (Universal) Commit: Date: 2023-11-09T10:52:33.687Z (1 wk ago) Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: Darwin x64 21.6.0 <img width="1680" alt="Screen Shot 2023-11-22 at 9 42 52 AM" src=""
could you help with triaging this issue? Thanks!

const newDocumentHighlights = this.workerRequestValue.get(uri); if (newDocumentHighlights) { for (const highlight of newDocumentHighlights) { <ins> if (!highlight.range) { continue; } </ins> newDecorations.push({ range: highlight.range, options: getHighlightDecorationOptions(highlight.kind)


Question:
So that you know that you are debugging. //cc
I'm not sure on this, personally I would find it kind of annoying to have the toolbar on all windows. Maybe it's a setting, or can be dragged between windows? (Is there reusable cross-window drag logic yet?)
To clarify: not visible on all windows at the same time, but visible on the window that has focus maybe? Otherwise, it will be quite hard to step through a file using mouse in floating windows?
I think having it appear in the active window (when in floating mode) is good.
We solved this issue for quick open where we also want to appear it at the window that has focus. For that, there is which will always be the right container to put global UI elements and is derived from the currently active window. There is a event that can be used to reparent the UI element live.
Thanks!!!
Verification: Start debugging, and drag an editor out to an aux window Make sure the debug toolbar appears on whichever window has focus The debug toolbar should reappear in the same place per-window as you focus it

import * as arrays from 'vs/base/common/arrays'; import { RunOnceScheduler } from 'vs/base/common/async'; import * as errors from 'vs/base/common/errors'; <del> import { DisposableStore, dispose, IDisposable } from 'vs/base/common/lifecycle'; </del> <ins> import { DisposableStore, dispose, IDisposable, MutableDisposable } from 'vs/base/common/lifecycle'; </ins> import { URI } from 'vs/base/common/uri'; import 'vs/css!./media/debugToolBar'; import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';


Question:
So that you know that you are debugging. //cc
I'm not sure on this, personally I would find it kind of annoying to have the toolbar on all windows. Maybe it's a setting, or can be dragged between windows? (Is there reusable cross-window drag logic yet?)
To clarify: not visible on all windows at the same time, but visible on the window that has focus maybe? Otherwise, it will be quite hard to step through a file using mouse in floating windows?
I think having it appear in the active window (when in floating mode) is good.
We solved this issue for quick open where we also want to appear it at the window that has focus. For that, there is which will always be the right container to put global UI elements and is derived from the currently active window. There is a event that can be used to reparent the UI element live.
Thanks!!!
Verification: Start debugging, and drag an editor out to an aux window Make sure the debug toolbar appears on whichever window has focus The debug toolbar should reappear in the same place per-window as you focus it

import { CONTEXT_DEBUG_STATE, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG, CONTEXT_IN_DEBUG_MODE, CONTEXT_MULTI_SESSION_DEBUG, CONTEXT_STEP_BACK_SUPPORTED, CONTEXT_SUSPEND_DEBUGGEE_SUPPORTED, CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED, IDebugConfiguration, IDebugService, State, VIEWLET_ID } from 'vs/workbench/contrib/debug/common/debug'; import { EditorTabsMode, IWorkbenchLayoutService, LayoutSettings, Parts } from 'vs/workbench/services/layout/browser/layoutService'; import { Codicon } from 'vs/base/common/codicons'; <del> import { mainWindow } from 'vs/base/browser/window'; </del> <ins> import { CodeWindow, mainWindow } from 'vs/base/browser/window'; import { clamp } from 'vs/base/common/numbers'; </ins> const DEBUG_TOOLBAR_POSITION_KEY = 'debug.actionswidgetposition'; const DEBUG_TOOLBAR_Y_KEY = 'debug.actionswidgety';


Question:
So that you know that you are debugging. //cc
I'm not sure on this, personally I would find it kind of annoying to have the toolbar on all windows. Maybe it's a setting, or can be dragged between windows? (Is there reusable cross-window drag logic yet?)
To clarify: not visible on all windows at the same time, but visible on the window that has focus maybe? Otherwise, it will be quite hard to step through a file using mouse in floating windows?
I think having it appear in the active window (when in floating mode) is good.
We solved this issue for quick open where we also want to appear it at the window that has focus. For that, there is which will always be the right container to put global UI elements and is derived from the currently active window. There is a event that can be used to reparent the UI element live.
Thanks!!!
Verification: Start debugging, and drag an editor out to an aux window Make sure the debug toolbar appears on whichever window has focus The debug toolbar should reappear in the same place per-window as you focus it

private isBuilt = false; private readonly stopActionViewItemDisposables = this._register(new DisposableStore()); <ins> /** coordinate of the debug toolbar per aux window */ private readonly auxWindowCoordinates = new WeakMap<CodeWindow, { x: number; y: number | undefined }>(); </ins> constructor( @INotificationService private readonly notificationService: INotificationService,


Question:
So that you know that you are debugging. //cc
I'm not sure on this, personally I would find it kind of annoying to have the toolbar on all windows. Maybe it's a setting, or can be dragged between windows? (Is there reusable cross-window drag logic yet?)
To clarify: not visible on all windows at the same time, but visible on the window that has focus maybe? Otherwise, it will be quite hard to step through a file using mouse in floating windows?
I think having it appear in the active window (when in floating mode) is good.
We solved this issue for quick open where we also want to appear it at the window that has focus. For that, there is which will always be the right container to put global UI elements and is derived from the currently active window. There is a event that can be used to reparent the UI element live.
Thanks!!!
Verification: Start debugging, and drag an editor out to an aux window Make sure the debug toolbar appears on whichever window has focus The debug toolbar should reappear in the same place per-window as you focus it

// log in telemetry this.telemetryService.publicLog2<WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification>('workbenchActionExecuted', { id: e.action.id, from: 'debugActionsWidget' }); })); <del> this._register(dom.addDisposableListener(mainWindow, dom.EventType.RESIZE, () => this.setCoordinates())); </del> this._register(dom.addDisposableGenericMouseUpListener(this.dragArea, (event: MouseEvent) => { const mouseClickEvent = new StandardMouseEvent(dom.getWindow(this.dragArea), event); <ins> const activeWindow = dom.getWindow(this.layoutService.activeContainer); </ins> if (mouseClickEvent.detail === 2) { // double click on debug bar centers it again #8250 const widgetWidth = this.$el.clientWidth; <del> this.setCoordinates(0.5 * mainWindow.innerWidth - 0.5 * widgetWidth, 0); </del> <ins> this.setCoordinates(0.5 * activeWindow.innerWidth - 0.5 * widgetWidth, 0); </ins> this.storePosition(); } })); this._register(dom.addDisposableGenericMouseDownListener(this.dragArea, (event: MouseEvent) => { this.dragArea.classList.add('dragged'); <ins> const activeWindow = dom.getWindow(this.layoutService.activeContainer); </ins> <del> const mouseMoveListener = dom.addDisposableGenericMouseMoveListener(mainWindow, (e: MouseEvent) => { const mouseMoveEvent = new StandardMouseEvent(mainWindow, e); </del> <ins> const mouseMoveListener = dom.addDisposableGenericMouseMoveListener(activeWindow, (e: MouseEvent) => { const mouseMoveEvent = new StandardMouseEvent(activeWindow, e); </ins> // Prevent default to stop editor selecting text #8524 mouseMoveEvent.preventDefault(); // Reduce x by width of drag handle to reduce jarring #16604 this.setCoordinates(mouseMoveEvent.posx - 14, mouseMoveEvent.posy - 14); }); <del> const mouseUpListener = dom.addDisposableGenericMouseUpListener(mainWindow, (e: MouseEvent) => { </del> <ins> const mouseUpListener = dom.addDisposableGenericMouseUpListener(activeWindow, (e: MouseEvent) => { </ins> this.storePosition(); this.dragArea.classList.remove('dragged');


Question:
So that you know that you are debugging. //cc
I'm not sure on this, personally I would find it kind of annoying to have the toolbar on all windows. Maybe it's a setting, or can be dragged between windows? (Is there reusable cross-window drag logic yet?)
To clarify: not visible on all windows at the same time, but visible on the window that has focus maybe? Otherwise, it will be quite hard to step through a file using mouse in floating windows?
I think having it appear in the active window (when in floating mode) is good.
We solved this issue for quick open where we also want to appear it at the window that has focus. For that, there is which will always be the right container to put global UI elements and is derived from the currently active window. There is a event that can be used to reparent the UI element live.
Thanks!!!
Verification: Start debugging, and drag an editor out to an aux window Make sure the debug toolbar appears on whichever window has focus The debug toolbar should reappear in the same place per-window as you focus it

this._register(this.layoutService.onDidChangePartVisibility(() => this.setYCoordinate())); this._register(browser.PixelRatio.onDidChange(() => this.setYCoordinate())); <ins> const resizeListener = this._register(new MutableDisposable()); this._register(this.layoutService.onDidChangeActiveContainer(() => { this._yRange = undefined; // note: we intentionally don't read the activeContainer before the // `then` clause to avoid any races due to quickly switching windows. this.layoutService.whenActiveContainerStylesLoaded.then(() => { if (this.isBuilt) { this.layoutService.activeContainer.appendChild(this.$el); this.setCoordinates(); } resizeListener.value = this._register(dom.addDisposableListener( dom.getWindow(this.layoutService.activeContainer), dom.EventType.RESIZE, () => this.setYCoordinate())); }); })); </ins> } private storePosition(): void { <del> const left = dom.getComputedStyle(this.$el).left; if (left) { const position = parseFloat(left) / mainWindow.innerWidth; this.storageService.store(DEBUG_TOOLBAR_POSITION_KEY, position, StorageScope.PROFILE, StorageTarget.MACHINE); } if (this.yCoordinate) { </del> <ins> const activeWindow = dom.getWindow(this.layoutService.activeContainer); const isMainWindow = this.layoutService.activeContainer === this.layoutService.mainContainer; const left = this.$el.getBoundingClientRect().left / activeWindow.innerWidth; if (isMainWindow) { this.storageService.store(DEBUG_TOOLBAR_POSITION_KEY, left, StorageScope.PROFILE, StorageTarget.MACHINE); </ins> this.storageService.store(DEBUG_TOOLBAR_Y_KEY, this.yCoordinate, StorageScope.PROFILE, StorageTarget.MACHINE); } else { <del> this.storageService.remove(DEBUG_TOOLBAR_Y_KEY, StorageScope.PROFILE); </del> <ins> this.auxWindowCoordinates.set(activeWindow, { x: left, y: this.yCoordinate }); </ins> } }


Question:
So that you know that you are debugging. //cc
I'm not sure on this, personally I would find it kind of annoying to have the toolbar on all windows. Maybe it's a setting, or can be dragged between windows? (Is there reusable cross-window drag logic yet?)
To clarify: not visible on all windows at the same time, but visible on the window that has focus maybe? Otherwise, it will be quite hard to step through a file using mouse in floating windows?
I think having it appear in the active window (when in floating mode) is good.
We solved this issue for quick open where we also want to appear it at the window that has focus. For that, there is which will always be the right container to put global UI elements and is derived from the currently active window. There is a event that can be used to reparent the UI element live.
Thanks!!!
Verification: Start debugging, and drag an editor out to an aux window Make sure the debug toolbar appears on whichever window has focus The debug toolbar should reappear in the same place per-window as you focus it

if (!this.isVisible) { return; } const widgetWidth = this.$el.clientWidth; <ins> const currentWindow = dom.getWindow(this.layoutService.activeContainer); const isMainWindow = currentWindow === mainWindow; </ins> if (x === undefined) { <del> const positionPercentage = this.storageService.get(DEBUG_TOOLBAR_POSITION_KEY, StorageScope.PROFILE); x = positionPercentage !== undefined ? parseFloat(positionPercentage) * mainWindow.innerWidth : (0.5 * mainWindow.innerWidth - 0.5 * widgetWidth); </del> <ins> const positionPercentage = isMainWindow ? Number(this.storageService.get(DEBUG_TOOLBAR_POSITION_KEY, StorageScope.PROFILE)) : this.auxWindowCoordinates.get(currentWindow)?.x; x = positionPercentage !== undefined ? positionPercentage * currentWindow.innerWidth : (0.5 * currentWindow.innerWidth - 0.5 * widgetWidth); </ins> } <del> x = Math.max(0, Math.min(x, mainWindow.innerWidth - widgetWidth)); // do not allow the widget to overflow on the right </del> <ins> x = clamp(x, 0, currentWindow.innerWidth - widgetWidth); // do not allow the widget to overflow on the right </ins> this.$el.style.left = `${x}px`; if (y === undefined) { <del> y = this.storageService.getNumber(DEBUG_TOOLBAR_Y_KEY, StorageScope.PROFILE, 0); </del> <ins> y = isMainWindow ? this.storageService.getNumber(DEBUG_TOOLBAR_Y_KEY, StorageScope.PROFILE) : this.auxWindowCoordinates.get(currentWindow)?.y; </ins> } <del> this.setYCoordinate(y); </del> <ins> this.setYCoordinate(y || 0); </ins> } private setYCoordinate(y = this.yCoordinate): void {


Question:
So that you know that you are debugging. //cc
I'm not sure on this, personally I would find it kind of annoying to have the toolbar on all windows. Maybe it's a setting, or can be dragged between windows? (Is there reusable cross-window drag logic yet?)
To clarify: not visible on all windows at the same time, but visible on the window that has focus maybe? Otherwise, it will be quite hard to step through a file using mouse in floating windows?
I think having it appear in the active window (when in floating mode) is good.
We solved this issue for quick open where we also want to appear it at the window that has focus. For that, there is which will always be the right container to put global UI elements and is derived from the currently active window. There is a event that can be used to reparent the UI element live.
Thanks!!!
Verification: Start debugging, and drag an editor out to an aux window Make sure the debug toolbar appears on whichever window has focus The debug toolbar should reappear in the same place per-window as you focus it

private _yRange: [number, number] | undefined; private get yRange(): [number, number] { if (!this._yRange) { <del> const isTitleBarVisible = this.layoutService.isVisible(Parts.TITLEBAR_PART, mainWindow); </del> <ins> const isTitleBarVisible = this.layoutService.isVisible(Parts.TITLEBAR_PART, dom.getWindow(this.layoutService.activeContainer)); </ins> const yMin = isTitleBarVisible ? 0 : this.layoutService.mainContainerOffset.top; let yMax = 0;


Question:
So that you know that you are debugging. //cc
I'm not sure on this, personally I would find it kind of annoying to have the toolbar on all windows. Maybe it's a setting, or can be dragged between windows? (Is there reusable cross-window drag logic yet?)
To clarify: not visible on all windows at the same time, but visible on the window that has focus maybe? Otherwise, it will be quite hard to step through a file using mouse in floating windows?
I think having it appear in the active window (when in floating mode) is good.
We solved this issue for quick open where we also want to appear it at the window that has focus. For that, there is which will always be the right container to put global UI elements and is derived from the currently active window. There is a event that can be used to reparent the UI element live.
Thanks!!!
Verification: Start debugging, and drag an editor out to an aux window Make sure the debug toolbar appears on whichever window has focus The debug toolbar should reappear in the same place per-window as you focus it

} if (!this.isBuilt) { this.isBuilt = true; <del> this.layoutService.mainContainer.appendChild(this.$el); </del> <ins> this.layoutService.activeContainer.appendChild(this.$el); </ins> } this.isVisible = true;


Question:
Type: <bBug</bCC When terminal content reaches the F2 (Accessible View) buffer size, users may want to scroll up to check the previous content. However, the command does not take effect in the Accessible View buffer, making it difficult for screen reader users to check the pushed content. VS Code version: Code - Insiders 1.85.0-insider (, 2023-11-24T15:21:39.004Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 4.18.0-477.27.1.el88.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (105)</summaryExtensionVersion ------ aiprm-lang0.0.2 Bookmarks13.4.2 spellright3.0.118 mermaid-markdown-syntax-highlighting1.6.0 vscode-firefox-debug2.9.10 codespaces1.16.2 remotehub0.62.0 overleaf-workshop0.4.4 easy-snippet0.7.2 scheme0.2.0 better-cpp-syntax1.17.2 lilypond-snippets0.1.1 vscode-azurevirtualmachines0.6.5 vscode-edge-devtools2.1.3 jupyter-keymap1.1.2 remote-containers0.325.0 remote-ssh0.108. remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.24.0 azure-repos0.38.0 remote-explorer0.5. remote-repositories0.40.0 vscode-serial-monitor0.10.0 vscode-speech0.3. multi-command1.6.0 windows-terminal0.7.0 errorlens3.15.0 Bookmarks13.4.2 openscad1.2.2 zoterolatex0.4.1 mermaid-markdown-syntax-highlighting1.6.0 doxdocgen1.4.0 vscode-markdownlint0.52.0 vscode-eslint2.4.2 vscode-quick-select0.2.9 vscode-deno3.28.0 gitlens14.5.1 EditorConfig0.16.4 prettier-vscode10.1.0 shell-format7.2.5 vscode-google-translate1.4.13 codespaces1.16.2 copilot1.138.568 copilot-chat0.11. remotehub0.62.0 vscode-github-actions0.26.2 vscode-pull-request-github0.77. cslpreview0.2.2 path-autocomplete1.25.0 latex-workshop9.15.0 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 git-graph1.30.0 vscode-docker1.28.0 black-formatter2023.6.0 flake82023.10.0 isort2023.10.1 python2023.20.0 vscode-pylance2023.11.10 jupyter2023.11. jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 azure-repos0.38.0 cmake-tools1.16.31 cpptools1.18.5 cpptools-extension-pack1.3.0 js-debug-nightly2023.11.1317 remote-repositories0.40.0 vscode-github-issue-notebooks0.0.130 vscode-selfhost-test-provider0.3.21 vscode-serial-monitor0.10.0 vsliveshare1.0.5892 autodocstring0.6.1 pandocciter0.10.3 shiny-python0.1.5 shinyuieditor0.5.0 quarto1.107.0 r-debugger0.5.4 java1.24.0 vscode-xml0.26.1 r2.8.2 multi-command1.6.0 vscode-deepl1.0.7 lua3.7.3 latex-utilities0.4.10 cmake0.0.17 errorlens3.15.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-java-debug0.55.0 vscode-java-dependency0.23.2 vscode-java-pack0.25.15 vscode-java-test0.40.1 vscode-maven0.43.0 markdown-all-in-one3.5.1 grammarly0.24.0 (2 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Also should work for
To verify: Run a few commands in the terminal to open the accessible view / (mac) to scroll to the top and bottom of the terminal

await TerminalAccessibleViewContribution.get(instance)?.navigateToCommand(NavigationType.Previous); } }); <ins> registerTerminalAction({ id: TerminalCommandId.ScrollToBottom, title: { value: localize('workbench.action.terminal.scrollToBottom', "Scroll to Bottom"), original: 'Scroll to Bottom' }, precondition: ContextKeyExpr.and(ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated), ContextKeyExpr.and(accessibleViewIsShown, ContextKeyExpr.equals(accessibleViewCurrentProviderId.key, AccessibleViewProviderId.Terminal))), keybinding: { primary: KeyMod.CtrlCmd | KeyCode.End, linux: { primary: KeyMod.Shift | KeyCode.End }, when: accessibleViewCurrentProviderId.isEqualTo(AccessibleViewProviderId.Terminal), weight: KeybindingWeight.WorkbenchContrib }, run: (c, accessor) => { const accessibleViewService = accessor.get(IAccessibleViewService); const lastPosition = accessibleViewService.getLastPosition(); if (!lastPosition) { return; } accessibleViewService.setPosition(lastPosition, true); } }); registerTerminalAction({ id: TerminalCommandId.ScrollToTop, title: { value: localize('workbench.action.terminal.scrollToTop', "Scroll to Top"), original: 'Scroll to Top' }, precondition: ContextKeyExpr.and(ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated), ContextKeyExpr.and(accessibleViewIsShown, ContextKeyExpr.equals(accessibleViewCurrentProviderId.key, AccessibleViewProviderId.Terminal))), keybinding: { primary: KeyMod.CtrlCmd | KeyCode.Home, linux: { primary: KeyMod.Shift | KeyCode.Home }, when: accessibleViewCurrentProviderId.isEqualTo(AccessibleViewProviderId.Terminal), weight: KeybindingWeight.WorkbenchContrib }, run: (c, accessor) => { const accessibleViewService = accessor.get(IAccessibleViewService); accessibleViewService.setPosition({ lineNumber: 1, column: 1 } as Position, true); } }); </ins>


Question:
Follow up on Currently we wrap the kb in brackets: <img width="193" alt="image" src=""But we use parentheses in other places where the keybinding is shown, eg hover over problems or terminal pane label, or other icons. <img width="199" alt="image" src=""
Hi thank you for posting this issue. Indeed when I chose the square brackets I was not sure what type of brackets to use. In the editor toolbar menu for example, we appear to be using square brackets. However now that I am looking at the keybindings it appears to me we may be using square brackets for keybinding chords only. I'll ask in the UX channel about this. <img width="423" alt="Screenshot 2023-11-28 at 17 26 10" src=""

return; } this._inlineChatKeybinding = keybinding; <del> const hoverMessage = new MarkdownString(keybinding ? localize('runWithKeybinding', 'Start Inline Chat [{0}]', keybinding) : LOCALIZED_START_INLINE_CHAT_STRING); </del> <ins> const hoverMessage = new MarkdownString(keybinding ? localize('runWithKeybinding', 'Start Inline Chat ({0})', keybinding) : LOCALIZED_START_INLINE_CHAT_STRING); </ins> this._gutterDecorationTransparent.glyphMarginHoverMessage = hoverMessage; this._gutterDecorationOpaque.glyphMarginHoverMessage = hoverMessage; }


Question: From testing Steps to Reproduce: multiple terminals multiple terminals in the terminal view to change their color to red the terminals still select, select again time run instead Bug Only a single terminal at a time is reset

/** * Sets or triggers a quick pick to change the color of the associated terminal tab icon. */ <del> changeColor(color?: string): Promise<string | undefined>; </del> <ins> changeColor(color?: string, skipQuickPick?: boolean): Promise<string | undefined>; </ins> /** * Triggers a quick pick that displays recent commands or cwds. Selecting one will


Question: From testing Steps to Reproduce: multiple terminals multiple terminals in the terminal view to change their color to red the terminals still select, select again time run instead Bug Only a single terminal at a time is reset

precondition: ContextKeyExpr.and(ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated), TerminalContextKeys.tabsSingularSelection), run: async (c, accessor) => { let color: string | undefined; <ins> let i = 0; </ins> for (const terminal of getSelectedInstances(accessor) ?? []) { <del> color = await terminal.changeColor(color); </del> <ins> const skipQuickPick = i !== 0; // Always show the quickpick on the first iteration color = await terminal.changeColor(color, skipQuickPick); i++; </ins> } } });


Question: From testing Steps to Reproduce: multiple terminals multiple terminals in the terminal view to change their color to red the terminals still select, select again time run instead Bug Only a single terminal at a time is reset

when: TerminalContextKeys.tabsFocus }, run: async (c, accessor) => { <del> for (const terminal of getSelectedInstances(accessor) ?? []) { c.service.safeDisposeTerminal(terminal); </del> <ins> const disposePromises: Promise<void>[] = []; for (const terminal of getSelectedInstances(accessor, true) ?? []) { disposePromises.push(c.service.safeDisposeTerminal(terminal)); </ins> } <ins> await Promise.all(disposePromises); </ins> c.groupService.focusTabs(); } });


Question: From testing Steps to Reproduce: multiple terminals multiple terminals in the terminal view to change their color to red the terminals still select, select again time run instead Bug Only a single terminal at a time is reset

const terminalGroupService = accessor.get(ITerminalGroupService); const result: ITerminalInstance[] = []; <del> // Get inline tab instance if (terminalGroupService.lastAccessedMenu === 'inline-tab') { </del> <ins> const list = listService.lastFocusedList; // Get selected tab list instance(s) const selections = list?.getSelection(); // Get inline tab instance if there are not tab list selections #196578 if (terminalGroupService.lastAccessedMenu === 'inline-tab' && !selections?.length) { </ins> const instance = terminalGroupService.activeInstance; return instance ? [terminalGroupService.activeInstance] : undefined; } <del> // Get tab list instance if (!listService.lastFocusedList?.getSelection()) { </del> <ins> if (!list || !selections) { </ins> return undefined; } <del> const selections = listService.lastFocusedList.getSelection(); const focused = listService.lastFocusedList.getFocus(); </del> <ins> const focused = list.getFocus(); </ins> if (focused.length === 1 && !selections.includes(focused[0])) { // focused length is always a max of 1


Question: From testing Steps to Reproduce: multiple terminals multiple terminals in the terminal view to change their color to red the terminals still select, select again time run instead Bug Only a single terminal at a time is reset

return; } <del> async changeColor(color?: string): Promise<string | undefined> { </del> <ins> async changeColor(color?: string, skipQuickPick?: boolean): Promise<string | undefined> { </ins> if (color) { this.shellLaunchConfig.color = color; this._onIconChanged.fire({ instance: this, userInitiated: true }); return color; <ins> } else if (skipQuickPick) { // Reset this tab's color this.shellLaunchConfig.color = ''; this._onIconChanged.fire({ instance: this, userInitiated: true }); return; </ins> } const icon = this._getIcon(); if (!icon) {


Question:
open the log in the output view press Ctrl + I. :bug: Inline chat opens in the output view. It's not possible to enter a question. Should not open in the output view.
Tried this and it now does nothing when I press ctrl + I. This is the expected behavior now right?

title: { value: LOCALIZED_START_INLINE_CHAT_STRING, original: 'Start Inline Chat' }, category: AbstractInlineChatAction.category, f1: true, <del> precondition: CTX_INLINE_CHAT_HAS_PROVIDER, </del> <ins> precondition: ContextKeyExpr.and(CTX_INLINE_CHAT_HAS_PROVIDER, EditorContextKeys.writable), </ins> keybinding: { when: EditorContextKeys.focus, weight: KeybindingWeight.WorkbenchContrib,


Question:
Does this issue occur when all extensions are disabled?: Yes Version: 1.84.2 (user setup) Commit: Date: 2023-11-09T10:51:52.184Z Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: WindowsNT x64 10.0. Steps to Reproduce: ! also causes to fail. Related issues: Workarround: call
I cannot reproduce, so you just move views around a bunch until the explorer disappears? Do you have any extension?
Yes, Make Folders appear independently and move Explorer into Folders. I expect view back to Explorer include Folders instead of Explorer eventually disappearing. Explorer disappearing can cause other problems, including but not limited to fail. fail. As I said at the beginning: I can even reproduce it in a completely fresh installation of the macOS version of vscode without any extensions installed. !
Okay so I can see that refresh explorer doesn't work in this case, that's for sure. I cannot get folders to completely disappear
In fact, what disappeared was the label . After the move, Its position is replaced by . The folder tree itself is not affected. As shown in the picture, the MOVIES folder contents can still be browsed, but its label(or button anyway) in activity bar is from to . The view hierarchy relationship changes from: Explorer Folders Open editors timeline outline to: Folders Open editors timeline outline The ability to browse folders itself is not affected, but those commands bound to or target to will be invalid. This is also the root cause of .
It's going to be confusion but "Explorer" is actually the container while "Folders" is what we call the view. So when you move Folders out of the explorer it creates its own container called "Folders" and this is working as intended. is a different root cause, but there's definitely a bug here around refresh and other explorer commands. Thanks for the find!
To verify: the folder view (the file tree structure) somewhere else separate from the explorer view container refresh explorer You should stay on the folder view and not be moved to a different view container. You should also see the refresh properly occur.

import * as perf from 'vs/base/common/performance'; import { WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification } from 'vs/base/common/actions'; import { memoize } from 'vs/base/common/decorators'; <del> import { IFilesConfiguration, ExplorerFolderContext, FilesExplorerFocusedContext, ExplorerFocusedContext, ExplorerRootContext, ExplorerResourceReadonlyContext, ExplorerResourceCut, ExplorerResourceMoveableToTrash, ExplorerCompressedFocusContext, ExplorerCompressedFirstFocusContext, ExplorerCompressedLastFocusContext, ExplorerResourceAvailableEditorIdsContext, VIEW_ID, VIEWLET_ID, ExplorerResourceNotReadonlyContext, ViewHasSomeCollapsibleRootItemContext, FoldersViewVisibleContext } from 'vs/workbench/contrib/files/common/files'; </del> <ins> import { IFilesConfiguration, ExplorerFolderContext, FilesExplorerFocusedContext, ExplorerFocusedContext, ExplorerRootContext, ExplorerResourceReadonlyContext, ExplorerResourceCut, ExplorerResourceMoveableToTrash, ExplorerCompressedFocusContext, ExplorerCompressedFirstFocusContext, ExplorerCompressedLastFocusContext, ExplorerResourceAvailableEditorIdsContext, VIEW_ID, ExplorerResourceNotReadonlyContext, ViewHasSomeCollapsibleRootItemContext, FoldersViewVisibleContext } from 'vs/workbench/contrib/files/common/files'; </ins> import { FileCopiedContext, NEW_FILE_COMMAND_ID, NEW_FOLDER_COMMAND_ID } from 'vs/workbench/contrib/files/browser/fileActions'; import * as DOM from 'vs/base/browser/dom'; import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';


Question:
Does this issue occur when all extensions are disabled?: Yes Version: 1.84.2 (user setup) Commit: Date: 2023-11-09T10:51:52.184Z Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: WindowsNT x64 10.0. Steps to Reproduce: ! also causes to fail. Related issues: Workarround: call
I cannot reproduce, so you just move views around a bunch until the explorer disappears? Do you have any extension?
Yes, Make Folders appear independently and move Explorer into Folders. I expect view back to Explorer include Folders instead of Explorer eventually disappearing. Explorer disappearing can cause other problems, including but not limited to fail. fail. As I said at the beginning: I can even reproduce it in a completely fresh installation of the macOS version of vscode without any extensions installed. !
Okay so I can see that refresh explorer doesn't work in this case, that's for sure. I cannot get folders to completely disappear
In fact, what disappeared was the label . After the move, Its position is replaced by . The folder tree itself is not affected. As shown in the picture, the MOVIES folder contents can still be browsed, but its label(or button anyway) in activity bar is from to . The view hierarchy relationship changes from: Explorer Folders Open editors timeline outline to: Folders Open editors timeline outline The ability to browse folders itself is not affected, but those commands bound to or target to will be invalid. This is also the root cause of .
It's going to be confusion but "Explorer" is actually the container while "Folders" is what we call the view. So when you move Folders out of the explorer it creates its own container called "Folders" and this is working as intended. is a different root cause, but there's definitely a bug here around refresh and other explorer commands. Thanks for the find!
To verify: the folder view (the file tree structure) somewhere else separate from the explorer view container refresh explorer You should stay on the folder view and not be moved to a different view container. You should also see the refresh properly occur.

import { IDisposable } from 'vs/base/common/lifecycle'; import { Event } from 'vs/base/common/event'; import { SIDE_BAR_BACKGROUND } from 'vs/workbench/common/theme'; <del> import { IViewDescriptorService, IViewsService, ViewContainerLocation } from 'vs/workbench/common/views'; </del> <ins> import { IViewDescriptorService, IViewsService } from 'vs/workbench/common/views'; </ins> import { IOpenerService } from 'vs/platform/opener/common/opener'; import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity'; import { EditorResourceAccessor, SideBySideEditor } from 'vs/workbench/common/editor';


Question:
Does this issue occur when all extensions are disabled?: Yes Version: 1.84.2 (user setup) Commit: Date: 2023-11-09T10:51:52.184Z Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: WindowsNT x64 10.0. Steps to Reproduce: ! also causes to fail. Related issues: Workarround: call
I cannot reproduce, so you just move views around a bunch until the explorer disappears? Do you have any extension?
Yes, Make Folders appear independently and move Explorer into Folders. I expect view back to Explorer include Folders instead of Explorer eventually disappearing. Explorer disappearing can cause other problems, including but not limited to fail. fail. As I said at the beginning: I can even reproduce it in a completely fresh installation of the macOS version of vscode without any extensions installed. !
Okay so I can see that refresh explorer doesn't work in this case, that's for sure. I cannot get folders to completely disappear
In fact, what disappeared was the label . After the move, Its position is replaced by . The folder tree itself is not affected. As shown in the picture, the MOVIES folder contents can still be browsed, but its label(or button anyway) in activity bar is from to . The view hierarchy relationship changes from: Explorer Folders Open editors timeline outline to: Folders Open editors timeline outline The ability to browse folders itself is not affected, but those commands bound to or target to will be invalid. This is also the root cause of .
It's going to be confusion but "Explorer" is actually the container while "Folders" is what we call the view. So when you move Folders out of the explorer it creates its own container called "Folders" and this is working as intended. is a different root cause, but there's definitely a bug here around refresh and other explorer commands. Thanks for the find!
To verify: the folder view (the file tree structure) somewhere else separate from the explorer view container refresh explorer You should stay on the folder view and not be moved to a different view container. You should also see the refresh properly occur.

import { Codicon } from 'vs/base/common/codicons'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { IEditorResolverService } from 'vs/workbench/services/editor/common/editorResolverService'; <del> import { IPaneCompositePartService } from 'vs/workbench/services/panecomposite/browser/panecomposite'; </del> import { EditorOpenSource } from 'vs/platform/editor/common/editor'; import { ResourceMap } from 'vs/base/common/map'; import { isInputElement } from 'vs/base/browser/ui/list/listWidget';


Question:
Does this issue occur when all extensions are disabled?: Yes Version: 1.84.2 (user setup) Commit: Date: 2023-11-09T10:51:52.184Z Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: WindowsNT x64 10.0. Steps to Reproduce: ! also causes to fail. Related issues: Workarround: call
I cannot reproduce, so you just move views around a bunch until the explorer disappears? Do you have any extension?
Yes, Make Folders appear independently and move Explorer into Folders. I expect view back to Explorer include Folders instead of Explorer eventually disappearing. Explorer disappearing can cause other problems, including but not limited to fail. fail. As I said at the beginning: I can even reproduce it in a completely fresh installation of the macOS version of vscode without any extensions installed. !
Okay so I can see that refresh explorer doesn't work in this case, that's for sure. I cannot get folders to completely disappear
In fact, what disappeared was the label . After the move, Its position is replaced by . The folder tree itself is not affected. As shown in the picture, the MOVIES folder contents can still be browsed, but its label(or button anyway) in activity bar is from to . The view hierarchy relationship changes from: Explorer Folders Open editors timeline outline to: Folders Open editors timeline outline The ability to browse folders itself is not affected, but those commands bound to or target to will be invalid. This is also the root cause of .
It's going to be confusion but "Explorer" is actually the container while "Folders" is what we call the view. So when you move Folders out of the explorer it creates its own container called "Folders" and this is working as intended. is a different root cause, but there's definitely a bug here around refresh and other explorer commands. Thanks for the find!
To verify: the folder view (the file tree structure) somewhere else separate from the explorer view container refresh explorer You should stay on the folder view and not be moved to a different view container. You should also see the refresh properly occur.

} async run(accessor: ServicesAccessor): Promise<void> { <del> const paneCompositeService = accessor.get(IPaneCompositePartService); </del> <ins> const viewsService = accessor.get(IViewsService); </ins> const explorerService = accessor.get(IExplorerService); <del> await paneCompositeService.openPaneComposite(VIEWLET_ID, ViewContainerLocation.Sidebar); </del> <ins> await viewsService.openView(VIEW_ID); </ins> await explorerService.refresh(); } });


Question:
See
I have not seen this before and I suspect an unhealthy CI, the log indicates a successful download to me: Code is here: I am using VS Code test module , so moving to
also indicates a broken stable download. Maybe this was just unlucky timing with us releasing a new version?
cc in case this is CDN related.
We need to bump to 2.3.8:

"@vscode/l10n-dev": "0.0.30", "@vscode/telemetry-extractor": "^1.10.2", "@vscode/test-cli": "^0.0.3", <del> "@vscode/test-electron": "^2.3.5", </del> <ins> "@vscode/test-electron": "^2.3.8", </ins> "@vscode/test-web": "^0.0.42", "@vscode/v8-heap-parser": "^0.1.0", "@vscode/vscode-perf": "^0.0.14",


Question:
See
I have not seen this before and I suspect an unhealthy CI, the log indicates a successful download to me: Code is here: I am using VS Code test module , so moving to
also indicates a broken stable download. Maybe this was just unlucky timing with us releasing a new version?
cc in case this is CDN related.
We need to bump to 2.3.8:

supports-color "^9.4.0" yargs "^17.7.2" <del> "@vscode/test-electron@^2.3.5": version "2.3.5" resolved "https://registry.yarnpkg.com/@vscode/test-electron/-/test-electron-2.3.5.tgz#c472c5bdce1329aeb4762b8aa7a2cbe7aa783aac" integrity sha512-lAW7nQ0HuPqJnGJrtCzEKZCICtRizeP6qNanyCrjmdCOAAWjX3ixiG8RVPwqsYPQBWLPgYuE12qQlwXsOR/2fQ== </del> <ins> "@vscode/test-electron@^2.3.8": version "2.3.8" resolved "https://registry.yarnpkg.com/@vscode/test-electron/-/test-electron-2.3.8.tgz#06a7c50b38cfac0ede833905e088d55c61cd12d3" integrity sha512-b4aZZsBKtMGdDljAsOPObnAi7+VWIaYl3ylCz1jTs+oV6BZ4TNHcVNC3xUn0azPeszBmwSBDQYfFESIaUQnrOg== </ins> dependencies: http-proxy-agent "^4.0.1" https-proxy-agent "^5.0.0"


Question:
Type: <bBug</bI use the shell: When I start VS Code not from the terminal, I see a popup with the error: I know why this issue occurs - it's because VS Code is assuming bash semantics for launching the user's shell in order to solicit environment variables. I encountered the . In that report, I reached out to the xonsh project (xonsh/xonsh) to see if the shell might be able to support bash syntax for this purpose, but after some consideration, they rejected the idea, instead asking editors to honor the shell. Here I'm making the same request to VS Code, namely that if the shell is xonsh ("xonsh" appears in the user's shell path), to use a syntax specialized for xonsh to extract the user's environment, namely: If direct support for xonsh can't be , would you consider adding a configuration variable such that a user of xonsh could customize VS Code to honor xonsh as the default shell? VS Code version: Code 1.85.0 (Universal) (, 2023-12-06T18:18:04.614Z) OS version: Darwin arm64 23.1.0 Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (7)</summaryExtensionVersion ------ copilot1.141.0 copilot-chat0.11.0 black-formatter2023.6.0 isort2023.10.1 python2023.22.0 vscode-pylance2023.11.10 sublime-keybindings4.0.10 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
I acknowledge that starting VSCode from the CLI does work around the issue, but even then only for that launch. If I launch VS Code from the CLI, then it has to restart (such as due to an update), it once again is unable to resolve settings and the error appears.
I believe this is or ?
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
This is a backlog candidate but still PRs are welcome. Here's where explicit xonsh support would need to be :
this is being in with minimal testing, could you track any comments/issues with it while I'm out in January? We mainly just need author verification
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Verified by installing and starting insiders from the terminal. I didn't see the error mentioned above. would be good if you'd confirm this.
I can confirm, with 1.86.0-insider, the error is gone. I was unable to test on the original machine, but I've tested on a new, similarly configured machine (and confirmed that the default shell is configured for xonsh, same as reported above). I'm so delighted that it's fixed and that I was able to help. Thanks for the guidance and support. /verified

} else if (name === 'nu') { // nushell requires ^ before quoted path to treat it as a command command = `^'${process.execPath}' ${extraArgs} -p '"${mark}" + JSON.stringify(process.env) + "${mark}"'`; shellArgs = ['-i', '-l', '-c']; <ins> } else if (name === 'xonsh') { // #200374: native implementation is shorter command = `import os, json; print("${mark}", json.dumps(dict(os.environ)), "${mark}")`; shellArgs = ['-i', '-l', '-c']; </ins> } else { command = `'${process.execPath}' ${extraArgs} -p '"${mark}" + JSON.stringify(process.env) + "${mark}"'`;


Question: on a line towards the bottom of the view port trigger suggest notice how the details view is always bottom aligned it should be top aligned as long as it isn't taller than the list <img width="1057" alt="image" src=""

} let { top, left } = placement; <del> if (!alignAtTop) { </del> <ins> if (!alignAtTop && height > anchorBox.height) { </ins> top = bottom - height; } const editorDomNode = this._editor.getDomNode();


Question:
Type: <bBug</bCC In inline Copilot chat, "Regenerate" button is not readable by some screen readers, such as JAWS. This is because the button is labeled with title attribute. Please add aria-label so that JAWS can recognize the label. For better communication, I have recorded a gif: ! VS Code version: Code - Insiders 1.86.0-insider (, 2023-12-20T05:36:57.756Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (116)</summaryExtensionVersion ------ vscode-openapi4.19.2 android-dev-ext1.3.2 aiprm-lang0.0.2 Bookmarks13.4.2 openscad1.2.2 spellright3.0.118 zoterolatex0.4.1 mermaid-markdown-syntax-highlighting1.6.0 doxdocgen1.4.0 vscode-markdownlint0.53.0 vscode-eslint2.4.2 vscode-quick-select0.2.9 vscode-deno3.30.0 gitlens14.6.1 EditorConfig0.16.4 prettier-vscode10.1.0 vscode-firefox-debug2.9.10 shell-format7.2.5 vscode-google-translate1.4.13 codespaces1.16.5 copilot1.143.601 copilot-chat0.12. remotehub0.62.0 vscode-github-actions0.26.2 vscode-pull-request-github0.79. cloudcode2.2.1 overleaf-workshop0.6.1 cslpreview0.2.2 easy-snippet0.7.5 path-autocomplete1.25.0 latex-workshop9.16.1 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 language-julia1.65.2 google-search0.0.1 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 zotero0.1.11 git-graph1.30.0 azure-dev0.8.0 vscode-azureappservice0.25.1 vscode-azurecontainerapps0.6.1 vscode-azurefunctions1.13.1 vscode-azureresourcegroups0.8.3 vscode-azurestaticwebapps0.12.2 vscode-azurestorage0.15.3 vscode-azurevirtualmachines0.6.5 vscode-cosmosdb0.20.0 vscode-docker1.28.0 vscode-edge-devtools2.1.3 black-formatter2023.7. flake82023.10.0 isort2023.11. python2023.23. vscode-pylance2023.12.101 jupyter2024.1. jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.329.0 remote-ssh0.108. remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.25.0 azure-account0.11.6 azure-repos0.38.0 cmake-tools1.16.32 cpptools1.19.1 cpptools-extension-pack1.3.0 js-debug-nightly2023.12.1817 powershell2023.11.1 remote-explorer0.5. remote-repositories0.40.0 remote-server1.6. vscode-github-issue-notebooks0.0.130 vscode-node-azure-pack1.2.0 vscode-selfhost-test-provider0.3.22 vscode-serial-monitor0.11.0 vscode-speech0.3. vsliveshare1.0.5900 windows-ai-studio0.2.1 autodocstring0.6.1 pandocciter0.10.3 shiny-python0.1.5 shinyuieditor0.5.0 quarto1.109.0 r-debugger0.5.4 java1.25.1 vscode-xml0.26.1 vscode-yaml1.14.0 r2.8.2 multi-command1.6.0 AudioQ0.0.2 vscode-deepl1.0.10 abc-music0.4.0 lua3.7.3 latex-utilities0.4.10 cmake0.0.17 vscode-terminal-here0.2.4 windows-terminal0.7.0 errorlens3.16.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-arduino0.6. vscode-java-debug0.55.0 vscode-java-dependency0.23.3 vscode-java-pack0.25.15 vscode-java-test0.40.1 vscode-maven0.43.0 markdown-all-in-one3.5.1 grammarly0.25.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thank you for the issue JooYoung. I cannot access the gif because it seems to be a private link.

export interface IButtonOptions extends Partial<IButtonStyles> { readonly title?: boolean | string; <ins> readonly ariaLabel?: boolean | string; </ins> readonly supportIcons?: boolean; readonly supportShortLabel?: boolean; readonly secondary?: boolean;


Question:
Type: <bBug</bCC In inline Copilot chat, "Regenerate" button is not readable by some screen readers, such as JAWS. This is because the button is labeled with title attribute. Please add aria-label so that JAWS can recognize the label. For better communication, I have recorded a gif: ! VS Code version: Code - Insiders 1.86.0-insider (, 2023-12-20T05:36:57.756Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (116)</summaryExtensionVersion ------ vscode-openapi4.19.2 android-dev-ext1.3.2 aiprm-lang0.0.2 Bookmarks13.4.2 openscad1.2.2 spellright3.0.118 zoterolatex0.4.1 mermaid-markdown-syntax-highlighting1.6.0 doxdocgen1.4.0 vscode-markdownlint0.53.0 vscode-eslint2.4.2 vscode-quick-select0.2.9 vscode-deno3.30.0 gitlens14.6.1 EditorConfig0.16.4 prettier-vscode10.1.0 vscode-firefox-debug2.9.10 shell-format7.2.5 vscode-google-translate1.4.13 codespaces1.16.5 copilot1.143.601 copilot-chat0.12. remotehub0.62.0 vscode-github-actions0.26.2 vscode-pull-request-github0.79. cloudcode2.2.1 overleaf-workshop0.6.1 cslpreview0.2.2 easy-snippet0.7.5 path-autocomplete1.25.0 latex-workshop9.16.1 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 language-julia1.65.2 google-search0.0.1 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 zotero0.1.11 git-graph1.30.0 azure-dev0.8.0 vscode-azureappservice0.25.1 vscode-azurecontainerapps0.6.1 vscode-azurefunctions1.13.1 vscode-azureresourcegroups0.8.3 vscode-azurestaticwebapps0.12.2 vscode-azurestorage0.15.3 vscode-azurevirtualmachines0.6.5 vscode-cosmosdb0.20.0 vscode-docker1.28.0 vscode-edge-devtools2.1.3 black-formatter2023.7. flake82023.10.0 isort2023.11. python2023.23. vscode-pylance2023.12.101 jupyter2024.1. jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.329.0 remote-ssh0.108. remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.25.0 azure-account0.11.6 azure-repos0.38.0 cmake-tools1.16.32 cpptools1.19.1 cpptools-extension-pack1.3.0 js-debug-nightly2023.12.1817 powershell2023.11.1 remote-explorer0.5. remote-repositories0.40.0 remote-server1.6. vscode-github-issue-notebooks0.0.130 vscode-node-azure-pack1.2.0 vscode-selfhost-test-provider0.3.22 vscode-serial-monitor0.11.0 vscode-speech0.3. vsliveshare1.0.5900 windows-ai-studio0.2.1 autodocstring0.6.1 pandocciter0.10.3 shiny-python0.1.5 shinyuieditor0.5.0 quarto1.109.0 r-debugger0.5.4 java1.25.1 vscode-xml0.26.1 vscode-yaml1.14.0 r2.8.2 multi-command1.6.0 AudioQ0.0.2 vscode-deepl1.0.10 abc-music0.4.0 lua3.7.3 latex-utilities0.4.10 cmake0.0.17 vscode-terminal-here0.2.4 windows-terminal0.7.0 errorlens3.16.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-arduino0.6. vscode-java-debug0.55.0 vscode-java-dependency0.23.3 vscode-java-pack0.25.15 vscode-java-test0.40.1 vscode-maven0.43.0 markdown-all-in-one3.5.1 grammarly0.25.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thank you for the issue JooYoung. I cannot access the gif because it seems to be a private link.

this._element.classList.add('monaco-text-button-with-short-label'); } <ins> if (typeof options.ariaLabel === 'string') { this._element.setAttribute('aria-label', options.ariaLabel); } </ins> container.appendChild(this._element); this._register(Gesture.addTarget(this._element));


Question:
Type: <bBug</bCC In inline Copilot chat, "Regenerate" button is not readable by some screen readers, such as JAWS. This is because the button is labeled with title attribute. Please add aria-label so that JAWS can recognize the label. For better communication, I have recorded a gif: ! VS Code version: Code - Insiders 1.86.0-insider (, 2023-12-20T05:36:57.756Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (116)</summaryExtensionVersion ------ vscode-openapi4.19.2 android-dev-ext1.3.2 aiprm-lang0.0.2 Bookmarks13.4.2 openscad1.2.2 spellright3.0.118 zoterolatex0.4.1 mermaid-markdown-syntax-highlighting1.6.0 doxdocgen1.4.0 vscode-markdownlint0.53.0 vscode-eslint2.4.2 vscode-quick-select0.2.9 vscode-deno3.30.0 gitlens14.6.1 EditorConfig0.16.4 prettier-vscode10.1.0 vscode-firefox-debug2.9.10 shell-format7.2.5 vscode-google-translate1.4.13 codespaces1.16.5 copilot1.143.601 copilot-chat0.12. remotehub0.62.0 vscode-github-actions0.26.2 vscode-pull-request-github0.79. cloudcode2.2.1 overleaf-workshop0.6.1 cslpreview0.2.2 easy-snippet0.7.5 path-autocomplete1.25.0 latex-workshop9.16.1 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 language-julia1.65.2 google-search0.0.1 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 zotero0.1.11 git-graph1.30.0 azure-dev0.8.0 vscode-azureappservice0.25.1 vscode-azurecontainerapps0.6.1 vscode-azurefunctions1.13.1 vscode-azureresourcegroups0.8.3 vscode-azurestaticwebapps0.12.2 vscode-azurestorage0.15.3 vscode-azurevirtualmachines0.6.5 vscode-cosmosdb0.20.0 vscode-docker1.28.0 vscode-edge-devtools2.1.3 black-formatter2023.7. flake82023.10.0 isort2023.11. python2023.23. vscode-pylance2023.12.101 jupyter2024.1. jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.329.0 remote-ssh0.108. remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.25.0 azure-account0.11.6 azure-repos0.38.0 cmake-tools1.16.32 cpptools1.19.1 cpptools-extension-pack1.3.0 js-debug-nightly2023.12.1817 powershell2023.11.1 remote-explorer0.5. remote-repositories0.40.0 remote-server1.6. vscode-github-issue-notebooks0.0.130 vscode-node-azure-pack1.2.0 vscode-selfhost-test-provider0.3.22 vscode-serial-monitor0.11.0 vscode-speech0.3. vsliveshare1.0.5900 windows-ai-studio0.2.1 autodocstring0.6.1 pandocciter0.10.3 shiny-python0.1.5 shinyuieditor0.5.0 quarto1.109.0 r-debugger0.5.4 java1.25.1 vscode-xml0.26.1 vscode-yaml1.14.0 r2.8.2 multi-command1.6.0 AudioQ0.0.2 vscode-deepl1.0.10 abc-music0.4.0 lua3.7.3 latex-utilities0.4.10 cmake0.0.17 vscode-terminal-here0.2.4 windows-terminal0.7.0 errorlens3.16.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-arduino0.6. vscode-java-debug0.55.0 vscode-java-dependency0.23.3 vscode-java-pack0.25.15 vscode-java-test0.40.1 vscode-maven0.43.0 markdown-all-in-one3.5.1 grammarly0.25.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thank you for the issue JooYoung. I cannot access the gif because it seems to be a private link.

this._element.title = renderStringAsPlaintext(value); } <ins> if (typeof this.options.ariaLabel === 'string') { this._element.setAttribute('aria-label', this.options.ariaLabel); } else if (this.options.ariaLabel) { this._element.setAttribute('aria-label', this._element.title); } </ins> this._label = value; }


Question:
Type: <bBug</bCC In inline Copilot chat, "Regenerate" button is not readable by some screen readers, such as JAWS. This is because the button is labeled with title attribute. Please add aria-label so that JAWS can recognize the label. For better communication, I have recorded a gif: ! VS Code version: Code - Insiders 1.86.0-insider (, 2023-12-20T05:36:57.756Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (116)</summaryExtensionVersion ------ vscode-openapi4.19.2 android-dev-ext1.3.2 aiprm-lang0.0.2 Bookmarks13.4.2 openscad1.2.2 spellright3.0.118 zoterolatex0.4.1 mermaid-markdown-syntax-highlighting1.6.0 doxdocgen1.4.0 vscode-markdownlint0.53.0 vscode-eslint2.4.2 vscode-quick-select0.2.9 vscode-deno3.30.0 gitlens14.6.1 EditorConfig0.16.4 prettier-vscode10.1.0 vscode-firefox-debug2.9.10 shell-format7.2.5 vscode-google-translate1.4.13 codespaces1.16.5 copilot1.143.601 copilot-chat0.12. remotehub0.62.0 vscode-github-actions0.26.2 vscode-pull-request-github0.79. cloudcode2.2.1 overleaf-workshop0.6.1 cslpreview0.2.2 easy-snippet0.7.5 path-autocomplete1.25.0 latex-workshop9.16.1 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 language-julia1.65.2 google-search0.0.1 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 zotero0.1.11 git-graph1.30.0 azure-dev0.8.0 vscode-azureappservice0.25.1 vscode-azurecontainerapps0.6.1 vscode-azurefunctions1.13.1 vscode-azureresourcegroups0.8.3 vscode-azurestaticwebapps0.12.2 vscode-azurestorage0.15.3 vscode-azurevirtualmachines0.6.5 vscode-cosmosdb0.20.0 vscode-docker1.28.0 vscode-edge-devtools2.1.3 black-formatter2023.7. flake82023.10.0 isort2023.11. python2023.23. vscode-pylance2023.12.101 jupyter2024.1. jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.329.0 remote-ssh0.108. remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.25.0 azure-account0.11.6 azure-repos0.38.0 cmake-tools1.16.32 cpptools1.19.1 cpptools-extension-pack1.3.0 js-debug-nightly2023.12.1817 powershell2023.11.1 remote-explorer0.5. remote-repositories0.40.0 remote-server1.6. vscode-github-issue-notebooks0.0.130 vscode-node-azure-pack1.2.0 vscode-selfhost-test-provider0.3.22 vscode-serial-monitor0.11.0 vscode-speech0.3. vsliveshare1.0.5900 windows-ai-studio0.2.1 autodocstring0.6.1 pandocciter0.10.3 shiny-python0.1.5 shinyuieditor0.5.0 quarto1.109.0 r-debugger0.5.4 java1.25.1 vscode-xml0.26.1 vscode-yaml1.14.0 r2.8.2 multi-command1.6.0 AudioQ0.0.2 vscode-deepl1.0.10 abc-music0.4.0 lua3.7.3 latex-utilities0.4.10 cmake0.0.17 vscode-terminal-here0.2.4 windows-terminal0.7.0 errorlens3.16.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-arduino0.6. vscode-java-debug0.55.0 vscode-java-dependency0.23.3 vscode-java-pack0.25.15 vscode-java-test0.40.1 vscode-maven0.43.0 markdown-all-in-one3.5.1 grammarly0.25.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thank you for the issue JooYoung. I cannot access the gif because it seems to be a private link.

actionRunner: this._actionRunner, actions: rest, contextMenuProvider: this._contextMenuService, <ins> ariaLabel: action.label </ins> }); } else { action = actionOrSubmenu; btn = this.addButton({ secondary: conifgProvider(action)?.isSecondary ?? secondary, <ins> ariaLabel: action.label </ins> }); }


Question: Tree Sticky Scroll uses caching to make sure that it does not have to rerender often. During the animation each frame/scroll has to be rerendered, which causes DOM elements to be removed and reconstructed. This could be improved by reusing the DOM elements and just adapting their heights.

readonly position: number; } <ins> function stickyScrollNodeStateEquals<T, TFilterData>(node1: StickyScrollNode<T, TFilterData>, node2: StickyScrollNode<T, TFilterData>) { return node1.position === node2.position && stickyScrollNodeEquals(node1, node2); } </ins> function stickyScrollNodeEquals<T, TFilterData>(node1: StickyScrollNode<T, TFilterData>, node2: StickyScrollNode<T, TFilterData>) { <del> return node1.position === node2.position && node1.node.element === node2.node.element && </del> <ins> return node1.node.element === node2.node.element && </ins> node1.startIndex === node2.startIndex && node1.height === node2.height && node1.endIndex === node2.endIndex; } <del> class StickyScrollState<T, TFilterData, TRef> extends Disposable { </del> <ins> class StickyScrollState<T, TFilterData, TRef> { </ins> constructor( readonly stickyNodes: StickyScrollNode<T, TFilterData>[] = [] <del> ) { super(); } </del> <ins> ) { } </ins> get count(): number { return this.stickyNodes.length; } equal(state: StickyScrollState<T, TFilterData, TRef>): boolean { <del> return equals(this.stickyNodes, state.stickyNodes, stickyScrollNodeEquals); </del> <ins> return equals(this.stickyNodes, state.stickyNodes, stickyScrollNodeStateEquals); </ins> } lastNodePartiallyVisible(): boolean {


Question: Tree Sticky Scroll uses caching to make sure that it does not have to rerender often. During the animation each frame/scroll has to be rerendered, which causes DOM elements to be removed and reconstructed. This could be improved by reusing the DOM elements and just adapting their heights.

return secondLastStickyNode.position + secondLastStickyNode.height !== lastStickyNode.position; } <del> addDisposable(disposable: IDisposable): void { this._register(disposable); </del> <ins> animationStateChanged(previousState: StickyScrollState<T, TFilterData, TRef>): boolean { if (!equals(this.stickyNodes, previousState.stickyNodes, stickyScrollNodeEquals)) { return false; } if (this.count === 0) { return false; } const lastStickyNode = this.stickyNodes[this.count - 1]; const previousLastStickyNode = previousState.stickyNodes[previousState.count - 1]; return lastStickyNode.position !== previousLastStickyNode.position; </ins> } }


Question: Tree Sticky Scroll uses caching to make sure that it does not have to rerender often. During the animation each frame/scroll has to be rerendered, which causes DOM elements to be removed and reconstructed. This could be improved by reusing the DOM elements and just adapting their heights.

private readonly _rootDomNode: HTMLElement; private _previousState: StickyScrollState<T, TFilterData, TRef> | undefined; <ins> private _previousElements: HTMLElement[] = []; private _previousStateDisposables: DisposableStore = new DisposableStore(); </ins> private stickyScrollFocus: StickyScrollFocus<T, TFilterData, TRef>; readonly onDidChangeHasFocus: Event<boolean>;


Question: Tree Sticky Scroll uses caching to make sure that it does not have to rerender often. During the animation each frame/scroll has to be rerendered, which causes DOM elements to be removed and reconstructed. This could be improved by reusing the DOM elements and just adapting their heights.

private readonly accessibilityProvider: IListAccessibilityProvider<T> | undefined, ) { <del> this._rootDomNode = document.createElement('div'); this._rootDomNode.classList.add('monaco-tree-sticky-container'); </del> <ins> this._rootDomNode = $('.monaco-tree-sticky-container'); </ins> container.appendChild(this._rootDomNode); <ins> const shadow = $('.monaco-tree-sticky-container-shadow'); this._rootDomNode.appendChild(shadow); </ins> this.stickyScrollFocus = new StickyScrollFocus(this._rootDomNode, view); this.onDidChangeHasFocus = this.stickyScrollFocus.onDidChangeHasFocus; this.onContextMenu = this.stickyScrollFocus.onContextMenu;


Question: Tree Sticky Scroll uses caching to make sure that it does not have to rerender often. During the animation each frame/scroll has to be rerendered, which causes DOM elements to be removed and reconstructed. This could be improved by reusing the DOM elements and just adapting their heights.

this.setVisible(isVisible); } <del> // Remove previous state this._previousState?.dispose(); this._previousState = state; </del> if (!isVisible) { <ins> this._previousState = undefined; this._previousElements = []; this._previousStateDisposables.clear(); </ins> return; } <del> const elements = Array(state.count); for (let stickyIndex = state.count - 1; stickyIndex >= 0; stickyIndex--) { const stickyNode = state.stickyNodes[stickyIndex]; const { element, disposable } = this.createElement(stickyNode, stickyIndex, state.count); elements[stickyIndex] = element; </del> <ins> const lastStickyNode = state.stickyNodes[state.count - 1]; </ins> <del> this._rootDomNode.appendChild(element); state.addDisposable(disposable); </del> <ins> // If the new state is only a change in the last node's position, update the position of the last element if (this._previousState && state.animationStateChanged(this._previousState)) { this._previousElements[this._previousState.count - 1].style.top = `${lastStickyNode.position}px`; </ins> } <ins> // create new dom elements else { this._previousStateDisposables.clear(); </ins> <del> this.stickyScrollFocus.updateElements(elements, state); </del> <ins> const elements = Array(state.count); for (let stickyIndex = state.count - 1; stickyIndex >= 0; stickyIndex--) { const stickyNode = state.stickyNodes[stickyIndex]; </ins> <del> // Add shadow element to the end of the widget const shadow = $('.monaco-tree-sticky-container-shadow'); this._rootDomNode.appendChild(shadow); state.addDisposable(toDisposable(() => shadow.remove())); </del> <ins> const { element, disposable } = this.createElement(stickyNode, stickyIndex, state.count); elements[stickyIndex] = element; this._rootDomNode.appendChild(element); this._previousStateDisposables.add(disposable); } this.stickyScrollFocus.updateElements(elements, state); this._previousState = state; this._previousElements = elements; } </ins> // Set the height of the widget to the bottom of the last sticky node <del> const lastStickyNode = state.stickyNodes[state.count - 1]; </del> this._rootDomNode.style.height = `${lastStickyNode.position + lastStickyNode.height}px`; }


Question: Tree Sticky Scroll uses caching to make sure that it does not have to rerender often. During the animation each frame/scroll has to be rerendered, which causes DOM elements to be removed and reconstructed. This could be improved by reusing the DOM elements and just adapting their heights.

dispose(): void { this.stickyScrollFocus.dispose(); <del> this._previousState?.dispose(); </del> <ins> this._previousStateDisposables.dispose(); </ins> this._rootDomNode.remove(); } }