jiebi/CodeConvo huggingface dataset:
Code change:
const languageService = accessor.get(ILanguageService); const config = accessor.get(IConfigurationService); <del> const scrollBehavior = config.getValue(NotebookSetting.cellExecutionScroll); </del> <ins> const scrollBehavior = config.getValue(NotebookSetting.scrollToRevealCell); </ins> let focusOptions: IFocusNotebookCellOptions; if (scrollBehavior === 'none') { focusOptions = { skipReveal: true };

Related discussion:
text: Currently the scroll top position update is not context-aware, meaning when we have cell height changes, we don't know if it's because output height change, or users re-run a cell and outputs are updated/replaced, or users shift+enter to run cell and navigate to next cell. Users might have different expectations for each scenario but currently our heuristics for updating the scroll top didn't take the context into account. Let's use this issue to finalize the desired behavior of scroll top update. The polished/new design should cover [ ] Update element height API respects context (execution, execute+create, output update) [ ] Reveal API should handle out of sync view/content height Click the run button or press Ctrl+Enter to run focused cell If there is no enough room/space after the cell (e.g., the focused cell is the last cell) Users have disabled [ ] There is no output before execution, the view should scroll up to reveal the output fully [ ] Some users might want the bottom of the output to be fully revealed, when the output is larger than the viewport [ ] There is output before execution, the cell position should be persistent Users have enabled [ ] Reveal cell output If there is enough room after the cell [ ] Reveal cell output [ ] If the cell input is larger than the viewport, execute cell should reveal the output properly [ ] Collapse focused cell output should always keep the cell in viewport [ ] Type/Pasting content into focused cell should keep the cell in viewport [x] [ ] Notebook cell list reveal api might reveal a position on a cell whose view height is not synced with real editor height yet. [ ] Execute non-focused cell, should it keep the focused cell position persistent or keep the top of the target cell persistent? [ ] Non focused cell output height change should not change scroll top on scroll [ ] Shift+enter executes and moves focus to next cell, then new focused cell should always be in viewport [x] Scroll top position of inactive notebook editor should not change if the first partially visible cell's height change
I noticed an issue recently, is this related? Paste a large amount of text into a code cell The notebook scrolls down so far that the focused code cell is out of the viewport I can open a separate issue if you want
I guess what you were seeing is , I'll update the description to include this.
Couple cases discovered in the latest notebook sync.
Code change:
const languageService = accessor.get(ILanguageService); const config = accessor.get(IConfigurationService); <del> const scrollBehavior = config.getValue(NotebookSetting.cellExecutionScroll); </del> <ins> const scrollBehavior = config.getValue(NotebookSetting.scrollToRevealCell); </ins> let focusOptions: IFocusNotebookCellOptions; if (scrollBehavior === 'none') { focusOptions = { skipReveal: true };

Related discussion:
text: both of these are likely tied to outputLineLimit being large @ 100 when the shift-enter behavior is set to "firstline" the events are as follows: first line of next cell is focused and shown at the bottom of the viewport output is cleared and the focused cell is pulled upwards against the currently executing cell output streams and pushes the focused cell out of the viewport. my ideal thoughts: anchor the focused cell (with setting), maintaining the first line visible. output will stream in, pushing the executing cell upwards out of the viewport shift-enter set to "fullCell" and next cell has a large output focus shifts to next cell, and the viewport exposes the bottom of the output for that cell. there is no cell editor in the viewport my thoughts: "fullCell" behavior should show the top of the next cell editor at the top of the viewport
Code change:
restricted: true, markdownDescription: localize('terminal.integrated.enableImages', "Enables image support in the terminal, this will only work when {0} is enabled. Both sixel and iTerm's inline image protocol are supported on Linux and macOS, Windows support will light up automatically when ConPTY passes through the sequences. Images will currently not be restored between window reloads/reconnects.", ``#${TerminalSettingId.GpuAcceleration}#``), type: 'boolean', <del> default: true </del> <ins> default: false </ins> }, } };

Related discussion:
text: Type: <bBug</bo meu terminal do vscode ficou todo preto derrepente, ele esta normal e quando fui abri-lo estava preto, nao consigo resolver e nao posso voltar a minha rotina por causa disso. My vscode terminal suddenly went all black, is that normal and when I opened it was black, I can't resolve it and I can't get back to my routine because of this. ! VS Code version: Code 1.81.1 (, 2023-08-09T22:22:42.175Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (8)</summaryExtensionVersion ------ turbo-console-log2.9.6 gitlens14.2.1 auto-rename-tag0.1.10 copilot1.105.350 prettify-json0.0.3 vscode-language-pack-pt-BR1.81. vscode-thunder-client2.10.5 vscode-icons12.5.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Please write the pn in english.
/duplicate
can you share your file?
here it is
Confirmed that is disabled by default. I have now enabled terminal gpu acceleration and images, though I'm not sure whether I'll run into the issue on this machine.
Code change:
} ], run: async (c) => { <del> const instance = await c.service.getActiveOrCreateInstance(); await c.service.revealActiveTerminal(); </del> <ins> const instance = await c.service.activeInstance; </ins> if (!instance) { return; }

Related discussion:
text: Type: <bBug</bCC a terminal in editor area in the terminal alt+f2 to open Accessible View alt+UpArrow and alt+DownArrow to see if it moves between executed commands. Notes: alt+DownArrow unexpectedly opens a new terminal view. VS Code version: Code - Insiders 1.83.0-insider (, 2023-09-21T05:34:38.227Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (91)</summaryExtensionVersion ------ android-dev-ext1.3.2 aiprm-lang0.0.2 Bookmarks13.4.1 openscad1.2.1 spellright3.0.118 zoterolatex0.4.1 mermaid-markdown-syntax-highlighting1.5.2 doxdocgen1.4.0 vscode-markdownlint0.51.0 vscode-eslint2.4.2 vscode-quick-select0.2.9 vscode-deno3.23.1 gitlens14.3.0 EditorConfig0.16.4 prettier-vscode10.1.0 vscode-google-translate1.4.13 codespaces1.15.3 copilot1.115.430 copilot-chat0.8. remotehub0.60.0 vscode-github-actions0.26.2 vscode-pull-request-github0.72.0 overleaf-workshop0.2.1 cslpreview0.2.2 easy-snippet0.6.3 path-autocomplete1.25.0 latex-workshop9.14.0 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 google-search0.0.1 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 zotero0.1.10 git-graph1.30.0 vscode-docker1.26.1 black-formatter2023.4.1 flake82023.6.0 isort2023.11.
Code change:
} ], run: async (c) => { <del> const instance = await c.service.getActiveOrCreateInstance(); await c.service.revealActiveTerminal(); </del> <ins> const instance = await c.service.activeInstance; </ins> if (!instance) { return; }

Related discussion:
text: python2023.16.0 vscode-pylance2023.9.20 jupyter2023.8. jupyter-keymap1.1.2 jupyter-renderers1.0.17 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.311.0 remote-ssh0.106.4 remote-ssh-edit0.86.0 remote-wsl0.81.4 vscode-remote-extensionpack0.24.0 azure-repos0.36.0 cmake-tools1.15.31 cpptools1.17.5 cpptools-extension-pack1.3.0 js-debug-nightly2023.9.2017 powershell2023.6.0 remote-repositories0.38.1 vscode-github-issue-notebooks0.0.129 vscode-selfhost-test-provider0.3.18 vscode-serial-monitor0.10.0 vsliveshare1.0.5883 autodocstring0.6.1 pandocciter0.10.3 shiny-python0.1.4 shinyuieditor0.4.3 quarto1.98.0 r-debugger0.5.4 java1.22.1 vscode-xml0.26.1 r2.8.1 multi-command1.6.0 vscode-deepl1.0.6 abc-music0.4.0 lua3.7.0 latex-utilities0.4.10 cmake0.0.17 errorlens3.13.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-arduino0.6.0 vscode-java-debug0.54.0 vscode-java-dependency0.23.1 vscode-java-pack0.25.14 vscode-java-test0.39.1 vscode-maven0.42.0 markdown-all-in-one3.5.1 grammarly0.22.1 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
I could repro this yesterday, but it's working for me in today's insider's. Pls let me know if it's not for you.
Still does not work. Tested on Windows 11.
I had forgotten this is an issue only when the terminal is in the editor area.
Code change:
return this._dirty; } <ins> isUntitled() { return this.resource.scheme === Schemas.untitled; } </ins> async save(): Promise<boolean> { const tokenSource = new CancellationTokenSource(); await this.notebookService.save(this.notebook.viewType, this.notebook.uri, tokenSource.token);

Related discussion:
text: <!-- 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. --- Version: 1.46.0-insider Commit: Date: 2020-06-01T10:32:27.369Z Electron: 7.3.0 Chrome: 78.0.3904.130 12.8.1 V8: 7.8.279.23-electron.0 OS: Darwin x64 19.5.0 Steps to Reproduce: a new untitled notebook (using VS Code Python extension) you add a cell or the like, then VSC will invoke the save method on the Problems Adding cells should not invoke save (this happens when user has auto save turned on) Errors thrown in the method are ignored. VSC will assume the notebook was saved and mark it as not dirty (the dirty indicator doesn't exist on the tab anymore) I don't think VSCode should call the method for untitled notebooks. FYI - We create untitled notebooks with a scehme . If this isn't the way to indicate an untitled file (scheme), we might need some API or the like in the notebooks implememtation. /cc
Good catch, untitled file should not trigger save until users explicitly run Save, which will invoke SaveAs.
We should also improve the overall experience for creating untitled notebook documents, they can be created in two approaches: Users press cmd/ctrl+n to create an untitled file, switch to another view type (tracked in ) Users run a specific command to quickly create a notebook untitled file. command should take view type as arguments. cc we may also want to adopt this in Custom Editor world.
We now support opening a untitled file with specified editor view type through the existing new untitled file command (in master, and tomorrow's Insiders) When the command is executed, is invoked with an URI with scheme. is invoked only when users save so no auto save for untitled files as usual.
Code change:
import { IAsyncDataSource, ITreeNode, ITreeRenderer } from 'vs/base/browser/ui/tree/tree'; import { createMatches, FuzzyScore } from 'vs/base/common/filters'; import { dispose, IDisposable } from 'vs/base/common/lifecycle'; <ins> import { basename } from 'vs/base/common/path'; </ins> import severity from 'vs/base/common/severity'; import { localize } from 'vs/nls'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration';

Related discussion:
text: <img width="1792" alt="image" src="https://user-"Hi, like visible on the screenshot, more than half of the terminal width in vertical mode is taken to display the path of the file where the log originated. I think this is not relevant to many of us since the path will point to the logger file At some point it gets really hard to read the logs Just to have an option to display path in cli would be enought for me. My screen resolution is 3072x1920 and my zoom level is -0.5 (at 0 it is even worst)
This has always been a bit off- I think only showing the file name would be sufficient
To be honest, who even needs the filename? When debugging I know what my messages mean and where they are generated. If I don't, a simple clickable elipsis will save space and perform the same function by bringing me directly to the line of code.
Code change:
return this._getMarkers(true).indexOf(marker) === -1; } <del> scrollToPreviousMark(scrollPosition: ScrollPosition = ScrollPosition.Middle, retainSelection: boolean = false, skipEmptyCommands?: boolean): void { </del> <ins> scrollToPreviousMark(scrollPosition: ScrollPosition = ScrollPosition.Middle, retainSelection: boolean = false, skipEmptyCommands: boolean = false): void { </ins> if (!this._terminal) { return; }

Related discussion:
text: Notice how for the task terminal it jumps all the way to the top on the first ctrl+up, instead of going to the most recently run task: !
When I run the build task and do cmd + up, the window crashes !
That's even worse
the call to get markers here returns undefined !
I bet the markers are getting disposed of, so deleted from the map in but it looks like that wouldn't even happen since we don't set like we should. Could be why I see the renderer process crash?
Code change:
} public setAdditionalToggles(toggles: Toggle[] | undefined): void { <ins> // Short circuit if there are no toggles to update if (!this.additionalToggles.length && !toggles?.length) { return; } </ins> for (const currentToggle of this.additionalToggles) { currentToggle.domNode.remove(); }

Related discussion:
text: Type: <bBug</bFuzzy search icon is visible in Go to Symbol view (Shift + CMD + O) which on press opens terminal recent search with fuzzy search. I think that button should be excluded from Go to Symbol view and be visible only in terminal recent search view. VS Code version: Code 1.73.1 (, 2022-11-09T02:22:48.959Z) OS version: Darwin arm64 22.1.0 <img width="607" alt="image" src="https://user-"<img width="597" alt="image" src="https://user-"<!-- generated by issue reporter --
Seems like after the icon is not cleared and shows up in any command palette entry
Code change:
return; } <ins> // When the command finishes and executed never fires the placeholder selector should be used. if (this._exitCode === undefined && command === undefined) { command = ''; } </ins> if ((command !== undefined && !command.startsWith('')) || this._handleCommandStartOptions?.ignoreCommandLine) { const buffer = this._terminal.buffer.active; const timestamp = Date.now();

Related discussion:
text: <!-- 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. --The vscode shell integration currently needs to be turned off or disabled for anyone with complex prompt commands, or any trap DEBUG. Please consider supporting some kind of chaining model so we can work with the shell integration as needed. Even better - use the defacto package that has already been written. VSCode is the 3rd script that wants to mess with prompts and traps - but it's the first to completely ignore Please consider shipping this along side and sourcing/using it. If that is unacceptable, consider at least detecting this module has been loaded as documented in the repo - and using it: fwiw: iterm2 has very very similar functionality to the vscode shell integration, but I've been able to work with it. Although they embedded the script directly, they kept the compatible function names and mechanisms and interop fine.
I believe we have already fixed this: Adding to make sure
Well, line 100 breaks my prompt. Adding the line as the 1st line of vscpreexec shows why. I think perhaps there needs to be 1 more state 'not in prompt' that causes preexec to bail until all promptcommand processing is done. Alternatively, if this is all to send vsccommandoutputstart - it seems like using PS0 on bash = 4.4 would be a lot cleaner?
Hi This was on 1.67.2 with dropped in place.
We've made some big changes in the past few days around debug trap and PS1 handling in bash, I believe the issues here are fixed. We may at some point hook into similar to but for now that will just increase the number of cases we would need to test for (contributions very welcome).
Actually I'll keep this open with help wanted to track integrating with bash-preexec.
OK. Pulling the - Things look better, but not quite right. The problems I see (only when DEBUG trap is being used): Still seems to be not preserving $? for promptcommand Seems to execute the trap twice. repro with setup instructions below: Do 'cd' into some directory. The command '..' should then pop one directory up, but it will try to process twice and pop twice.
Code change:
return; } <ins> // When the command finishes and executed never fires the placeholder selector should be used. if (this._exitCode === undefined && command === undefined) { command = ''; } </ins> if ((command !== undefined && !command.startsWith('')) || this._handleCommandStartOptions?.ignoreCommandLine) { const buffer = this._terminal.buffer.active; const timestamp = Date.now();

Related discussion:
text: Instead of 'success dots' in the gutter, all commands seem to think there are fail exit status. Here are my dotfiles: and a branch to help debug: The debug branch just build an array of what commands were that triggered the trap and print them at the start and end of building the prompt. It does show the trap being called twice when shell integration is enabled - and once otherwise. The repro environment/steps: Repros in OSX and WSL Ubuntu 22.04 for me. It uses dotbot. In a scratch user directory you can run ./install to link everything into ~/. Pass to ./install to avoid installing extra tooling it finds missing (pygments/tmux/coreutils)There is a script that get's sourced . This is the root of all evil. It's on the hacky side. The function is small and is (I believe) the only relevant part. I should stop using it, but it's sooooo_ ingrained into my muscle memory. To verify: Removing from makes everything work great with none of the above mentioned problems. One hack, that seems irrelevant is that uses debug trap directly, but also detects and uses the pre-exec infrastructure if it has been loaded (to not break iTerm2's shell integration). I appreciate the time and effort going into this feature. It's becoming a shockingly advanced embedded shell environment.
thanks again, planning on tackling this in June
I use just merged in a fix for this. It would be great if someone could help verify in tomorrow's insiders build as I'm not normally a user of bash-preexec.
Still some problems around . Very simple repro: clean environment. My bash and vscode versions are: use this .bashrc: For me (In WSL, repros in plain OSX): ! Without ! If extdebug works, then this would be the next simplest test (I think). Same clean environment. The following
Are there verif steps for this?
<!-- 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!
Code change:
return; } <ins> // When the command finishes and executed never fires the placeholder selector should be used. if (this._exitCode === undefined && command === undefined) { command = ''; } </ins> if ((command !== undefined && !command.startsWith('')) || this._handleCommandStartOptions?.ignoreCommandLine) { const buffer = this._terminal.buffer.active; const timestamp = Date.now();

Related discussion:
text: With the more complicated scenario, the decorations don't seem to show blue and red anymore. ! I realize that in the screenshot I forgot to add , but that didn't make a difference.
what is your exact debug trap when that happens?
Code change:
.test-output-peek-tree { color: var(--vscode-editor-foreground); <ins> border-left: 1px solid var(--vscode-panelSection-border); </ins> } .test-output-peek-tree .monaco-list-row .monaco-action-bar,

Related discussion:
text: This: Now results in 1/2 the minimum contrast requirements which is a soft accessibility issue. It seems like these messages are special vscode messages which use special formatting in the real terminal:
Code change:
.test-output-peek-tree { color: var(--vscode-editor-foreground); <ins> border-left: 1px solid var(--vscode-panelSection-border); </ins> } .test-output-peek-tree .monaco-list-row .monaco-action-bar,

Related discussion:
text: There's no separator line between the two components. !
Seeing the seperator: <img width="69" alt="image" src=""
Code change:
const srcDocLines = originalLines.map((l) => getOrCreateHash(l.trim())); const tgtDocLines = modifiedLines.map((l) => getOrCreateHash(l.trim())); <del> const sequence1 = new SequenceFromIntArray(srcDocLines); const sequence2 = new SequenceFromIntArray(tgtDocLines); </del> <ins> const sequence1 = new LineSequence(srcDocLines, originalLines); const sequence2 = new LineSequence(tgtDocLines, modifiedLines); </ins> <del> const lineAlignments = (() => { </del> <ins> let lineAlignments = (() => { </ins> if (sequence1.length + sequence2.length < 1500) { // Use the improved algorithm for small files return this.dynamicProgrammingDiffing.compute(

Related discussion:
text: Diffing the files: original: modified: <img width="1127" alt="image" src="https://user-"It would be better to line up things differently and give preference to having lines with smaller indent be boundary lines. fyi
Very nice idea!! Very valuable example. I can implement this in the experimental diffing algorithm, and soon we can discuss to deprecate the smart diffing algorithm ().
Implemented in the experimental diff algorithm (not smart). Let's try to deprecate the smart diff algorithm in favor of the experimental in the next milestones.
Closing, as this is implemented in the experimental diff algorithm, which is now the default. To verify, try it out in the playground:
Code change:
public registerWindowForBackups(windowId: number, isEmptyWorkspace: boolean, backupFolder?: string, workspacePath?: string): void { // Generate a new folder if this is a new empty workspace if (isEmptyWorkspace && !backupFolder) { <del> backupFolder = Date.now().toString(); </del> <ins> backupFolder = this.getRandomEmptyWorkspaceId(); </ins> } this.mapWindowToBackupFolder[windowId] = isEmptyWorkspace ? backupFolder : this.getWorkspaceHash(workspacePath); this.pushBackupPathsSync(isEmptyWorkspace ? backupFolder : workspacePath, isEmptyWorkspace); } <del> protected pushBackupPathsSync(workspaceIdentifier: string, isEmptyWorkspace: boolean): void { </del> <ins> private getRandomEmptyWorkspaceId(): string { return (Date.now() + Math.round(Math.random() * 1000)).toString(); } protected pushBackupPathsSync(workspaceIdentifier: string, isEmptyWorkspace: boolean): string { </ins> if (!isEmptyWorkspace) { workspaceIdentifier = this.sanitizePath(workspaceIdentifier); }

Related discussion:
text: Moving this over from After the backups are not restored if the workspace directory doesn't exist anymore. The workspace is no longer tracked but the backups are kept around in the backup directory should they be needed later.
Tricky.... I would expect an empty window to open with those files dirty. This might require some work on the area of restoring on empty workspaces. Have not thought about this longer yet.
Marking as important because this means data loss if the folder is deleted on disk.
maybe this should be done on the main side on startup similarly to If a folder no longer exists, convert it into an empty workspace backup and let it open as empty window.
On test plan: