jiebi/CodeConvo huggingface dataset:
Change:
get cwd(): URI | undefined { return that.cwd; }, <del> createDataStream(): AsyncIterable<string> { </del> <ins> readData(): AsyncIterable<string> { </ins> return that._createDataStream(); } };

Discussion:
Testing The should be a plain property and not a method
I was thinking about this guideline when I switched it to a method as it's creating a new object every call: Can switch it back, is it worth a discussion in the API sync?
I don't think it does create a new object but that's also not the point here. Your data is never sync with an async iterable but the point is the consumer should just have which is still an async iterable (and likely implemented as lazy getter)
I might be doing something wrong as I don't think I've used an async iterable before, but doesn't this need to return a separate iterable per call in order to support multiple extensions? Currently the is a multiplexer for multiple iterators:
Oh, I missed the invocation inside .
Maybe a better name for a method would be or .
Change:
@IPanelService private _panelService: IPanelService, @IWorkspaceContextService private _contextService: IWorkspaceContextService ) { <del> this._toDispose = []; </del> <ins> this._instanceDisposables = []; this._processDisposables = []; </ins> this._skipTerminalCommands = []; this._isExiting = false; this._hadFocusOnExit = false;

Discussion:
From
For January we decided to keep the task in the core. So there is no need to make this 'public' API now. May be it would be good to first experiment a little with the new API.
just to make sure, were you thinking of using a prompt (press any key to close) that can be reused? Or a terminal that executes something, the pty process dies and just sits there ("dead") until another task command is sent?
I would like to achieve the following: create a new terminal and allow terminal reuse (could be an additional option) without actually running a terminal right away (if necessary we could run it as well) run a command in the terminal. This will create the actual shell process. Usually the shell would be started with /c receive an exit event when the shell exists reuse the terminal to run another command in the terminal which creates a new shell process. Use case if for a build task: if the user runs the build tasks 3 times in a row I would like to have one terminal (e.g. on entry in the drop down in the terminal pane) which contains the output of all three task runs.
I have one additional question. Does the terminal require to run a shell or would the terminal be able to run any other arbitrary process (for example a ).
I got it working to run an arbitrary program. Only drawback is that I needed to specify the full path to the program (e.g. ). Any idea why this is the case?
do you mean the shell path you're using is and it's not working like that? I guess the resolution stuff is contained within , I would think it would probably be safest to always wrap the command within or . Wrapping the command means the process will die when it finishes so I don't see a downside?
the only problem is argument passing with spaces contained. If you call node directly then you pass the args as a string[]. If you call the for example you need to construct a single string with proper arg quoting to ensure everything works when for example the command to call contains spaces. And you save a process :-)
could this be useful for Python terminal execution?
Change:
} export async function readFromStdin(targetPath: string, verbose: boolean): Promise<void> { <del> // open tmp file for writing const stdinFileStream = createWriteStream(targetPath); </del> let encoding = await resolveTerminalEncoding(verbose); const iconv = await import('@vscode/iconv-lite-umd');

Discussion:
Issue Type: <bBug</bany command line run or pipe another process that runs indefinitely to that a window does not open and the command does not return. The file should open and update as new data is piped to the code cli command. This works on the Mac when you run but does not work on Windows. This is not a 1.67.0 regression VS Code version: Code 1.67.0 (, 2022-05-04T12:06:02.889Z) OS version: Windows_NT x64 10.0. Restricted Mode: No <!-- generated by issue reporter --
This is probably related to the file watcher not recognizing changes to the file on Windows, have to debug why that is the case but might be a limitation of the single file watcher.
The underlying reason seems to be that writing to a file via stream API where the file handle is not closed does not trigger file events on Windows at least. Maybe as a workaround we have to use the less efficient method that opens a file handle each time and closes it.
<!-- 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!
I am still experiencing this issue on the version of insiders below. Version: 1.69.0-insider (user setup) Commit: Date: 2022-06-24T06:32:08.615Z (13 hrs ago) Electron: 18.3.4 Chromium: 100.0.4896.160 16.13.2 V8: 10.0.139.17-electron.0 OS: Windows_NT x64 10.0.
Here is how to verify: ensure you are on latest insiders from a terminal on Windows run verify output is updated
I tried on the latest insiders with that command and vscode-insiders still does not not open for me. If I run it hangs and never opens vscode-insiders If I run without the -t flag, it will open after the command completes.

Version: 1.69.0-insider (user setup) Commit: Date: 2022-06-27T07:59:47.622Z (10 hrs ago) Electron: 18.3.5 Chromium: 100.0.4896.160 16.13.2 V8: 10.0.139.17-electron.0 OS: Windows_NT x64 10.0.
This works for me on Windows 11 with both Powershell and , but may need further investigation
Change:
import Severity from 'vs/base/common/severity'; import * as strings from 'vs/base/common/strings'; import { URI } from 'vs/base/common/uri'; <ins> import { ILocalizedString } from 'vs/platform/action/common/action'; </ins> import { ExtensionKind } from 'vs/platform/environment/common/environment'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { getRemoteName } from 'vs/platform/remote/common/remoteHosts';

Discussion:
Testing in Firefox with de-ch (Swiss German) set. Open command palette and search for Remote Repositories commands :bug: The first command has a partly English, partly de-ch line under it ( and in English, seems to be de-ch translated) !
Hmm yeah it should look like this (Desktop screenshot) with the English strings next to the German strings. I think this is a bug in how I'm applying the translations... !
Just found out about these functions on the desktop side: Which seems to go through the manifest and turn some s into s. I followed up with to understand how this works.
This code was originally written by so I would ask him to know how this works.
Not quite, it was originally written by , but I'm happy to try and help. My understanding is that the code is taking a JSON object that looks like this: Together with another JSON object that looks like this: And produces a JSON object that looks like this by substituting all string values of the shape with their corresponding value:
I still see this on firefox: ! The first option's english translation still looks wrong? (tested on )
The first one is still wrong because of so we'll track that there. However, the rest now have the English string underneath which they use to not have, which means this is fixed and verified
Change:
# Escape a value for use in the 'P' ("Property") or 'E' ("Command Line") sequences. # Backslashes are doubled and non-alphanumeric characters are hex encoded. function __vsc_escape_value <del> # Replace all non-alnum characters with %XX hex form. string escape --style=url "$argv"  # The characters [-./_~] are not encoded in the builtin url escaping, despite not being alphanumeric. # See: https://github.com/fish-shell/fish-shell/blob/f82537bcdcb32f85a530395f00e7be1aa9afc592/src/common.cpp#L738 # For consistency, also encode those characters. | string replace --all '-' '%2D'  | string replace --all '.' '%2E'  | string replace --all '/' '%2F'  | string replace --all '_' '%5F'  | string replace --all '~' '%7E'  # Now everything is either alphanumeric [0-9A-Za-z] or %XX escapes. # Change the hex escape representation from '%' to 'x'. (e.g. ' ' → '%20' → 'x20'). # Note that all '%' characters are escapes: literal '%' will already have been encoded. | string replace --all '%' 'x'  # For readability, prefer to represent literal backslashes with doubling. ('' → '%5C' → 'x5C' → ''). | string replace --all --ignore-case '%5C' ''  </del> <ins> # Escape backslashes and semi-colons echo $argv  | string replace --all '' ''  | string replace --all ';' 'x3b'  </ins> ; end

Discussion:
<!-- 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/No Splitting terminal in folder with ë character or any subdirectories errors and doesn't split. The terminal process failed to launch: Starting directory (cwd) "/Users/liam-nt/Documents/vscodebugtest/eÃ«e" does not exist. <!-- 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.74.0 (Universal) OS Version: macOS Monterey 12.5 (21G72) Steps to Reproduce: a folder containing 'ë' in name integrated VSCode terminal and split terminal by keyboard shortcut or interface.
related
!
Regression from is encoding all multibyte utf8 characters
Change:
assert.ok(!extpath.isValidBasename('aux')); assert.ok(!extpath.isValidBasename('Aux')); assert.ok(!extpath.isValidBasename('LPT0')); <ins> assert.ok(!extpath.isValidBasename('aux.txt')); assert.ok(!extpath.isValidBasename('com0.abc')); assert.ok(extpath.isValidBasename('LPT00')); assert.ok(extpath.isValidBasename('aux1')); assert.ok(extpath.isValidBasename('aux1.txt')); assert.ok(extpath.isValidBasename('aux1.aux.txt')); </ins> assert.ok(!extpath.isValidBasename('test.txt.')); assert.ok(!extpath.isValidBasename('test.txt..')); assert.ok(!extpath.isValidBasename('test.txt '));

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.48.0 OS Version: 10.0. (Windows) Steps to Reproduce: a new file with name file Windows cannot delete the file and git shows an error. Windows does not allow to create files with reserved words but visual studio can. Remove the ability to save files with reserved words in Windows. <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
I cannot create with VS: ! We should probably revisit our logic in . If someone wants to revisit this, bring up a PR with tests. As a workaround you can always use VSCode itself to delete the file.
I finally removed the file just changing the name.
I was wrong to describe the problem! Steps to Reproduce: a new file with name file file in (important with extension!) ! the bug occurs only with the extension !
Verification: follow on Windows
Change:
for (const task of taskSet.tasks) { if (task.type !== this._providerTypes.get(handle)) { this._outputChannel.append(nls.localize('unexpectedTaskType', "The task provider for "{0}" tasks unexpectedly provided a task of type "{1}".n", this._providerTypes.get(handle), task.type)); <del> this.showOutput(); </del> <ins> if ((task.type !== 'shell') && (task.type !== 'process')) { this.showOutput(); } </ins> break; } }

Discussion:
I a warning about task providers that don't provide the task type they say they will in April. It looks like the C++ extension is hitting this.
This isn't really a bug, so much as the system implicitly allowed a behavior that now it does not.
To verify: Install version 0.27.1 the C/C++ extension. (Extension viewlet -right click on extension -install another version) Open a folder Open a C++ file. It can be empty. From the command palette Tasks: Run Task Choose the "Show All..." option Verify that you don't get a warning notification about task errors. (no need to run a task)
In 1.45.0 I get: Tn 1.45.1 this message no longer appears.
Change:
.get<string | string[]>(key.substr(key.lastIndexOf('.') + 1)); }; <del> return terminalEnvironment.getDefaultShellArgs(fetchSetting, useAutomationShell, terminalEnvironment.createVariableResolver(this._lastActiveWorkspace, this._variableResolver), this._logService); </del> <ins> return terminalEnvironment.getDefaultShellArgs(fetchSetting, useAutomationShell, terminalEnvironment.createVariableResolver(this._lastActiveWorkspace, process.env, this._variableResolver), this._logService); </ins> } private _registerListeners(): void {

Discussion:
With we are trying to remove from the configuration resolver service. The new way to get the environment is async and requires that the all the configuration resolver methods be async. I have started the adoption of the new async methods in , but there's one use in terminal that looks like it will require more work: Option 1: Convert that use of to use . Option 2: I provide a new method on the configuration resolver service that is sync, but requires you to pass in your own . Which option makes the most sense here?
I think the usage of in must remain sync since it's used as part of the extension API. Is this a problem there since is fine to use? The main purpose of this type was to share code between variable processes.
Sounds like Option 2 is the way to go then. I will add a new method that is sync and lets you pass in your own .
Added: will that let you keep your code reuse?
Change:
} render(container: HTMLElement): void { <ins> this.actionItem = container; </ins> const labelRenderer: ILabelRenderer = (el: HTMLElement): IDisposable | null => { this.element = append(el, $('a.action-label'));

Discussion:
Related to If you have a command in an action bar (say in ) that is a submenu with no items (or no visible items), there is no visible indication -- the icon is there, but does nothing if you click on it. I would expect similar behavior to
Change:
if (titlebarPart && oldTitlebarPartVisible !== titlebarPartVisible) { titlebarPart.container.style.display = titlebarPartVisible ? '' : 'none'; <del> updateEditorPartHeight(true); </del> <ins> auxiliaryWindow.layout(); </ins> } })); } else {

Discussion:
Testing a workspace a tab into a new floating window in a couple times using keyboard shortcuts the zoom status bar item to zoom out. When the zoom out happens, the status bar item will move further right, as expected because everything is getting small. However, the hover itself moved further left. I would expect it to either stay under my cursor (ideal) or move with the status bar item. !
It also moves around unexpectedly when I zoom in.
My cursor isn't showing properly in this gif, but I think you can get the idea. !
<!-- 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!
Change:
"pickerGroup.foreground": "#b0b0b0", "terminal.ansiWhite": "#ffffff", "inputOption.activeBorder": "#3655b5", <del> "focusBorder": "#3655b5" </del> <ins> "focusBorder": "#3655b5", "terminal.ansiBlack": "#1e1e1e", "terminal.ansiRed": "#C4265E", // the bright color with ~75% transparent on the background "terminal.ansiGreen": "#86B42B", "terminal.ansiYellow": "#B3B42B", "terminal.ansiBlue": "#6A7EC8", "terminal.ansiMagenta": "#8C6BC8", "terminal.ansiCyan": "#56ADBC", "terminal.ansiWhite": "#e3e3dd", "terminal.ansiBrightBlack": "#666666", "terminal.ansiBrightRed": "#f92672", "terminal.ansiBrightGreen": "#A6E22E", "terminal.ansiBrightYellow": "#e2e22e", // hue shifted #A6E22E "terminal.ansiBrightBlue": "#819aff", // hue shifted #AE81FF "terminal.ansiBrightMagenta": "#AE81FF", "terminal.ansiBrightCyan": "#66D9EF", "terminal.ansiBrightWhite": "#f8f8f2" </ins> }, "tokenColors": [ {

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --I'd like to suggest an improvement to the Monokai Dimmed theme. Monokai Dimmed doesn't have colors set, resulting in 'ugly looking' fancy terminal features, such as Powerline. For a nice looking improvement, the terminal colors can be taken from the Monokai theme: Before: ! After: ! I intend to open a Pull request shortly that realizes this suggestion.
This looks much better, thanks for the PR! ! !
Thanks for accepting the PR! As a side note, I quickly looked at the other themes, and many of them haven't set any terminal colors, and even the ones that have them set usually haven't aligned ANSI black with the background, leading to weird-looking 'fancy shell features': ! ! Then again, there are documented ways how to adjust the color palettes for a particular VSCode installation or workspace, and this is quite likely a bit of an edge case anyway. Thanks for all the good work you guys have been doing!
Is there an option to disable this? or if there's not what would be the values one would need to set on terminal.X to revert what the commit changed? I prefer the non washed terminal and noticed this changed on last update. Edit: For anyone looking to use default terminal colors, add this to
Change:
}, f1: true, precondition: ctxIsMergeEditor, <del> menu: [ { id: MenuId.MergeInput1Toolbar, } ] </del> <ins> menu: { id: MenuId.MergeInput1Toolbar, group: 'primary' }, icon: Codicon.checkAll, </ins> }); }

Discussion:
! I personally find it a bit strange to have no primary action and only secondary actions hidden behind "...". What is the rationale? //cc
We are looking at pulling these out as primary actions like so. See . <img width="1015" alt="CleanShot 2022-10-03 at 09 11 23 src="https://user-"
!
!
Change:
*/ app.commandLine.appendSwitch('disable-features', 'CalculateNativeWinOcclusion'); <ins> /* Following features are enabled from the runtime. * `AutoDisableAccessibility` - https://github.com/microsoft/vscode/issues/162331#issue-1390744354 */ app.commandLine.appendSwitch('enable-features', 'AutoDisableAccessibility'); </ins> // Support JS Flags const jsFlags = getJSFlags(cliArgs); if (jsFlags) {

Discussion:
As part of chromium a runtime feature called AutoDisableAccessibility and it works like this: We should try out this flag to see how it affects our accessibility detection on macOS.
thanks a lot for this. Just as a refresh, this only affects macOS? fyi this change might affect our telemetry numbers - since now we might auto disable accessibility when chrome decides it is actually not being needed.
I have enabled it for all OS since there is no downside. As part of this, I also redid the accessibility event that gets fired from the runtime to work well with this feature flag. So, in endgame it would be good to have test plan that ensures our accessibility detection continues works fine on all OS.
ok, I can create a test plan item for that today with complexity 3. fyi
Created test plan item Feel free to edit it if you think I did not cover some scenario. Thanks!
Change:
const env = terminalEnvironment.createTerminalEnvironment(shellLaunchConfig, lastActiveWorkspace, envFromConfigValue, this._configurationResolverService, isWorkspaceShellAllowed, this._productService.version, this._configHelper.config.setLocaleVariables); this._logService.debug(`Terminal process launching`, shellLaunchConfig, initialCwd, cols, rows, env); <del> return this._terminalInstanceService.createTerminalProcess(shellLaunchConfig, initialCwd, cols, rows, env, this._configHelper.config.windowsEnableConpty); </del> <ins> const useConpty = (shellLaunchConfig.forceWinpty !== true) && this._configHelper.config.windowsEnableConpty; return this._terminalInstanceService.createTerminalProcess(shellLaunchConfig, initialCwd, cols, rows, env, useConpty); </ins> } public setDimensions(cols: number, rows: number): void {

Discussion:
Steps to reproduce: clone open a terminal Debug viewlet Launch client Observe that building never finishes Now switch the terminal to the npm: watch task Observe: building finished. Looks like the terminal is not delivering any output as long as the view is not visible.
are there any differences on when onLineData occurs in the terminal with conpty?
discovered a new issue
Change:
".eyaml", ".eyml", ".yaml", <del> ".cff" </del> <ins> ".cff", ".yaml-tmlanguage", ".yaml-tmpreferences", ".yaml-tmtheme" </ins> ], "firstLine": "^#cloud-config", "configuration": "./language-configuration.json"

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --extension is used to specify the syntax highlighting for popular languages, such as TypeScript: Currently, the workaround is to push the settings file to Git: In addition, extension is also . It would be nice if VSCode could support these aliases to YAML natively.
If you want to make a PR, that would be great!
I made a PR, I hope it's good, because I have no experience with the codebase:
Change:
@IConfigurationService private readonly _configurationService: IConfigurationService, @IContextMenuService private readonly _contextMenuService: IContextMenuService, @IPreferencesService private readonly _preferencesService: IPreferencesService, <del> @ITelemetryService private readonly _telemetryService: ITelemetryService </del> <ins> @ITelemetryService private readonly _telemetryService: ITelemetryService, @IClipboardService private readonly _clipboardService: IClipboardService </ins> ) { this._defaultSettings = new DefaultSettings([], ConfigurationTarget.USER); }

Discussion:
Testing Click on a setting link in the release notes Get a tooltip "View '<title' in Settings" context menu It seems strange to open a context menu on left-click and to open one with only a single menu item. Can we skip doing this if "View" is the only action?
My preference would be to keep it consistent so that a context menu always opens when the button is clicked. There was some discussion of adding a "copy setting id" item in there too, which would fix the only-one-item issue.
Will be fixed by , which adds a "copy" action to the menu.
Another option is to open the context menu when the "gear" icon is hit, but go directly to the setting if the text is clicked (or vise versa)