Question:
The Angular language service extension spawns a child process using and listens for the and events. The current version works as expected. Without any changes to the project, simply updating to results in the forked child process acting differently (never erroring and never closing). I'm using Mac 13.3.1 but we also had a report that the forked process isn't working in WindowsNT x64 10.0. either. There was a similar issue (though not entirely the same) a while back: Apologies for the rather involved reproduction... Here's how I'm able to reproduce and compare the behavior between the versions: our the repository with vscode insider version 1.78.0-insiders out the branch (we're actually removing this in the next version so it doesn't exist on ) dependencies with debugging, put a debugger statement before and one in the . The project is built with bazel so breakpoints would have to be put in the compiled JS files. the build script with the extension development host (Dev Client + Server run configuration) In the extension host, open the and then open the template file -- debugger should stop on the fork and if you continue, you will see that the debugger stops in the stderr data listener but never in the or . The output of the stderr also indicates that it is listening for a debugger and that it gets attached. The fork used which should have prevented this. The process also never produces any results or completes. You can have the fork retry by running the Angular: Restart Angular Language server command in the extension host. I've also verified that the spawn args are the same between versions and both include "--ms-enable-electron-run-as-node".
Issue was caused by the allocator changes to processes which now schedule delayed tasks to purge memory cache ;l=1183 and that revealed a bug in the causing the process to hang.
<!-- 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!

.pipe(util.skipDirectories()) .pipe(util.fixWin32DirectoryPermissions()) .pipe(filter(['**', '!**/.github/**'], { dot: true })) // https://github.com/microsoft/vscode/issues/116523 <del> .pipe(electron({ ...config, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: true })) </del> <ins> .pipe(electron({ ...config, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false })) </ins> .pipe(filter(['**', '!LICENSE', '!LICENSES.chromium.html', '!version'], { dot: true })); if (platform === 'linux') {


Question:
The Angular language service extension spawns a child process using and listens for the and events. The current version works as expected. Without any changes to the project, simply updating to results in the forked child process acting differently (never erroring and never closing). I'm using Mac 13.3.1 but we also had a report that the forked process isn't working in WindowsNT x64 10.0. either. There was a similar issue (though not entirely the same) a while back: Apologies for the rather involved reproduction... Here's how I'm able to reproduce and compare the behavior between the versions: our the repository with vscode insider version 1.78.0-insiders out the branch (we're actually removing this in the next version so it doesn't exist on ) dependencies with debugging, put a debugger statement before and one in the . The project is built with bazel so breakpoints would have to be put in the compiled JS files. the build script with the extension development host (Dev Client + Server run configuration) In the extension host, open the and then open the template file -- debugger should stop on the fork and if you continue, you will see that the debugger stops in the stderr data listener but never in the or . The output of the stderr also indicates that it is listening for a debugger and that it gets attached. The fork used which should have prevented this. The process also never produces any results or completes. You can have the fork retry by running the Angular: Restart Angular Language server command in the extension host. I've also verified that the spawn args are the same between versions and both include "--ms-enable-electron-run-as-node".
Issue was caused by the allocator changes to processes which now schedule delayed tasks to purge memory cache ;l=1183 and that revealed a bug in the causing the process to hang.
<!-- 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!

}); } exports.config = { <del> version: product.electronRepository ? '22.4.4' : util.getElectronVersion(), </del> <ins> version: product.electronRepository ? '22.4.5' : util.getElectronVersion(), </ins> productAppName: product.nameLong, companyName: 'Microsoft Corporation', copyright: 'Copyright (C) 2023 Microsoft. All rights reserved',


Question:
The Angular language service extension spawns a child process using and listens for the and events. The current version works as expected. Without any changes to the project, simply updating to results in the forked child process acting differently (never erroring and never closing). I'm using Mac 13.3.1 but we also had a report that the forked process isn't working in WindowsNT x64 10.0. either. There was a similar issue (though not entirely the same) a while back: Apologies for the rather involved reproduction... Here's how I'm able to reproduce and compare the behavior between the versions: our the repository with vscode insider version 1.78.0-insiders out the branch (we're actually removing this in the next version so it doesn't exist on ) dependencies with debugging, put a debugger statement before and one in the . The project is built with bazel so breakpoints would have to be put in the compiled JS files. the build script with the extension development host (Dev Client + Server run configuration) In the extension host, open the and then open the template file -- debugger should stop on the fork and if you continue, you will see that the debugger stops in the stderr data listener but never in the or . The output of the stderr also indicates that it is listening for a debugger and that it gets attached. The fork used which should have prevented this. The process also never produces any results or completes. You can have the fork retry by running the Angular: Restart Angular Language server command in the extension host. I've also verified that the spawn args are the same between versions and both include "--ms-enable-electron-run-as-node".
Issue was caused by the allocator changes to processes which now schedule delayed tasks to purge memory cache ;l=1183 and that revealed a bug in the causing the process to hang.
<!-- 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!

const electronOpts = _.extend({}, exports.config, { platform: process.platform, arch: arch === 'armhf' ? 'arm' : arch, <del> ffmpegChromium: true, </del> <ins> ffmpegChromium: false, </ins> keepDefaultApp: true }); return vfs.src('package.json')


Question:
The Angular language service extension spawns a child process using and listens for the and events. The current version works as expected. Without any changes to the project, simply updating to results in the forked child process acting differently (never erroring and never closing). I'm using Mac 13.3.1 but we also had a report that the forked process isn't working in WindowsNT x64 10.0. either. There was a similar issue (though not entirely the same) a while back: Apologies for the rather involved reproduction... Here's how I'm able to reproduce and compare the behavior between the versions: our the repository with vscode insider version 1.78.0-insiders out the branch (we're actually removing this in the next version so it doesn't exist on ) dependencies with debugging, put a debugger statement before and one in the . The project is built with bazel so breakpoints would have to be put in the compiled JS files. the build script with the extension development host (Dev Client + Server run configuration) In the extension host, open the and then open the template file -- debugger should stop on the fork and if you continue, you will see that the debugger stops in the stderr data listener but never in the or . The output of the stderr also indicates that it is listening for a debugger and that it gets attached. The fork used which should have prevented this. The process also never produces any results or completes. You can have the fork retry by running the Angular: Restart Angular Language server command in the extension host. I've also verified that the spawn args are the same between versions and both include "--ms-enable-electron-run-as-node".
Issue was caused by the allocator changes to processes which now schedule delayed tasks to purge memory cache ;l=1183 and that revealed a bug in the causing the process to hang.
<!-- 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!

}; } async function main(arch = process.arch) { <del> const version = product.electronRepository ? '22.4.4' : util.getElectronVersion(); </del> <ins> const version = product.electronRepository ? '22.4.5' : util.getElectronVersion(); </ins> const electronPath = path.join(root, '.build', 'electron'); const versionFile = path.join(electronPath, 'version'); const isUpToDate = fs.existsSync(versionFile) && fs.readFileSync(versionFile, 'utf8') === `${version}`;


Question:
The Angular language service extension spawns a child process using and listens for the and events. The current version works as expected. Without any changes to the project, simply updating to results in the forked child process acting differently (never erroring and never closing). I'm using Mac 13.3.1 but we also had a report that the forked process isn't working in WindowsNT x64 10.0. either. There was a similar issue (though not entirely the same) a while back: Apologies for the rather involved reproduction... Here's how I'm able to reproduce and compare the behavior between the versions: our the repository with vscode insider version 1.78.0-insiders out the branch (we're actually removing this in the next version so it doesn't exist on ) dependencies with debugging, put a debugger statement before and one in the . The project is built with bazel so breakpoints would have to be put in the compiled JS files. the build script with the extension development host (Dev Client + Server run configuration) In the extension host, open the and then open the template file -- debugger should stop on the fork and if you continue, you will see that the debugger stops in the stderr data listener but never in the or . The output of the stderr also indicates that it is listening for a debugger and that it gets attached. The fork used which should have prevented this. The process also never produces any results or completes. You can have the fork retry by running the Angular: Restart Angular Language server command in the extension host. I've also verified that the spawn args are the same between versions and both include "--ms-enable-electron-run-as-node".
Issue was caused by the allocator changes to processes which now schedule delayed tasks to purge memory cache ;l=1183 and that revealed a bug in the causing the process to hang.
<!-- 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!


Question:
The Angular language service extension spawns a child process using and listens for the and events. The current version works as expected. Without any changes to the project, simply updating to results in the forked child process acting differently (never erroring and never closing). I'm using Mac 13.3.1 but we also had a report that the forked process isn't working in WindowsNT x64 10.0. either. There was a similar issue (though not entirely the same) a while back: Apologies for the rather involved reproduction... Here's how I'm able to reproduce and compare the behavior between the versions: our the repository with vscode insider version 1.78.0-insiders out the branch (we're actually removing this in the next version so it doesn't exist on ) dependencies with debugging, put a debugger statement before and one in the . The project is built with bazel so breakpoints would have to be put in the compiled JS files. the build script with the extension development host (Dev Client + Server run configuration) In the extension host, open the and then open the template file -- debugger should stop on the fork and if you continue, you will see that the debugger stops in the stderr data listener but never in the or . The output of the stderr also indicates that it is listening for a debugger and that it gets attached. The fork used which should have prevented this. The process also never produces any results or completes. You can have the fork retry by running the Angular: Restart Angular Language server command in the extension host. I've also verified that the spawn args are the same between versions and both include "--ms-enable-electron-run-as-node".
Issue was caused by the allocator changes to processes which now schedule delayed tasks to purge memory cache ;l=1183 and that revealed a bug in the causing the process to hang.
<!-- 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!

} export const config = { <del> version: product.electronRepository ? '22.4.4' : util.getElectronVersion(), </del> <ins> version: product.electronRepository ? '22.4.5' : util.getElectronVersion(), </ins> productAppName: product.nameLong, companyName: 'Microsoft Corporation', copyright: 'Copyright (C) 2023 Microsoft. All rights reserved',


Question:
The Angular language service extension spawns a child process using and listens for the and events. The current version works as expected. Without any changes to the project, simply updating to results in the forked child process acting differently (never erroring and never closing). I'm using Mac 13.3.1 but we also had a report that the forked process isn't working in WindowsNT x64 10.0. either. There was a similar issue (though not entirely the same) a while back: Apologies for the rather involved reproduction... Here's how I'm able to reproduce and compare the behavior between the versions: our the repository with vscode insider version 1.78.0-insiders out the branch (we're actually removing this in the next version so it doesn't exist on ) dependencies with debugging, put a debugger statement before and one in the . The project is built with bazel so breakpoints would have to be put in the compiled JS files. the build script with the extension development host (Dev Client + Server run configuration) In the extension host, open the and then open the template file -- debugger should stop on the fork and if you continue, you will see that the debugger stops in the stderr data listener but never in the or . The output of the stderr also indicates that it is listening for a debugger and that it gets attached. The fork used which should have prevented this. The process also never produces any results or completes. You can have the fork retry by running the Angular: Restart Angular Language server command in the extension host. I've also verified that the spawn args are the same between versions and both include "--ms-enable-electron-run-as-node".
Issue was caused by the allocator changes to processes which now schedule delayed tasks to purge memory cache ;l=1183 and that revealed a bug in the causing the process to hang.
<!-- 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!

const electronOpts = _.extend({}, config, { platform: process.platform, arch: arch === 'armhf' ? 'arm' : arch, <del> ffmpegChromium: true, </del> <ins> ffmpegChromium: false, </ins> keepDefaultApp: true });


Question:
The Angular language service extension spawns a child process using and listens for the and events. The current version works as expected. Without any changes to the project, simply updating to results in the forked child process acting differently (never erroring and never closing). I'm using Mac 13.3.1 but we also had a report that the forked process isn't working in WindowsNT x64 10.0. either. There was a similar issue (though not entirely the same) a while back: Apologies for the rather involved reproduction... Here's how I'm able to reproduce and compare the behavior between the versions: our the repository with vscode insider version 1.78.0-insiders out the branch (we're actually removing this in the next version so it doesn't exist on ) dependencies with debugging, put a debugger statement before and one in the . The project is built with bazel so breakpoints would have to be put in the compiled JS files. the build script with the extension development host (Dev Client + Server run configuration) In the extension host, open the and then open the template file -- debugger should stop on the fork and if you continue, you will see that the debugger stops in the stderr data listener but never in the or . The output of the stderr also indicates that it is listening for a debugger and that it gets attached. The fork used which should have prevented this. The process also never produces any results or completes. You can have the fork retry by running the Angular: Restart Angular Language server command in the extension host. I've also verified that the spawn args are the same between versions and both include "--ms-enable-electron-run-as-node".
Issue was caused by the allocator changes to processes which now schedule delayed tasks to purge memory cache ;l=1183 and that revealed a bug in the causing the process to hang.
<!-- 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!

} async function main(arch = process.arch): Promise<void> { <del> const version = product.electronRepository ? '22.4.4' : util.getElectronVersion(); </del> <ins> const version = product.electronRepository ? '22.4.5' : util.getElectronVersion(); </ins> const electronPath = path.join(root, '.build', 'electron'); const versionFile = path.join(electronPath, 'version'); const isUpToDate = fs.existsSync(versionFile) && fs.readFileSync(versionFile, 'utf8') === `${version}`;


Question:
<img width="1440" alt="image" src="https://user-"path: Versions:
I have one question wish can get help: how vscode terminal detect the path cwd? why can the path correctlly go to the file with a releative path? <img width="1440" alt="image" src="https://user-"I guess it may use the But seems I can get the cwd in TerminalLinkProvider now: <img width="1440" alt="image" src="https://user-"
We check a few things to determine which to use
vite become more and more popular recent days, I think it would be convinient to support the path with query string: !
When I click, it opens the right file, but it underlines the first query argument when I hover, is that an issue? <img width="539" alt="image" src=""
not much of an issue but it would look more polished by just underlining the whole thing

/** * Removes the optional link suffix which contains line and column information. <del> * @param link The link to parse. </del> <ins> * @param link The link to use. </ins> */ export function removeLinkSuffix(link: string): string { const suffix = getLinkSuffix(link)?.suffix;


Question:
<img width="1440" alt="image" src="https://user-"path: Versions:
I have one question wish can get help: how vscode terminal detect the path cwd? why can the path correctlly go to the file with a releative path? <img width="1440" alt="image" src="https://user-"I guess it may use the But seems I can get the cwd in TerminalLinkProvider now: <img width="1440" alt="image" src="https://user-"
We check a few things to determine which to use
vite become more and more popular recent days, I think it would be convinient to support the path with query string: !
When I click, it opens the right file, but it underlines the first query argument when I hover, is that an issue? <img width="539" alt="image" src=""
not much of an issue but it would look more polished by just underlining the whole thing

} /** <ins> * Removes any query string from the link. * @param link The link to use. */ export function removeLinkQueryString(link: string): string { // Skip ? in UNC paths const start = link.startsWith('?') ? 4 : 0; const index = link.indexOf('?', start); if (index === -1) { return link; } return link.substring(0, index); } /** </ins> * Returns the optional link suffix which contains line and column information. * @param link The link to parse. */


Question:
<img width="1440" alt="image" src="https://user-"path: Versions:
I have one question wish can get help: how vscode terminal detect the path cwd? why can the path correctlly go to the file with a releative path? <img width="1440" alt="image" src="https://user-"I guess it may use the But seems I can get the cwd in TerminalLinkProvider now: <img width="1440" alt="image" src="https://user-"
We check a few things to determine which to use
vite become more and more popular recent days, I think it would be convinient to support the path with query string: !
When I click, it opens the right file, but it underlines the first query argument when I hover, is that an issue? <img width="539" alt="image" src=""
not much of an issue but it would look more polished by just underlining the whole thing

*--------------------------------------------------------------------------------------------*/ import { ITerminalLinkResolver, ResolvedLink } from 'vs/workbench/contrib/terminalContrib/links/browser/links'; <del> import { removeLinkSuffix, winDrivePrefix } from 'vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing'; </del> <ins> import { removeLinkSuffix, removeLinkQueryString, winDrivePrefix } from 'vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing'; </ins> import { URI } from 'vs/base/common/uri'; import { ITerminalBackend, ITerminalProcessManager } from 'vs/workbench/contrib/terminal/common/terminal'; import { Schemas } from 'vs/base/common/network';


Question:
<img width="1440" alt="image" src="https://user-"path: Versions:
I have one question wish can get help: how vscode terminal detect the path cwd? why can the path correctlly go to the file with a releative path? <img width="1440" alt="image" src="https://user-"I guess it may use the But seems I can get the cwd in TerminalLinkProvider now: <img width="1440" alt="image" src="https://user-"
We check a few things to determine which to use
vite become more and more popular recent days, I think it would be convinient to support the path with query string: !
When I click, it opens the right file, but it underlines the first query argument when I hover, is that an issue? <img width="539" alt="image" src=""
not much of an issue but it would look more polished by just underlining the whole thing

} } <del> // Remove any line/col suffix before processing the path </del> <ins> // Remove any line/col suffix </ins> let linkUrl = removeLinkSuffix(link); <del> if (!linkUrl) { </del> <ins> // Remove any query string linkUrl = removeLinkQueryString(linkUrl); // Exit early if the link is determines as not valid already if (linkUrl.length === 0) { </ins> cache.set(link, null); return null; }


Question:
<img width="1440" alt="image" src="https://user-"path: Versions:
I have one question wish can get help: how vscode terminal detect the path cwd? why can the path correctlly go to the file with a releative path? <img width="1440" alt="image" src="https://user-"I guess it may use the But seems I can get the cwd in TerminalLinkProvider now: <img width="1440" alt="image" src="https://user-"
We check a few things to determine which to use
vite become more and more popular recent days, I think it would be convinient to support the path with query string: !
When I click, it opens the right file, but it underlines the first query argument when I hover, is that an issue? <img width="539" alt="image" src=""
not much of an issue but it would look more polished by just underlining the whole thing

import { deepStrictEqual, ok, strictEqual } from 'assert'; import { OperatingSystem } from 'vs/base/common/platform'; <del> import { detectLinks, detectLinkSuffixes, getLinkSuffix, IParsedLink, removeLinkSuffix } from 'vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing'; </del> <ins> import { detectLinks, detectLinkSuffixes, getLinkSuffix, IParsedLink, removeLinkQueryString, removeLinkSuffix } from 'vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing'; </ins> interface ITestLink { link: string;


Question:
<img width="1440" alt="image" src="https://user-"path: Versions:
I have one question wish can get help: how vscode terminal detect the path cwd? why can the path correctlly go to the file with a releative path? <img width="1440" alt="image" src="https://user-"I guess it may use the But seems I can get the cwd in TerminalLinkProvider now: <img width="1440" alt="image" src="https://user-"
We check a few things to determine which to use
vite become more and more popular recent days, I think it would be convinient to support the path with query string: !
When I click, it opens the right file, but it underlines the first query argument when I hover, is that an issue? <img width="539" alt="image" src=""
not much of an issue but it would look more polished by just underlining the whole thing

); }); }); <ins> suite('removeLinkQueryString', () => { test('should remove any query string from the link', () => { strictEqual(removeLinkQueryString('?a=b'), ''); strictEqual(removeLinkQueryString('foo?a=b'), 'foo'); strictEqual(removeLinkQueryString('./foo?a=b'), './foo'); strictEqual(removeLinkQueryString('/foo/bar?a=b'), '/foo/bar'); strictEqual(removeLinkQueryString('foo?a=b?'), 'foo'); strictEqual(removeLinkQueryString('foo?a=b&c=d'), 'foo'); }); test('should respect ? in UNC paths', () => { strictEqual(removeLinkQueryString('?foo?a=b'), '?foo',); }); }); </ins> suite('detectLinks', () => { test('foo(1, 2) bar[3, 4] "baz" on line 5', () => { deepStrictEqual(


Question:
Does this issue occur when all extensions are disabled?: Yes VS Code Version: 1.77.3 OS Version: Ubuntu 20.04.5 Steps to Reproduce: (incorrect category, should be themes) outputs: suggestion: Get warning:
<!-- 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!

'builtin-extensions-dir': { type: 'string' }, 'list-extensions': { type: 'boolean', cat: 'e', description: localize('listExtensions', "List the installed extensions.") }, 'show-versions': { type: 'boolean', cat: 'e', description: localize('showVersions', "Show versions of installed extensions, when using --list-extensions.") }, <del> 'category': { type: 'string', cat: 'e', description: localize('category', "Filters installed extensions by provided category, when using --list-extensions."), args: 'category' }, </del> <ins> 'category': { type: 'string', allowEmptyValue: true, cat: 'e', description: localize('category', "Filters installed extensions by provided category, when using --list-extensions."), args: 'category' }, </ins> 'install-extension': { type: 'string[]', cat: 'e', args: 'ext-id | path', description: localize('installExtension', "Installs or updates an extension. The argument is either an extension id or a path to a VSIX. The identifier of an extension is '${publisher}.${name}'. Use '--force' argument to update to latest version. To install a specific version provide '@${version}'. For example: 'vscode.csharp@1.2.3'.") }, 'pre-release': { type: 'boolean', cat: 'e', description: localize('install prerelease', "Installs the pre-release version of the extension, when using --install-extension") }, 'uninstall-extension': { type: 'string[]', cat: 'e', args: 'ext-id', description: localize('uninstallExtension', "Uninstalls an extension.") },


Question:
Type: <bBug</bHow to reproduce the issue: and Run the Extension the , and then the pane. Use the dropdown and select the Dynamic Configuration Provider . With the checked out branch, it will show the quick pick options for Option 1 - 3, but will not show a quick pick for the resolved configurations. This seems to work for , but not Expected: ! Actual: ! VS Code version: Code 1.77.3 (, 2023-04-12T09:16:02.548Z) OS version: WindowsNT x64 10.0. Modes: Sandboxed: No <details<summarySystem Info</summary </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.78.0. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
I've updated to: and it still reproduces.
for prioritization help as per email thread
Sent a PR for this. But what is the inner quickpick? I'm a little unsure about the approach, I don't think we expect a provider to include some UI. Your extension doesn't own the UI in this flow- you are just implementing a provider method which will be invoked at different times, expected to return a list of configs. It might make sense in one situation to show the quick pick, but we could make changes in vscode to call your provider at a different time where it would be unexpected to have a quick pick pop up. And, any extension can implement a config provider for your debug type. So for example, multiple extensions could all be showing their own UI in this scenario. However, from memory, I think the Python debug extension might already have a similar multi-step picker UI for a scenario like this.

pick: async () => { // Do a late 'onDebugDynamicConfigurationsName' activation so extensions are not activated too early #108578 await this.adapterManager.activateDebuggers(onDebugDynamicConfigurationsName, type); <del> const disposables = new DisposableStore(); const input = disposables.add(this.quickInputService.createQuickPick<IDynamicPickItem>()); input.busy = true; input.placeholder = nls.localize('selectConfiguration', "Select Launch Configuration"); input.show(); const chosenPromise = new Promise<IDynamicPickItem | undefined>(resolve => { disposables.add(input.onDidAccept(() => resolve(input.activeItems[0]))); disposables.add(input.onDidTriggerItemButton(async (context) => { resolve(undefined); const { launch, config } = context.item; await launch.openConfigFile({ preserveFocus: false, type: config.type, suppressInitialConfigs: true }); // Only Launch have a pin trigger button await (launch as Launch).writeConfiguration(config); await this.selectConfiguration(launch, config.name); this.removeRecentDynamicConfigurations(config.name, config.type); })); }); </del> const token = new CancellationTokenSource(); const picks: Promise<IDynamicPickItem[]>[] = [];


Question:
Type: <bBug</bHow to reproduce the issue: and Run the Extension the , and then the pane. Use the dropdown and select the Dynamic Configuration Provider . With the checked out branch, it will show the quick pick options for Option 1 - 3, but will not show a quick pick for the resolved configurations. This seems to work for , but not Expected: ! Actual: ! VS Code version: Code 1.77.3 (, 2023-04-12T09:16:02.548Z) OS version: WindowsNT x64 10.0. Modes: Sandboxed: No <details<summarySystem Info</summary </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.78.0. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
I've updated to: and it still reproduces.
for prioritization help as per email thread
Sent a PR for this. But what is the inner quickpick? I'm a little unsure about the approach, I don't think we expect a provider to include some UI. Your extension doesn't own the UI in this flow- you are just implementing a provider method which will be invoked at different times, expected to return a list of configs. It might make sense in one situation to show the quick pick, but we could make changes in vscode to call your provider at a different time where it would be unexpected to have a quick pick pop up. And, any extension can implement a config provider for your debug type. So for example, multiple extensions could all be showing their own UI in this scenario. However, from memory, I think the Python debug extension might already have a similar multi-step picker UI for a scenario like this.

} }); <ins> const disposables = new DisposableStore(); const input = disposables.add(this.quickInputService.createQuickPick<IDynamicPickItem>()); input.busy = true; input.placeholder = nls.localize('selectConfiguration', "Select Launch Configuration"); const chosenPromise = new Promise<IDynamicPickItem | undefined>(resolve => { disposables.add(input.onDidAccept(() => resolve(input.activeItems[0]))); disposables.add(input.onDidTriggerItemButton(async (context) => { resolve(undefined); const { launch, config } = context.item; await launch.openConfigFile({ preserveFocus: false, type: config.type, suppressInitialConfigs: true }); // Only Launch have a pin trigger button await (launch as Launch).writeConfiguration(config); await this.selectConfiguration(launch, config.name); this.removeRecentDynamicConfigurations(config.name, config.type); })); }); </ins> const nestedPicks = await Promise.all(picks); const items = flatten(nestedPicks); input.items = items; input.busy = false; <ins> input.show(); </ins> const chosen = await chosenPromise; disposables.dispose();


Question:
https://user- problem extension:
I have the same problem in tooltips of TreeItem. I thought it was associated with my extension, but apparently not. This behavior does not happen with the GitLens extension.
This issue only happen to stausBarItem at left side
!
this issue should be mark new release label
can you help look into this issue?
Wasn't this always like this? I just tested and it's not hoverable in 1.78.0 either. You can hold alt to hover it though which is a common feature of hovers (outside the editor)
1.78 is the current VSCode version - the one where it broke. 1.77 and below works properly.
Doh, checking an older one
Looks like the hover only sticks if there are textual links in it. Example is the hover on the next to the language selector. I didn't change anything in the hover area recently.
that's how it used to work, it doesn't anymore. and I made some changes around this recently, it was probably us.
this is by design if the content does not contain any links. Hold alt to "lock" any hover
This is happening because you're using an anchor tag, a change was made recently to only force hovering when the hover contained "](". I'll add an anchor tag check.
Curious, because in these tooltips I never used links (html or md) and it worked. Recently this behavior started This tooltip has always been used by my users to copy information, by simply selecting and CTRL + C
previously the logic would disable hide on hover if it was any markdown string which is why it was like that. If the user wants to copy information they can do so by . I know it's not the most discoverable but it's intuitive once you know about it. It's a harder problem than you might expect because if it didn't behave like this we would get the opposite type of issue where hovers are really annoying because they don't dismiss. So we don't hide hovers on mouse over only when there's a high chance of interaction.

} else { if (options.hideOnHover === undefined) { // When unset, will default to true when it's a string or when it's markdown that  // appears to have a link using a naive check for '](' hideOnHover = typeof options.content === 'string' || isMarkdownString(options.content) && !options.content.value.includes('](');   // appears to have a link using a naive check for '](' and '' hideOnHover = typeof options.content === 'string' || isMarkdownString(options.content) && !options.content.value.includes('](') && !options.content.value.includes('');  } else { // It's set explicitly hideOnHover = options.hideOnHover;


Question:
Type: <bBug</bCC: I noticed that I can't navigate the accessible buffer using ctrl left arrow or ctrl+right arrow. When using this combination orca treats the whole line as if it were a single word. Except for misunderstandings, this happens because the blank spaces present in the accessible buffer are being replaced by the character 0xa0. I ran the command echo "this is test" in the VSCode terminal and ran the same command in the gnome terminal. Browsing character by character with orca I noticed that in the gnome terminal space appears as 0x20 and in the accessible buffer it appears as 0xa0. VS Code version: Code - Insiders 1.79.0-insider (, 2023-05-04T22:12:16.054Z) OS version: Linux x64 6.2.14-300.fc38.x8664 Modes: Sandboxed: Yes Remote OS version: Linux x64 4.14.146-93.123.amzn1.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (44)</summaryExtensionVersion ------ doxdocgen1.4.0 vscode-markdownlint0.50.0 vscode-eslint2.4.0 EditorConfig0.16.4 copilot1.86.82 rest-client0.25.1 better-cpp-syntax1.17.2 docomment1.0.0 azure-pipelines1.208.0 vscode-docker1.25.0 csharp1.25.7 vscode-dotnet-runtime1.6.0 vscode-kubernetes-tools1.3.11 remote-containers0.293.0 remote-ssh0.101. remote-ssh-edit0.84.0 azure-account0.11.4 azurecli0.5.0 cmake-tools1.14.31 cpptools1.15.4 cpptools-extension-pack1.3.0 makefile-tools0.7.0 powershell2023.5.0 remote-explorer0.5. vsliveshare1.0.5864 oracledevtools21.5.0 fabric8-analytics0.3.6 java1.19. vscode-xml0.25. vscode-yaml1.12.2 sonarlint-vscode3.17.0 cmake0.0.17 intellicode-api-usage-examples0.2.7 vscodeintellicode1.2.30 vscode-boot-dev-pack0.2.1 vscode-spring-boot1.46.0 vscode-java-debug0.50. vscode-java-dependency0.22. vscode-java-pack0.25. vscode-java-test0.38. vscode-maven0.41. vscode-spring-boot-dashboard0.13.0 vscode-spring-initializr0.11.2 gitblame10.2.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
We replace these spaces intentionally, but I'm not sure why . thoughts?
As it is, I can't use orca to select words and I can't navigate by words either.
We replace it with a non-breaking space such that white space appears the same as it would in the terminal. I wasn't aware it has this impact on screen readers (maybe it's just orca?) but we could workaround it by replacing (2 spaces) with . That should keep tables, ls, etc. aligned while fixing the problem at hand. It seems like an Orca issue though as I'm pretty sure a non-breaking space should be getting treated as a space.
I also think this should be corrected on the Orca side because the same problem also exists when I'm editing a file. I can't navigate through words in a text when they are separated by the 0x0 character." Reported this issue on the Orca mailing list.
<!-- 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!
This doesn't appear to be fixed: ! ! It is changing multiple lines to include a single space character as expected, but see the first line where single spaces are changed. I'm questioning the fix we came up with though, monaco replaces spaces anyway in the editor: ! I think we should revert this and have orca fix it, instead of trying to workaround their problem which could end up causing other issues for us?
I ended up reporting this problem to the orca developers because the problem also exists when I'm editing a file that has words separated by the character 0xa0. I believe the problem will be dealt with on the orca side.
If I understand what reported correctly, I don't think this is an Orca issue. When Orca is in focus mode, it does not control or consume input events. In other words, Ctrl+Right/Left arrow will do whatever they would do without Orca running. And from some testing, when the words are separated by 0xa0, VS Code (or Chromium) is treating the string as a single word. If, in those same places, I switch Orca to browse mode, Orca IS controlling/consuming the input events, and it already does treat the string as individual words. But if I'm missing something, please let me know what I should be fixing in Orca. Thanks!
Here are the steps I am using to reproduce the problem which I believe is reporting: sure Orca is NOT running. a new document. "This" Ctrl+Shift+U "00a0" followed by return to insert a non-breaking space character "is" steps 4 and 5. "a" steps 4 and 5. "test." Home to move to the beginning of the line. Ctrl+Right to move to the next word. Expected results: The caret would move just past the "s" of "This". Actual results: The caret immediately jumps to the "." at the end of the sentence.
thanks for the follow up, you're right. we should not be replacing it with non-breaking spaces as monaco handles their presentation. When you paste in the characters like describes (I did it by running 'u00a0' in console and copying that) you can see they're treated specially, we also have a lint rule to prevent this in vscode: !

const isWrapped = buffer.getLine(i + 1)?.isWrapped; currentLine += line.translateToString(!isWrapped); if (currentLine && !isWrapped || i === (buffer.baseY + this._xterm.raw.rows - 1)) { <del> const line = replaceWithNonBreakingSpaces(currentLine); </del> if (line.length) { <del> cachedLines.push(line); </del> <ins> cachedLines.push(currentLine); </ins> currentLine = ''; } }


Question:
Type: <bBug</bCC: I noticed that I can't navigate the accessible buffer using ctrl left arrow or ctrl+right arrow. When using this combination orca treats the whole line as if it were a single word. Except for misunderstandings, this happens because the blank spaces present in the accessible buffer are being replaced by the character 0xa0. I ran the command echo "this is test" in the VSCode terminal and ran the same command in the gnome terminal. Browsing character by character with orca I noticed that in the gnome terminal space appears as 0x20 and in the accessible buffer it appears as 0xa0. VS Code version: Code - Insiders 1.79.0-insider (, 2023-05-04T22:12:16.054Z) OS version: Linux x64 6.2.14-300.fc38.x8664 Modes: Sandboxed: Yes Remote OS version: Linux x64 4.14.146-93.123.amzn1.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (44)</summaryExtensionVersion ------ doxdocgen1.4.0 vscode-markdownlint0.50.0 vscode-eslint2.4.0 EditorConfig0.16.4 copilot1.86.82 rest-client0.25.1 better-cpp-syntax1.17.2 docomment1.0.0 azure-pipelines1.208.0 vscode-docker1.25.0 csharp1.25.7 vscode-dotnet-runtime1.6.0 vscode-kubernetes-tools1.3.11 remote-containers0.293.0 remote-ssh0.101. remote-ssh-edit0.84.0 azure-account0.11.4 azurecli0.5.0 cmake-tools1.14.31 cpptools1.15.4 cpptools-extension-pack1.3.0 makefile-tools0.7.0 powershell2023.5.0 remote-explorer0.5. vsliveshare1.0.5864 oracledevtools21.5.0 fabric8-analytics0.3.6 java1.19. vscode-xml0.25. vscode-yaml1.12.2 sonarlint-vscode3.17.0 cmake0.0.17 intellicode-api-usage-examples0.2.7 vscodeintellicode1.2.30 vscode-boot-dev-pack0.2.1 vscode-spring-boot1.46.0 vscode-java-debug0.50. vscode-java-dependency0.22. vscode-java-pack0.25. vscode-java-test0.38. vscode-maven0.41. vscode-spring-boot-dashboard0.13.0 vscode-spring-initializr0.11.2 gitblame10.2.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
We replace these spaces intentionally, but I'm not sure why . thoughts?
As it is, I can't use orca to select words and I can't navigate by words either.
We replace it with a non-breaking space such that white space appears the same as it would in the terminal. I wasn't aware it has this impact on screen readers (maybe it's just orca?) but we could workaround it by replacing (2 spaces) with . That should keep tables, ls, etc. aligned while fixing the problem at hand. It seems like an Orca issue though as I'm pretty sure a non-breaking space should be getting treated as a space.
I also think this should be corrected on the Orca side because the same problem also exists when I'm editing a file. I can't navigate through words in a text when they are separated by the 0x0 character." Reported this issue on the Orca mailing list.
<!-- 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!
This doesn't appear to be fixed: ! ! It is changing multiple lines to include a single space character as expected, but see the first line where single spaces are changed. I'm questioning the fix we came up with though, monaco replaces spaces anyway in the editor: ! I think we should revert this and have orca fix it, instead of trying to workaround their problem which could end up causing other issues for us?
I ended up reporting this problem to the orca developers because the problem also exists when I'm editing a file that has words separated by the character 0xa0. I believe the problem will be dealt with on the orca side.
If I understand what reported correctly, I don't think this is an Orca issue. When Orca is in focus mode, it does not control or consume input events. In other words, Ctrl+Right/Left arrow will do whatever they would do without Orca running. And from some testing, when the words are separated by 0xa0, VS Code (or Chromium) is treating the string as a single word. If, in those same places, I switch Orca to browse mode, Orca IS controlling/consuming the input events, and it already does treat the string as individual words. But if I'm missing something, please let me know what I should be fixing in Orca. Thanks!
Here are the steps I am using to reproduce the problem which I believe is reporting: sure Orca is NOT running. a new document. "This" Ctrl+Shift+U "00a0" followed by return to insert a non-breaking space character "is" steps 4 and 5. "a" steps 4 and 5. "test." Home to move to the beginning of the line. Ctrl+Right to move to the next word. Expected results: The caret would move just past the "s" of "This". Actual results: The caret immediately jumps to the "." at the end of the sentence.
thanks for the follow up, you're right. we should not be replacing it with non-breaking spaces as monaco handles their presentation. When you paste in the characters like describes (I did it by running 'u00a0' in console and copying that) you can see they're treated specially, we also have a lint rule to prevent this in vscode: !

const isWrapped = buffer.getLine(i + 1)?.isWrapped; currentLine += line.translateToString(!isWrapped); if (currentLine && !isWrapped || i === (buffer.baseY + this._xterm.raw.rows - 1)) { <del> const line = replaceWithNonBreakingSpaces(currentLine); if (line.length) { </del> <ins> if (currentLine.length) { </ins> this._priorEditorViewportLineCount++; <del> this._lines.push(line); </del> <ins> this._lines.push(currentLine); </ins> currentLine = ''; } }


Question:
Type: <bBug</bCC: I noticed that I can't navigate the accessible buffer using ctrl left arrow or ctrl+right arrow. When using this combination orca treats the whole line as if it were a single word. Except for misunderstandings, this happens because the blank spaces present in the accessible buffer are being replaced by the character 0xa0. I ran the command echo "this is test" in the VSCode terminal and ran the same command in the gnome terminal. Browsing character by character with orca I noticed that in the gnome terminal space appears as 0x20 and in the accessible buffer it appears as 0xa0. VS Code version: Code - Insiders 1.79.0-insider (, 2023-05-04T22:12:16.054Z) OS version: Linux x64 6.2.14-300.fc38.x8664 Modes: Sandboxed: Yes Remote OS version: Linux x64 4.14.146-93.123.amzn1.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (44)</summaryExtensionVersion ------ doxdocgen1.4.0 vscode-markdownlint0.50.0 vscode-eslint2.4.0 EditorConfig0.16.4 copilot1.86.82 rest-client0.25.1 better-cpp-syntax1.17.2 docomment1.0.0 azure-pipelines1.208.0 vscode-docker1.25.0 csharp1.25.7 vscode-dotnet-runtime1.6.0 vscode-kubernetes-tools1.3.11 remote-containers0.293.0 remote-ssh0.101. remote-ssh-edit0.84.0 azure-account0.11.4 azurecli0.5.0 cmake-tools1.14.31 cpptools1.15.4 cpptools-extension-pack1.3.0 makefile-tools0.7.0 powershell2023.5.0 remote-explorer0.5. vsliveshare1.0.5864 oracledevtools21.5.0 fabric8-analytics0.3.6 java1.19. vscode-xml0.25. vscode-yaml1.12.2 sonarlint-vscode3.17.0 cmake0.0.17 intellicode-api-usage-examples0.2.7 vscodeintellicode1.2.30 vscode-boot-dev-pack0.2.1 vscode-spring-boot1.46.0 vscode-java-debug0.50. vscode-java-dependency0.22. vscode-java-pack0.25. vscode-java-test0.38. vscode-maven0.41. vscode-spring-boot-dashboard0.13.0 vscode-spring-initializr0.11.2 gitblame10.2.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
We replace these spaces intentionally, but I'm not sure why . thoughts?
As it is, I can't use orca to select words and I can't navigate by words either.
We replace it with a non-breaking space such that white space appears the same as it would in the terminal. I wasn't aware it has this impact on screen readers (maybe it's just orca?) but we could workaround it by replacing (2 spaces) with . That should keep tables, ls, etc. aligned while fixing the problem at hand. It seems like an Orca issue though as I'm pretty sure a non-breaking space should be getting treated as a space.
I also think this should be corrected on the Orca side because the same problem also exists when I'm editing a file. I can't navigate through words in a text when they are separated by the 0x0 character." Reported this issue on the Orca mailing list.
<!-- 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!
This doesn't appear to be fixed: ! ! It is changing multiple lines to include a single space character as expected, but see the first line where single spaces are changed. I'm questioning the fix we came up with though, monaco replaces spaces anyway in the editor: ! I think we should revert this and have orca fix it, instead of trying to workaround their problem which could end up causing other issues for us?
I ended up reporting this problem to the orca developers because the problem also exists when I'm editing a file that has words separated by the character 0xa0. I believe the problem will be dealt with on the orca side.
If I understand what reported correctly, I don't think this is an Orca issue. When Orca is in focus mode, it does not control or consume input events. In other words, Ctrl+Right/Left arrow will do whatever they would do without Orca running. And from some testing, when the words are separated by 0xa0, VS Code (or Chromium) is treating the string as a single word. If, in those same places, I switch Orca to browse mode, Orca IS controlling/consuming the input events, and it already does treat the string as individual words. But if I'm missing something, please let me know what I should be fixing in Orca. Thanks!
Here are the steps I am using to reproduce the problem which I believe is reporting: sure Orca is NOT running. a new document. "This" Ctrl+Shift+U "00a0" followed by return to insert a non-breaking space character "is" steps 4 and 5. "a" steps 4 and 5. "test." Home to move to the beginning of the line. Ctrl+Right to move to the next word. Expected results: The caret would move just past the "s" of "This". Actual results: The caret immediately jumps to the "." at the end of the sentence.
thanks for the follow up, you're right. we should not be replacing it with non-breaking spaces as monaco handles their presentation. When you paste in the characters like describes (I did it by running 'u00a0' in console and copying that) you can see they're treated specially, we also have a lint rule to prevent this in vscode: !

this._logService.debug('Viewport content update complete, ', this._lines.length, ' lines in the viewport'); } } <del> export function replaceWithNonBreakingSpaces(s: string): string { return s.replace(new RegExp('  ', 'g'), ' xA0'); } </del>


Question:
Type: <bBug</bCC: I noticed that I can't navigate the accessible buffer using ctrl left arrow or ctrl+right arrow. When using this combination orca treats the whole line as if it were a single word. Except for misunderstandings, this happens because the blank spaces present in the accessible buffer are being replaced by the character 0xa0. I ran the command echo "this is test" in the VSCode terminal and ran the same command in the gnome terminal. Browsing character by character with orca I noticed that in the gnome terminal space appears as 0x20 and in the accessible buffer it appears as 0xa0. VS Code version: Code - Insiders 1.79.0-insider (, 2023-05-04T22:12:16.054Z) OS version: Linux x64 6.2.14-300.fc38.x8664 Modes: Sandboxed: Yes Remote OS version: Linux x64 4.14.146-93.123.amzn1.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (44)</summaryExtensionVersion ------ doxdocgen1.4.0 vscode-markdownlint0.50.0 vscode-eslint2.4.0 EditorConfig0.16.4 copilot1.86.82 rest-client0.25.1 better-cpp-syntax1.17.2 docomment1.0.0 azure-pipelines1.208.0 vscode-docker1.25.0 csharp1.25.7 vscode-dotnet-runtime1.6.0 vscode-kubernetes-tools1.3.11 remote-containers0.293.0 remote-ssh0.101. remote-ssh-edit0.84.0 azure-account0.11.4 azurecli0.5.0 cmake-tools1.14.31 cpptools1.15.4 cpptools-extension-pack1.3.0 makefile-tools0.7.0 powershell2023.5.0 remote-explorer0.5. vsliveshare1.0.5864 oracledevtools21.5.0 fabric8-analytics0.3.6 java1.19. vscode-xml0.25. vscode-yaml1.12.2 sonarlint-vscode3.17.0 cmake0.0.17 intellicode-api-usage-examples0.2.7 vscodeintellicode1.2.30 vscode-boot-dev-pack0.2.1 vscode-spring-boot1.46.0 vscode-java-debug0.50. vscode-java-dependency0.22. vscode-java-pack0.25. vscode-java-test0.38. vscode-maven0.41. vscode-spring-boot-dashboard0.13.0 vscode-spring-initializr0.11.2 gitblame10.2.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
We replace these spaces intentionally, but I'm not sure why . thoughts?
As it is, I can't use orca to select words and I can't navigate by words either.
We replace it with a non-breaking space such that white space appears the same as it would in the terminal. I wasn't aware it has this impact on screen readers (maybe it's just orca?) but we could workaround it by replacing (2 spaces) with . That should keep tables, ls, etc. aligned while fixing the problem at hand. It seems like an Orca issue though as I'm pretty sure a non-breaking space should be getting treated as a space.
I also think this should be corrected on the Orca side because the same problem also exists when I'm editing a file. I can't navigate through words in a text when they are separated by the 0x0 character." Reported this issue on the Orca mailing list.
<!-- 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!
This doesn't appear to be fixed: ! ! It is changing multiple lines to include a single space character as expected, but see the first line where single spaces are changed. I'm questioning the fix we came up with though, monaco replaces spaces anyway in the editor: ! I think we should revert this and have orca fix it, instead of trying to workaround their problem which could end up causing other issues for us?
I ended up reporting this problem to the orca developers because the problem also exists when I'm editing a file that has words separated by the character 0xa0. I believe the problem will be dealt with on the orca side.
If I understand what reported correctly, I don't think this is an Orca issue. When Orca is in focus mode, it does not control or consume input events. In other words, Ctrl+Right/Left arrow will do whatever they would do without Orca running. And from some testing, when the words are separated by 0xa0, VS Code (or Chromium) is treating the string as a single word. If, in those same places, I switch Orca to browse mode, Orca IS controlling/consuming the input events, and it already does treat the string as individual words. But if I'm missing something, please let me know what I should be fixing in Orca. Thanks!
Here are the steps I am using to reproduce the problem which I believe is reporting: sure Orca is NOT running. a new document. "This" Ctrl+Shift+U "00a0" followed by return to insert a non-breaking space character "is" steps 4 and 5. "a" steps 4 and 5. "test." Home to move to the beginning of the line. Ctrl+Right to move to the next word. Expected results: The caret would move just past the "s" of "This". Actual results: The caret immediately jumps to the "." at the end of the sentence.
thanks for the follow up, you're right. we should not be replacing it with non-breaking spaces as monaco handles their presentation. When you paste in the characters like describes (I did it by running 'u00a0' in console and copying that) you can see they're treated specially, we also have a lint rule to prevent this in vscode: !

import { writeP } from 'vs/workbench/contrib/terminal/browser/terminalTestHelpers'; import { XtermTerminal } from 'vs/workbench/contrib/terminal/browser/xterm/xtermTerminal'; import { ITerminalConfiguration } from 'vs/workbench/contrib/terminal/common/terminal'; <del> import { BufferContentTracker, replaceWithNonBreakingSpaces } from 'vs/workbench/contrib/terminalContrib/accessibility/browser/bufferContentTracker'; </del> <ins> import { BufferContentTracker } from 'vs/workbench/contrib/terminalContrib/accessibility/browser/bufferContentTracker'; </ins> import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { TestLifecycleService } from 'vs/workbench/test/browser/workbenchTestServices'; import { Terminal } from 'xterm';


Question:
Type: <bBug</bCC: I noticed that I can't navigate the accessible buffer using ctrl left arrow or ctrl+right arrow. When using this combination orca treats the whole line as if it were a single word. Except for misunderstandings, this happens because the blank spaces present in the accessible buffer are being replaced by the character 0xa0. I ran the command echo "this is test" in the VSCode terminal and ran the same command in the gnome terminal. Browsing character by character with orca I noticed that in the gnome terminal space appears as 0x20 and in the accessible buffer it appears as 0xa0. VS Code version: Code - Insiders 1.79.0-insider (, 2023-05-04T22:12:16.054Z) OS version: Linux x64 6.2.14-300.fc38.x8664 Modes: Sandboxed: Yes Remote OS version: Linux x64 4.14.146-93.123.amzn1.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (44)</summaryExtensionVersion ------ doxdocgen1.4.0 vscode-markdownlint0.50.0 vscode-eslint2.4.0 EditorConfig0.16.4 copilot1.86.82 rest-client0.25.1 better-cpp-syntax1.17.2 docomment1.0.0 azure-pipelines1.208.0 vscode-docker1.25.0 csharp1.25.7 vscode-dotnet-runtime1.6.0 vscode-kubernetes-tools1.3.11 remote-containers0.293.0 remote-ssh0.101. remote-ssh-edit0.84.0 azure-account0.11.4 azurecli0.5.0 cmake-tools1.14.31 cpptools1.15.4 cpptools-extension-pack1.3.0 makefile-tools0.7.0 powershell2023.5.0 remote-explorer0.5. vsliveshare1.0.5864 oracledevtools21.5.0 fabric8-analytics0.3.6 java1.19. vscode-xml0.25. vscode-yaml1.12.2 sonarlint-vscode3.17.0 cmake0.0.17 intellicode-api-usage-examples0.2.7 vscodeintellicode1.2.30 vscode-boot-dev-pack0.2.1 vscode-spring-boot1.46.0 vscode-java-debug0.50. vscode-java-dependency0.22. vscode-java-pack0.25. vscode-java-test0.38. vscode-maven0.41. vscode-spring-boot-dashboard0.13.0 vscode-spring-initializr0.11.2 gitblame10.2.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
We replace these spaces intentionally, but I'm not sure why . thoughts?
As it is, I can't use orca to select words and I can't navigate by words either.
We replace it with a non-breaking space such that white space appears the same as it would in the terminal. I wasn't aware it has this impact on screen readers (maybe it's just orca?) but we could workaround it by replacing (2 spaces) with . That should keep tables, ls, etc. aligned while fixing the problem at hand. It seems like an Orca issue though as I'm pretty sure a non-breaking space should be getting treated as a space.
I also think this should be corrected on the Orca side because the same problem also exists when I'm editing a file. I can't navigate through words in a text when they are separated by the 0x0 character." Reported this issue on the Orca mailing list.
<!-- 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!
This doesn't appear to be fixed: ! ! It is changing multiple lines to include a single space character as expected, but see the first line where single spaces are changed. I'm questioning the fix we came up with though, monaco replaces spaces anyway in the editor: ! I think we should revert this and have orca fix it, instead of trying to workaround their problem which could end up causing other issues for us?
I ended up reporting this problem to the orca developers because the problem also exists when I'm editing a file that has words separated by the character 0xa0. I believe the problem will be dealt with on the orca side.
If I understand what reported correctly, I don't think this is an Orca issue. When Orca is in focus mode, it does not control or consume input events. In other words, Ctrl+Right/Left arrow will do whatever they would do without Orca running. And from some testing, when the words are separated by 0xa0, VS Code (or Chromium) is treating the string as a single word. If, in those same places, I switch Orca to browse mode, Orca IS controlling/consuming the input events, and it already does treat the string as individual words. But if I'm missing something, please let me know what I should be fixing in Orca. Thanks!
Here are the steps I am using to reproduce the problem which I believe is reporting: sure Orca is NOT running. a new document. "This" Ctrl+Shift+U "00a0" followed by return to insert a non-breaking space character "is" steps 4 and 5. "a" steps 4 and 5. "test." Home to move to the beginning of the line. Ctrl+Right to move to the next word. Expected results: The caret would move just past the "s" of "This". Actual results: The caret immediately jumps to the "." at the end of the sentence.
thanks for the follow up, you're right. we should not be replacing it with non-breaking spaces as monaco handles their presentation. When you paste in the characters like describes (I did it by running 'u00a0' in console and copying that) you can see they're treated specially, we also have a lint rule to prevent this in vscode: !

assert.strictEqual(bufferTracker.lines.length, 0); await writeP(xterm.raw, prompt); xterm.clearBuffer(); <del> await bufferTracker.update(); </del> <ins> bufferTracker.update(); </ins> assert.deepStrictEqual(bufferTracker.lines, [prompt]); <del> assert.strictEqual(bufferTracker.lines.length, 1); </del> }); test('repeated updates should not change the content', async () => { assert.strictEqual(bufferTracker.lines.length, 0); await writeP(xterm.raw, prompt); <del> await bufferTracker.update(); </del> <ins> bufferTracker.update(); </ins> assert.deepStrictEqual(bufferTracker.lines, [prompt]); <del> assert.strictEqual(bufferTracker.lines.length, 1); await bufferTracker.update(); </del> <ins> bufferTracker.update(); </ins> assert.deepStrictEqual(bufferTracker.lines, [prompt]); <del> assert.strictEqual(bufferTracker.lines.length, 1); await bufferTracker.update(); </del> <ins> bufferTracker.update(); </ins> assert.deepStrictEqual(bufferTracker.lines, [prompt]); <del> assert.strictEqual(bufferTracker.lines.length, 1); </del> }); test('should add lines in the viewport and scrollback', async () => { await writeAndAssertBufferState(promptPlusData, 38, xterm.raw, bufferTracker);


Question:
Type: <bBug</bCC: I noticed that I can't navigate the accessible buffer using ctrl left arrow or ctrl+right arrow. When using this combination orca treats the whole line as if it were a single word. Except for misunderstandings, this happens because the blank spaces present in the accessible buffer are being replaced by the character 0xa0. I ran the command echo "this is test" in the VSCode terminal and ran the same command in the gnome terminal. Browsing character by character with orca I noticed that in the gnome terminal space appears as 0x20 and in the accessible buffer it appears as 0xa0. VS Code version: Code - Insiders 1.79.0-insider (, 2023-05-04T22:12:16.054Z) OS version: Linux x64 6.2.14-300.fc38.x8664 Modes: Sandboxed: Yes Remote OS version: Linux x64 4.14.146-93.123.amzn1.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (44)</summaryExtensionVersion ------ doxdocgen1.4.0 vscode-markdownlint0.50.0 vscode-eslint2.4.0 EditorConfig0.16.4 copilot1.86.82 rest-client0.25.1 better-cpp-syntax1.17.2 docomment1.0.0 azure-pipelines1.208.0 vscode-docker1.25.0 csharp1.25.7 vscode-dotnet-runtime1.6.0 vscode-kubernetes-tools1.3.11 remote-containers0.293.0 remote-ssh0.101. remote-ssh-edit0.84.0 azure-account0.11.4 azurecli0.5.0 cmake-tools1.14.31 cpptools1.15.4 cpptools-extension-pack1.3.0 makefile-tools0.7.0 powershell2023.5.0 remote-explorer0.5. vsliveshare1.0.5864 oracledevtools21.5.0 fabric8-analytics0.3.6 java1.19. vscode-xml0.25. vscode-yaml1.12.2 sonarlint-vscode3.17.0 cmake0.0.17 intellicode-api-usage-examples0.2.7 vscodeintellicode1.2.30 vscode-boot-dev-pack0.2.1 vscode-spring-boot1.46.0 vscode-java-debug0.50. vscode-java-dependency0.22. vscode-java-pack0.25. vscode-java-test0.38. vscode-maven0.41. vscode-spring-boot-dashboard0.13.0 vscode-spring-initializr0.11.2 gitblame10.2.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
We replace these spaces intentionally, but I'm not sure why . thoughts?
As it is, I can't use orca to select words and I can't navigate by words either.
We replace it with a non-breaking space such that white space appears the same as it would in the terminal. I wasn't aware it has this impact on screen readers (maybe it's just orca?) but we could workaround it by replacing (2 spaces) with . That should keep tables, ls, etc. aligned while fixing the problem at hand. It seems like an Orca issue though as I'm pretty sure a non-breaking space should be getting treated as a space.
I also think this should be corrected on the Orca side because the same problem also exists when I'm editing a file. I can't navigate through words in a text when they are separated by the 0x0 character." Reported this issue on the Orca mailing list.
<!-- 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!
This doesn't appear to be fixed: ! ! It is changing multiple lines to include a single space character as expected, but see the first line where single spaces are changed. I'm questioning the fix we came up with though, monaco replaces spaces anyway in the editor: ! I think we should revert this and have orca fix it, instead of trying to workaround their problem which could end up causing other issues for us?
I ended up reporting this problem to the orca developers because the problem also exists when I'm editing a file that has words separated by the character 0xa0. I believe the problem will be dealt with on the orca side.
If I understand what reported correctly, I don't think this is an Orca issue. When Orca is in focus mode, it does not control or consume input events. In other words, Ctrl+Right/Left arrow will do whatever they would do without Orca running. And from some testing, when the words are separated by 0xa0, VS Code (or Chromium) is treating the string as a single word. If, in those same places, I switch Orca to browse mode, Orca IS controlling/consuming the input events, and it already does treat the string as individual words. But if I'm missing something, please let me know what I should be fixing in Orca. Thanks!
Here are the steps I am using to reproduce the problem which I believe is reporting: sure Orca is NOT running. a new document. "This" Ctrl+Shift+U "00a0" followed by return to insert a non-breaking space character "is" steps 4 and 5. "a" steps 4 and 5. "test." Home to move to the beginning of the line. Ctrl+Right to move to the next word. Expected results: The caret would move just past the "s" of "This". Actual results: The caret immediately jumps to the "." at the end of the sentence.
thanks for the follow up, you're right. we should not be replacing it with non-breaking spaces as monaco handles their presentation. When you paste in the characters like describes (I did it by running 'u00a0' in console and copying that) you can see they're treated specially, we also have a lint rule to prevent this in vscode: !

test('should refresh viewport', async () => { await writeAndAssertBufferState(promptPlusData, 6, xterm.raw, bufferTracker); await writeP(xterm.raw, 'x1b[3Ainserteddata'); <del> await bufferTracker.update(); assert.deepStrictEqual(bufferTracker.lines, [promptPlusData, promptPlusData, `${promptPlusData}inserteddata`, promptPlusData, promptPlusData, promptPlusData].map(s => replaceWithNonBreakingSpaces(s))); </del> <ins> bufferTracker.update(); assert.deepStrictEqual(bufferTracker.lines, [promptPlusData, promptPlusData, `${promptPlusData}inserteddata`, promptPlusData, promptPlusData, promptPlusData]); </ins> }); test('should refresh viewport with full scrollback', async () => { <del> const content = replaceWithNonBreakingSpaces(`${prompt}rn`.repeat(1030).trimEnd()); </del> <ins> const content = `${prompt}rn`.repeat(1030).trimEnd(); </ins> await writeP(xterm.raw, content); <del> await bufferTracker.update(); </del> <ins> bufferTracker.update(); </ins> await writeP(xterm.raw, 'x1b[4Ainsertion'); <del> await bufferTracker.update(); </del> <ins> bufferTracker.update(); </ins> const expected = content.split('rn'); expected[1025] = `${prompt}insertion`; assert.deepStrictEqual(bufferTracker.lines[1025], `${prompt}insertion`);


Question:
Type: <bBug</bCC: I noticed that I can't navigate the accessible buffer using ctrl left arrow or ctrl+right arrow. When using this combination orca treats the whole line as if it were a single word. Except for misunderstandings, this happens because the blank spaces present in the accessible buffer are being replaced by the character 0xa0. I ran the command echo "this is test" in the VSCode terminal and ran the same command in the gnome terminal. Browsing character by character with orca I noticed that in the gnome terminal space appears as 0x20 and in the accessible buffer it appears as 0xa0. VS Code version: Code - Insiders 1.79.0-insider (, 2023-05-04T22:12:16.054Z) OS version: Linux x64 6.2.14-300.fc38.x8664 Modes: Sandboxed: Yes Remote OS version: Linux x64 4.14.146-93.123.amzn1.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (44)</summaryExtensionVersion ------ doxdocgen1.4.0 vscode-markdownlint0.50.0 vscode-eslint2.4.0 EditorConfig0.16.4 copilot1.86.82 rest-client0.25.1 better-cpp-syntax1.17.2 docomment1.0.0 azure-pipelines1.208.0 vscode-docker1.25.0 csharp1.25.7 vscode-dotnet-runtime1.6.0 vscode-kubernetes-tools1.3.11 remote-containers0.293.0 remote-ssh0.101. remote-ssh-edit0.84.0 azure-account0.11.4 azurecli0.5.0 cmake-tools1.14.31 cpptools1.15.4 cpptools-extension-pack1.3.0 makefile-tools0.7.0 powershell2023.5.0 remote-explorer0.5. vsliveshare1.0.5864 oracledevtools21.5.0 fabric8-analytics0.3.6 java1.19. vscode-xml0.25. vscode-yaml1.12.2 sonarlint-vscode3.17.0 cmake0.0.17 intellicode-api-usage-examples0.2.7 vscodeintellicode1.2.30 vscode-boot-dev-pack0.2.1 vscode-spring-boot1.46.0 vscode-java-debug0.50. vscode-java-dependency0.22. vscode-java-pack0.25. vscode-java-test0.38. vscode-maven0.41. vscode-spring-boot-dashboard0.13.0 vscode-spring-initializr0.11.2 gitblame10.2.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
We replace these spaces intentionally, but I'm not sure why . thoughts?
As it is, I can't use orca to select words and I can't navigate by words either.
We replace it with a non-breaking space such that white space appears the same as it would in the terminal. I wasn't aware it has this impact on screen readers (maybe it's just orca?) but we could workaround it by replacing (2 spaces) with . That should keep tables, ls, etc. aligned while fixing the problem at hand. It seems like an Orca issue though as I'm pretty sure a non-breaking space should be getting treated as a space.
I also think this should be corrected on the Orca side because the same problem also exists when I'm editing a file. I can't navigate through words in a text when they are separated by the 0x0 character." Reported this issue on the Orca mailing list.
<!-- 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!
This doesn't appear to be fixed: ! ! It is changing multiple lines to include a single space character as expected, but see the first line where single spaces are changed. I'm questioning the fix we came up with though, monaco replaces spaces anyway in the editor: ! I think we should revert this and have orca fix it, instead of trying to workaround their problem which could end up causing other issues for us?
I ended up reporting this problem to the orca developers because the problem also exists when I'm editing a file that has words separated by the character 0xa0. I believe the problem will be dealt with on the orca side.
If I understand what reported correctly, I don't think this is an Orca issue. When Orca is in focus mode, it does not control or consume input events. In other words, Ctrl+Right/Left arrow will do whatever they would do without Orca running. And from some testing, when the words are separated by 0xa0, VS Code (or Chromium) is treating the string as a single word. If, in those same places, I switch Orca to browse mode, Orca IS controlling/consuming the input events, and it already does treat the string as individual words. But if I'm missing something, please let me know what I should be fixing in Orca. Thanks!
Here are the steps I am using to reproduce the problem which I believe is reporting: sure Orca is NOT running. a new document. "This" Ctrl+Shift+U "00a0" followed by return to insert a non-breaking space character "is" steps 4 and 5. "a" steps 4 and 5. "test." Home to move to the beginning of the line. Ctrl+Right to move to the next word. Expected results: The caret would move just past the "s" of "This". Actual results: The caret immediately jumps to the "." at the end of the sentence.
thanks for the follow up, you're right. we should not be replacing it with non-breaking spaces as monaco handles their presentation. When you paste in the characters like describes (I did it by running 'u00a0' in console and copying that) you can see they're treated specially, we also have a lint rule to prevent this in vscode: !

test('should cap the size of the cached lines, removing old lines in favor of new lines', async () => { const content = `${prompt}rn`.repeat(1036).trimEnd(); await writeP(xterm.raw, content); <del> await bufferTracker.update(); const expected = content.split('rn').map(s => replaceWithNonBreakingSpaces(s)); </del> <ins> bufferTracker.update(); const expected = content.split('rn'); </ins> // delete the 6 lines that should be trimmed for (let i = 0; i < 6; i++) { expected.pop(); } // insert a new character await writeP(xterm.raw, 'x1b[2Ainsertion'); <del> await bufferTracker.update(); </del> <ins> bufferTracker.update(); </ins> expected[1027] = `${prompt}insertion`; assert.strictEqual(bufferTracker.lines.length, expected.length); assert.deepStrictEqual(bufferTracker.lines, expected);


Question:
Type: <bBug</bCC: I noticed that I can't navigate the accessible buffer using ctrl left arrow or ctrl+right arrow. When using this combination orca treats the whole line as if it were a single word. Except for misunderstandings, this happens because the blank spaces present in the accessible buffer are being replaced by the character 0xa0. I ran the command echo "this is test" in the VSCode terminal and ran the same command in the gnome terminal. Browsing character by character with orca I noticed that in the gnome terminal space appears as 0x20 and in the accessible buffer it appears as 0xa0. VS Code version: Code - Insiders 1.79.0-insider (, 2023-05-04T22:12:16.054Z) OS version: Linux x64 6.2.14-300.fc38.x8664 Modes: Sandboxed: Yes Remote OS version: Linux x64 4.14.146-93.123.amzn1.x8664 <details<summarySystem Info</summary </details<details<summaryExtensions (44)</summaryExtensionVersion ------ doxdocgen1.4.0 vscode-markdownlint0.50.0 vscode-eslint2.4.0 EditorConfig0.16.4 copilot1.86.82 rest-client0.25.1 better-cpp-syntax1.17.2 docomment1.0.0 azure-pipelines1.208.0 vscode-docker1.25.0 csharp1.25.7 vscode-dotnet-runtime1.6.0 vscode-kubernetes-tools1.3.11 remote-containers0.293.0 remote-ssh0.101. remote-ssh-edit0.84.0 azure-account0.11.4 azurecli0.5.0 cmake-tools1.14.31 cpptools1.15.4 cpptools-extension-pack1.3.0 makefile-tools0.7.0 powershell2023.5.0 remote-explorer0.5. vsliveshare1.0.5864 oracledevtools21.5.0 fabric8-analytics0.3.6 java1.19. vscode-xml0.25. vscode-yaml1.12.2 sonarlint-vscode3.17.0 cmake0.0.17 intellicode-api-usage-examples0.2.7 vscodeintellicode1.2.30 vscode-boot-dev-pack0.2.1 vscode-spring-boot1.46.0 vscode-java-debug0.50. vscode-java-dependency0.22. vscode-java-pack0.25. vscode-java-test0.38. vscode-maven0.41. vscode-spring-boot-dashboard0.13.0 vscode-spring-initializr0.11.2 gitblame10.2.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
We replace these spaces intentionally, but I'm not sure why . thoughts?
As it is, I can't use orca to select words and I can't navigate by words either.
We replace it with a non-breaking space such that white space appears the same as it would in the terminal. I wasn't aware it has this impact on screen readers (maybe it's just orca?) but we could workaround it by replacing (2 spaces) with . That should keep tables, ls, etc. aligned while fixing the problem at hand. It seems like an Orca issue though as I'm pretty sure a non-breaking space should be getting treated as a space.
I also think this should be corrected on the Orca side because the same problem also exists when I'm editing a file. I can't navigate through words in a text when they are separated by the 0x0 character." Reported this issue on the Orca mailing list.
<!-- 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!
This doesn't appear to be fixed: ! ! It is changing multiple lines to include a single space character as expected, but see the first line where single spaces are changed. I'm questioning the fix we came up with though, monaco replaces spaces anyway in the editor: ! I think we should revert this and have orca fix it, instead of trying to workaround their problem which could end up causing other issues for us?
I ended up reporting this problem to the orca developers because the problem also exists when I'm editing a file that has words separated by the character 0xa0. I believe the problem will be dealt with on the orca side.
If I understand what reported correctly, I don't think this is an Orca issue. When Orca is in focus mode, it does not control or consume input events. In other words, Ctrl+Right/Left arrow will do whatever they would do without Orca running. And from some testing, when the words are separated by 0xa0, VS Code (or Chromium) is treating the string as a single word. If, in those same places, I switch Orca to browse mode, Orca IS controlling/consuming the input events, and it already does treat the string as individual words. But if I'm missing something, please let me know what I should be fixing in Orca. Thanks!
Here are the steps I am using to reproduce the problem which I believe is reporting: sure Orca is NOT running. a new document. "This" Ctrl+Shift+U "00a0" followed by return to insert a non-breaking space character "is" steps 4 and 5. "a" steps 4 and 5. "test." Home to move to the beginning of the line. Ctrl+Right to move to the next word. Expected results: The caret would move just past the "s" of "This". Actual results: The caret immediately jumps to the "." at the end of the sentence.
thanks for the follow up, you're right. we should not be replacing it with non-breaking spaces as monaco handles their presentation. When you paste in the characters like describes (I did it by running 'u00a0' in console and copying that) you can see they're treated specially, we also have a lint rule to prevent this in vscode: !

async function writeAndAssertBufferState(data: string, rows: number, terminal: Terminal, bufferTracker: BufferContentTracker): Promise<void> { const content = `${data}rn`.repeat(rows).trimEnd(); await writeP(terminal, content); <del> await bufferTracker.update(); </del> <ins> bufferTracker.update(); </ins> assert.strictEqual(bufferTracker.lines.length, rows); <del> assert.deepStrictEqual(bufferTracker.lines, content.split('rn').map(s => replaceWithNonBreakingSpaces(s))); </del> <ins> assert.deepStrictEqual(bufferTracker.lines, content.split('rn')); </ins> }


Question:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --<!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.79.0-insider OS Version: macOS 12.6.3 I am working on a file explorer tree view extension and doesn't work properly if is 2 or 3. When expand is 3 only the first level 3 folder expands. I have checked and doesn't get called for the rest of the level 3 folders. If I call again with the rest of the level 3 folders expand. When I use with 2 or 3 on a large folder (hundreds of items) the promise never fulfills even though the folder expands (at least up to level 2). I don't get any error in any of the two cases.
can you share a minimal example that reproduces this issue?
Sure thing, here you have it:
Thank you for the repro repo!
No problem, thanks for the fix!

} try { itemOrItems = Array.isArray(itemOrItems) ? itemOrItems : [itemOrItems]; <del> await Promise.all(itemOrItems.map(element => { return tree.expand(element, false); })); </del> <ins> for (const element of itemOrItems) { await tree.expand(element, false); } </ins> } catch (e) { // The extension could have changed the tree during the reveal. // Because of that, we ignore errors.


Question:
Callstack is similar to the one mentioned in but the issue remains First failure Second failure
The logs read very normal, we literally hit the 2min timeout. Since these tests do double the work (start VS Code 2 times), I will see if increasing the timeout helps.

export function setup(ensureStableCode: () => string | undefined, logger: Logger) { describe('Data Loss (insiders -> insiders)', function () { <ins> // Double the timeout since these tests involve 2 startups this.timeout(4 * 60 * 1000); </ins> let app: Application | undefined = undefined; // Shared before/after handling


Question:
Callstack is similar to the one mentioned in but the issue remains First failure Second failure
The logs read very normal, we literally hit the 2min timeout. Since these tests do double the work (start VS Code 2 times), I will see if increasing the timeout helps.

}); describe('Data Loss (stable -> insiders)', function () { <ins> // Double the timeout since these tests involve 2 startups this.timeout(4 * 60 * 1000); </ins> let insidersApp: Application | undefined = undefined; let stableApp: Application | undefined = undefined;


Question: I'm seeing some flickering here, just Write a multi-line commit message cmd+enter to commit !

interface InputTemplate { readonly inputWidget: SCMInputWidget; <ins> inputWidgetHeight: number; </ins> readonly elementDisposables: DisposableStore; readonly templateDisposable: IDisposable; }


Question: I'm seeing some flickering here, just Write a multi-line commit message cmd+enter to commit !

const inputWidget = this.instantiationService.createInstance(SCMInputWidget, inputElement, this.overflowWidgetsDomNode); templateDisposable.add(inputWidget); <del> return { inputWidget, elementDisposables: new DisposableStore(), templateDisposable }; </del> <ins> return { inputWidget, inputWidgetHeight: InputRenderer.DEFAULT_HEIGHT, elementDisposables: new DisposableStore(), templateDisposable }; </ins> } renderElement(node: ITreeNode<ISCMInput, FuzzyScore>, index: number, templateData: InputTemplate): void {


Question: I'm seeing some flickering here, just Write a multi-line commit message cmd+enter to commit !

// Remember widget this.inputWidgets.set(input, templateData.inputWidget); templateData.elementDisposables.add({ <del> dispose: () => { this.inputWidgets.delete(input); this.contentHeights.delete(input); } </del> <ins> dispose: () => this.inputWidgets.delete(input) </ins> }); // Widget cursor selections


Question: I'm seeing some flickering here, just Write a multi-line commit message cmd+enter to commit !

// Rerender the element whenever the editor content height changes const onDidChangeContentHeight = () => { const contentHeight = templateData.inputWidget.getContentHeight(); <del> const lastContentHeight = this.contentHeights.get(input)!; </del> this.contentHeights.set(input, contentHeight); <del> if (lastContentHeight !== contentHeight) { </del> <ins> if (templateData.inputWidgetHeight !== contentHeight) { </ins> this.updateHeight(input, contentHeight + 10); <ins> templateData.inputWidgetHeight = contentHeight; </ins> templateData.inputWidget.layout(); } };


Question: I see this in the console log when I reload vscode insiders window: <img width="1463" alt="image" src=""vscode insiders with the vscode welcome page open (I can't repro without the welcome page) window and you'll see the errors in the console logs

override async setInput(newInput: GettingStartedInput, options: IEditorOptions | undefined, context: IEditorOpenContext, token: CancellationToken) { this.container.classList.remove('animatable'); this.editorInput = newInput; <del> await this.lifecycleService.when(LifecyclePhase.Restored); </del> await super.setInput(newInput, options, context, token); <ins> await this.lifecycleService.when(LifecyclePhase.Restored); </ins> await this.buildCategoriesSlide(); if (this.shouldAnimate()) { setTimeout(() => this.container.classList.add('animatable'), 0);


Question:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: Steps to Reproduce: an invalid decoration in warning in ext host logs that says instead of the extension name:
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.78.2. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!

} result[id] = <DecorationData>[data.propagate, data.tooltip, data.badge, data.color]; } catch (e) { <del> this._logService.warn(`INVALID decoration from extension '${extensionId}': ${e}`); </del> <ins> this._logService.warn(`INVALID decoration from extension '${extensionId.identifier.value}': ${e}`); </ins> } } catch (err) { this._logService.error(err);


Question:
Testing ! !
This is because of the same problem that caused
appears to be closed now, does that mean this has been fixed?
No, this issue is about fish acting atypical in that it applies the environment before is applied. This is because of how the automatic injection works in fish via an environment variable. Still not sure how we can handle this.
Discussed offline, maybe we could use the first pre exec hook in fish to run shell integration, instead of .
Nice !

end set -e VSCODE_PATH_PREFIX <del> # Apply EnvironmentVariableCollections if needed if test -n "$VSCODE_ENV_REPLACE" set ITEMS (string split : $VSCODE_ENV_REPLACE) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]") </del> <ins> set -g __vsc_applied_env_vars 0 function __vsc_apply_env_vars if test $__vsc_applied_env_vars -eq 1; return </ins> end <del> set -e VSCODE_ENV_REPLACE end if test -n "$VSCODE_ENV_PREPEND" set ITEMS (string split : $VSCODE_ENV_PREPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]")"$$split[1]" # avoid -p as it adds a space </del> <ins> set -l __vsc_applied_env_vars 1 # Apply EnvironmentVariableCollections if needed if test -n "$VSCODE_ENV_REPLACE" set ITEMS (string split : $VSCODE_ENV_REPLACE) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]") end set -e VSCODE_ENV_REPLACE </ins> end <del> set -e VSCODE_ENV_PREPEND end if test -n "$VSCODE_ENV_APPEND" set ITEMS (string split : $VSCODE_ENV_APPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" "$$split[1]"(echo -e "$split[2]") # avoid -a as it adds a space </del> <ins> if test -n "$VSCODE_ENV_PREPEND" set ITEMS (string split : $VSCODE_ENV_PREPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]")"$$split[1]" # avoid -p as it adds a space end set -e VSCODE_ENV_PREPEND end if test -n "$VSCODE_ENV_APPEND" set ITEMS (string split : $VSCODE_ENV_APPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" "$$split[1]"(echo -e "$split[2]") # avoid -a as it adds a space end set -e VSCODE_ENV_APPEND </ins> end <del> set -e VSCODE_ENV_APPEND </del> end # Handle the shell integration nonce


Question:
Testing ! !
This is because of the same problem that caused
appears to be closed now, does that mean this has been fixed?
No, this issue is about fish acting atypical in that it applies the environment before is applied. This is because of how the automatic injection works in fish via an environment variable. Still not sure how we can handle this.
Discussed offline, maybe we could use the first pre exec hook in fish to run shell integration, instead of .
Nice !

# Sent at the start of the prompt. # Marks the beginning of the prompt (and, implicitly, a new line). function __vsc_fish_prompt_start <ins> # Applying environment variables is deferred to after config.fish has been # evaluated __vsc_apply_env_vars </ins> __vsc_esc A end


Question:
On the notebook toolbar we have multiple sections of actions, and the first two are core sections: insert and execution. The Insert section is very stable and it always contains two actions: insert code and insert markdown. However the execution section has actions from both VS Code core and Jupyter extension, and with a mix use of visibility and enablement, it is not user friendly and often leads to mis-clicks. Initial state <img width="811" alt="image" src=""Start execution <img width="884" alt="image" src=""Execution fails <img width="903" alt="image" src=""Execution succeeds <img width="810" alt="image" src=""Initial state <img width="657" alt="image" src=""Start execution <img width="867" alt="image" src=""Execution fails <img width="728" alt="image" src=""Execution succeeds <img width="625" alt="image" src=""As shown above, currently only is using enablement while all others are using visibility, which can lead to change of positions for the actions and often when users want to interrupt or restart the kernel, their position changes and users click on wrong actions. cc
What are users misclicking on? From my memory, I remember Go To vs Restart. I think that "Restart" has a confirm dialog, are there other destructive actions that should also have a confirm dialog? Or, should we use enablement and have all actions always visible?
For Jupyter kernel, I ran into Go To vs Restart and sometimes Restart vs next action on the toolbar (since Go To disappears), and for non Jupyter, it's Interrupt vs Clear all outputs. It might be hard to enforce that but we could probably at least ensure the ones that are always visible won't change their position when the execution state changes. For example, if Go To only shows at the end in this group, and Run All is always replaced by "Interrupt" or "Stop", then it's less likely to mis-click.

group: 'navigation/execute', when: ContextKeyExpr.and( executeNotebookCondition, <del> ContextKeyExpr.or(NOTEBOOK_INTERRUPTIBLE_KERNEL.toNegated(), NOTEBOOK_HAS_SOMETHING_RUNNING.toNegated()), </del> <ins> ContextKeyExpr.or( NOTEBOOK_INTERRUPTIBLE_KERNEL.toNegated(), NOTEBOOK_HAS_SOMETHING_RUNNING.toNegated(), ), ContextKeyExpr.and(NOTEBOOK_HAS_SOMETHING_RUNNING, NOTEBOOK_INTERRUPTIBLE_KERNEL.toNegated())?.negate(), </ins> ContextKeyExpr.equals('config.notebook.globalToolbar', true) ) }