Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
6577 commits
Select commit Hold shift + click to select a range
08dffa4
Git - remove the remaining instances of `config.multiDiffEditor.exper…
lszomoru Dec 16, 2025
0b983d9
exclude mcp output from accessible view (#283889)
meganrogge Dec 16, 2025
3f3ae0c
remote: fix connection listener leak (#283922)
connor4312 Dec 16, 2025
a32f7d1
Export terminal chat context key strings to prevent hardcoded strings…
Copilot Dec 16, 2025
d64abc5
mcp: fix flakes in McpStdioStateHandler tests (#283925)
connor4312 Dec 16, 2025
9dc98a2
debug: fix webview debugging breaking with >256KB messages (#283936)
connor4312 Dec 16, 2025
8d82909
Restore tool documentation (#283939)
roblourens Dec 17, 2025
1385867
Implement onDidBackgroundSession (#283935)
roblourens Dec 17, 2025
ee73541
Add some padding to align checkboxes when tree items have no children…
dmitrivMS Dec 17, 2025
8b949a8
testing: some polish on test coverage navigation (#283938)
connor4312 Dec 17, 2025
2976d95
Chat - fix hovering on the working set item when there are no actions…
lszomoru Dec 17, 2025
1aba7da
Engineering - add missing variable to the test pipeline (#283991)
lszomoru Dec 17, 2025
a443d08
Merge branch 'main' into mrleemurray/tragic-gayal-turquoise
mrleemurray Dec 17, 2025
df339b1
style: comment out border property in various CSS files for consistency
mrleemurray Dec 17, 2025
022987b
style: update agent session section label colors for focus and select…
mrleemurray Dec 17, 2025
91f2128
Merge pull request #284015 from microsoft/mrleemurray/gentle-nighting…
mrleemurray Dec 17, 2025
bb78270
style: remove unused textPreformat border variable from known variables
mrleemurray Dec 17, 2025
a862b3d
chat entitlement - set `no_auth_limited_copilot` for anonymous (#284021)
bpasero Dec 17, 2025
8eac7dd
style: restore border property for text preformat in various CSS files
mrleemurray Dec 17, 2025
35bd387
Flip defaults for chat.restoreLastPanelSession (fix #284011) (#284026)
bpasero Dec 17, 2025
ec12d2b
Use different color for voice recording icon/animation (#283309)
dmitrivMS Dec 17, 2025
bd2c6f0
Merge pull request #283784 from microsoft/mrleemurray/tragic-gayal-tu…
mrleemurray Dec 17, 2025
bade067
agent sessions - tweaks to sessions picker actions (rename, delete) (…
bpasero Dec 17, 2025
e255528
Git - update branch protection dialog message (#284037)
lszomoru Dec 17, 2025
bf11fe8
feat: add support for secondary custom buttons in QuickPick and Simpl…
mrleemurray Dec 17, 2025
be0b198
Initial plan
Copilot Dec 17, 2025
bcd8ade
Initial plan
Copilot Dec 17, 2025
d23e7c2
Fix customButtonSecondary setter type to match interface
Copilot Dec 17, 2025
4e9f0d1
Merge pull request #284047 from microsoft/copilot/sub-pr-284043
mrleemurray Dec 17, 2025
6277527
Handle undefined in customButtonSecondary setter
Copilot Dec 17, 2025
400b3fd
Merge pull request #284048 from microsoft/copilot/sub-pr-284043-again
mrleemurray Dec 17, 2025
9292312
Merge pull request #284043 from microsoft/mrleemurray/confident-bonob…
mrleemurray Dec 17, 2025
ac2e929
Add sizes to known variables and update color registry tests
mrleemurray Dec 17, 2025
5e1d01a
Merge pull request #284054 from microsoft/mrleemurray/regional-coyote…
mrleemurray Dec 17, 2025
cff2c31
Agent sessions: consider a better out of the box sidebar experience (…
bpasero Dec 17, 2025
a679af0
agent sessions - retire 'auto' sessions orientation (#284064)
bpasero Dec 17, 2025
0e00e8f
bump cloud icons down `1px` to vertically center
mrleemurray Dec 17, 2025
39cf282
Fix error in releasenotes editor (#284078)
alexr00 Dec 17, 2025
2468754
fix #235103 (#284081)
sandy081 Dec 17, 2025
a09b411
Merge pull request #284083 from microsoft/mrleemurray/comparable-band…
mrleemurray Dec 17, 2025
d607e96
refactor: update button styles and colors for extension actions
mrleemurray Dec 17, 2025
d8da25d
Don't show word based suggestions when completion provider available
benibenj Dec 17, 2025
608d33f
Merge pull request #284094 from microsoft/benibenj/weird-chicken
benibenj Dec 17, 2025
016caa4
style: adjust border and visibility for empty dropdown items in actio…
mrleemurray Dec 17, 2025
c9c613a
Merge pull request #284102 from microsoft/mrleemurray/upset-whippet-b…
mrleemurray Dec 17, 2025
8202cbb
cancel progress sound for backgrounded sessions (#283942)
meganrogge Dec 17, 2025
88b7540
Fix TypeError when accessing undefined character in terminal suggest …
Copilot Dec 17, 2025
a8f871a
Remove chatAgentMaxRequestsLimit experiment (#284120)
roblourens Dec 17, 2025
abc747b
Merge pull request #284107 from microsoft/connor4312/bp-tree
connor4312 Dec 17, 2025
8e9aaaf
consider server commands finished vs requesting user input when appro…
meganrogge Dec 17, 2025
1d4be24
Smart scroll: Add scroll position behavior alongside cursor position …
Copilot Dec 17, 2025
73c5ac5
Merge branch 'main' into bhrg/multiple-empty-copy
alexdima Dec 17, 2025
82fb5e1
Agent Skills cleanup (#283934)
pwang347 Dec 17, 2025
1bb90a3
Update unit tests
alexdima Dec 17, 2025
a808643
Add toggles and button support in all Quick Pick locations (#283724)
Copilot Dec 17, 2025
dfc25cc
Output filter: support negative and multiple filters (#283595)
Copilot Dec 17, 2025
606e114
Make terminal attachment hover content lazy (#284145)
Copilot Dec 17, 2025
95fb05b
ensure terminal suggest works after moving the terminal to a new view…
meganrogge Dec 17, 2025
32a3ad5
relayout suggest widget on resize of terminal (#284149)
meganrogge Dec 17, 2025
a04b198
Fix terminal icon picker placement (#281275)
milanchahar Dec 17, 2025
b76549b
Add validation for name and description fields for agent skills (#284…
pwang347 Dec 17, 2025
8a27959
Update skills setting description (#284193)
digitarald Dec 18, 2025
b1be245
Add upvotes to issue-grouping prompt (#283850)
alexr00 Dec 18, 2025
1387398
Merge pull request #256083 from BartolHrg/bhrg/multiple-empty-copy
alexdima Dec 18, 2025
695f93c
Add editorBracketMatch-foreground color setting (#284031)
dmitrivMS Dec 18, 2025
c72e071
Add styling for extension bookmarks in high contrast themes
mrleemurray Dec 18, 2025
900e7cb
Revert "Smart scroll: Add scroll position behavior alongside cursor p…
sandy081 Dec 18, 2025
150682a
Git - add worktrees node to the Repositories view (#284224)
lszomoru Dec 18, 2025
3ce7858
do not create rename when suggest widget is visible
benibenj Dec 18, 2025
a6932a2
Git - expose `createStash()` in the git extension API (#284226)
lszomoru Dec 18, 2025
9fb450e
Merge branch 'main' into mrleemurray/optimistic-llama-harlequin
mrleemurray Dec 18, 2025
83bc698
Merge pull request #284234 from microsoft/benibenj/distinctive-weasel
benibenj Dec 18, 2025
e3fbfc1
Merge pull request #284222 from microsoft/mrleemurray/optimistic-llam…
mrleemurray Dec 18, 2025
abd691b
Git - polish delete worktree picker (#284242)
lszomoru Dec 18, 2025
f985c25
Add terminal resize overlay showing dimensions
tharani-2006 Dec 18, 2025
eefd7a2
Add default auto approve rule for sed
Tyriar Dec 18, 2025
e3523ed
Fix Nobteoook cell selectiong + scroll (#284253)
DonJayamanne Dec 18, 2025
6d28298
Git - add option to ignore whitespace for the blame information (#284…
lszomoru Dec 18, 2025
3853298
Fix terminal chat quick pick tooltip displaying commands with collaps…
Copilot Dec 18, 2025
3f52ca0
agent sessions - show more sessions when stacked is expanded
bpasero Dec 18, 2025
3c0ce89
Don't run timer when agent stopped on "continue to iterate" (fix #283…
bpasero Dec 18, 2025
65f6d80
agent sessions - better layout for session details row
bpasero Dec 18, 2025
96cc23e
Fix terminal completion items not appearing when resourceOptions prov…
Copilot Dec 18, 2025
22217e6
Agent sessions: improve the tooltip (fix #278568)
bpasero Dec 18, 2025
d68eb34
Don't try to update element height from a disconnected template (#284…
roblourens Dec 18, 2025
09bd247
Merge pull request #284275 from microsoft/ben/peaceful-unicorn
bpasero Dec 18, 2025
643cd83
fix #166627 (#284282)
sandy081 Dec 18, 2025
3f0a018
Bump distro (#284281)
alexr00 Dec 18, 2025
6f2af20
fix terminal disposable leak (#284283)
meganrogge Dec 18, 2025
e5e973c
fix #190761 (#284286)
sandy081 Dec 18, 2025
dff7b2c
agent sessions - labels polish
bpasero Dec 18, 2025
2a4c8f5
Merge pull request #284297 from microsoft/ben/ideological-ox
bpasero Dec 18, 2025
d32733f
fix bug with inserting code block into terminal (#284132)
meganrogge Dec 18, 2025
844fd4c
make `focusTerminal` async for consistency (#284134)
meganrogge Dec 18, 2025
84c5d6c
rm unnecessary code (#284317)
meganrogge Dec 18, 2025
1ecd392
update accessible view content as response streams in, rm redundant w…
meganrogge Dec 18, 2025
89b8c4e
Updates for Agent Skills alignment (#284300)
pwang347 Dec 18, 2025
beecac5
fix: memory leak in terminal chat widget (#284325)
SimonSiefke Dec 18, 2025
22a9b2d
Terminal: show resize overlay only during manual resize
tharani-2006 Dec 19, 2025
8fec28c
fix: memory leak in chat widget (#284288)
SimonSiefke Dec 19, 2025
5c306a9
Fix workspace symbol search filtering when query contains `#` or `*` …
Copilot Dec 19, 2025
64fda10
remove unnecessary xterm calls (#284335)
meganrogge Dec 19, 2025
cd3a511
Move terminal run recent to use a button toggle
TylerLeonhardt Dec 19, 2025
3180912
Use new toggles in the public API
dmitrivMS Dec 19, 2025
d6e971b
Merge pull request #284366 from microsoft/dev/dmitriv/update-quick-pi…
dmitrivMS Dec 19, 2025
b014124
Adjust heuristic for preferring 2 over 4 for indentation size
dmitrivMS Dec 19, 2025
c89c752
agent sessions -show count of local sessions in delete all action
bpasero Dec 19, 2025
5d7b383
Show Agent Sessions Sidebar button is noop when sessions view is disa…
bpasero Dec 19, 2025
b2f28b4
agent sessions - remember choice of showing all in stacked via settin…
bpasero Dec 19, 2025
22f728c
agent sessions - put edit actions right below opening actions (#284390)
bpasero Dec 19, 2025
c4faa84
agent sessions - track active chat editor if panel chat is empty (#28…
bpasero Dec 19, 2025
c957399
Git - get the diff and num stats for a commit (#284403)
lszomoru Dec 19, 2025
acba36e
Git - adopt new worktree codicon (#284406)
lszomoru Dec 19, 2025
d231631
fix #205657 (#284409)
sandy081 Dec 19, 2025
ae4e9e6
Git - use different icon for worktrees created by copilot (#284413)
lszomoru Dec 19, 2025
192dcc2
Add tests and CSS 4 syntax support for hsl/hsla colors
dmitrivMS Dec 19, 2025
47acb90
CSS 4 syntax for RGB
dmitrivMS Dec 19, 2025
8482378
Codex: Incorrect highlighting of selected session in Agent Sessions v…
bpasero Dec 19, 2025
7d1e2d4
agent sessions - track sessions viewer limited state in workspace mem…
bpasero Dec 19, 2025
5ad0c7c
Fix Notebook cell layout issue when navigating cells (#284341)
DonJayamanne Dec 19, 2025
eba6411
fs - ensure atomic writes are allowed to create and overwrite tmp fil…
bpasero Dec 19, 2025
6b4945d
fix notebook background colors
benibenj Dec 19, 2025
10a6e29
Merge pull request #284434 from microsoft/benibenj/raw-primate
benibenj Dec 19, 2025
d482142
Allow redirects to trusted domains
dmitrivMS Dec 19, 2025
e9e52c3
Restrict terminal.integrated.windowsUseConptyDll
Tyriar Dec 19, 2025
c677363
fix notebooks gutter indicator arrow not showing
benibenj Dec 19, 2025
383949d
Merge pull request #284445 from microsoft/tyriar/284336
Tyriar Dec 19, 2025
af21d86
fix #284447 (#284449)
sandy081 Dec 19, 2025
9e95522
Git - one more icon to update for worktrees (#284450)
lszomoru Dec 19, 2025
f34aaea
Revert "Add editorBracketMatch-foreground color setting (#284031)" (#…
hediet Dec 19, 2025
7f08f95
Merge pull request #284452 from microsoft/benibenj/handsome-leopard
benibenj Dec 19, 2025
ad89fb7
fix: memory leak in extension icon widget (#280566)
SimonSiefke Dec 19, 2025
c843a8a
fix: memory leak in terminal editor (#279088)
SimonSiefke Dec 19, 2025
b81bd1a
SCM - hide worktrees created by Copilot Chat (#284462)
lszomoru Dec 19, 2025
997708d
Merge branch 'main' into fix/terminal-default-cmd-icon
bpasero Dec 19, 2025
b5397ce
Git - add new method to the interface (#284471)
lszomoru Dec 19, 2025
6b56181
Merge pull request #280967 from sudip-kumar-prasad/fix/terminal-defau…
Tyriar Dec 19, 2025
17485f9
node-pty@1.1.0-beta43
Tyriar Dec 19, 2025
750848d
Move terminal resize overlay to TerminalInstance; support multi-termi…
tharani-2006 Dec 19, 2025
5e032c5
Merge pull request #284482 from microsoft/tyriar/node-pty-43
Tyriar Dec 19, 2025
e94fb8b
fix #232862 (#284488)
sandy081 Dec 19, 2025
7a45161
fix #232864 (#284500)
sandy081 Dec 19, 2025
36c2c4c
Merge pull request #284363 from microsoft/tyler/known-marlin
Tyriar Dec 19, 2025
af1ae58
Revert parentElement change in terminalTabbedView.ts
Tyriar Dec 19, 2025
022385d
Use processReady and timeout to prevent initial resize events
Tyriar Dec 19, 2025
4d27c02
Move overlay into new class
Tyriar Dec 19, 2025
fd7a369
don't suggest IW as context (#284505)
amunger Dec 19, 2025
5a2d002
Support terminal editors and switching containers
Tyriar Dec 19, 2025
9193fd5
Watch and remove file attachments that are deleted (#283387)
dmitrivMS Dec 19, 2025
096a817
Merge pull request #284244 from tharani-2006/add-terminal-resize-dime…
Tyriar Dec 19, 2025
591b6b9
Fix positioning of count with toggles (#284533)
TylerLeonhardt Dec 19, 2025
4497960
Use a button instead of a toggle for the theme picker (#284367)
TylerLeonhardt Dec 19, 2025
f0be43a
This should have been input not inline buttons (#284540)
TylerLeonhardt Dec 19, 2025
4f3bfdd
Use the new Button as Toggles syntax for Language Model Tools Confirm…
TylerLeonhardt Dec 19, 2025
e476eef
"Search with AI" option shows even if you have "Disable AI Features" …
bpasero Dec 20, 2025
d390495
Old toggles be gone (#284544)
TylerLeonhardt Dec 20, 2025
d5df40d
Remove deprecated widget API (#284546)
TylerLeonhardt Dec 20, 2025
d87d06f
Fix Notebook Cell Editor height calc when pasting and scrolling (#284…
DonJayamanne Dec 20, 2025
897df01
Merge remote-tracking branch 'origin/main' into dev/dmitriv/fetch-too…
dmitrivMS Dec 20, 2025
e180c6e
Move urlGlob and trustedDomains to platform, use them in webContentEx…
dmitrivMS Dec 20, 2025
c348a9a
Move npm spec out of upstream
Tyriar Dec 20, 2025
e0e5e8b
Replace double with single quotes
Tyriar Dec 20, 2025
a3a4853
Remove emoji icons
Tyriar Dec 20, 2025
7b6fa0c
Add --package-lock-only to npm i flags
Tyriar Dec 20, 2025
def1b67
Move pnpm and yarn out of upstream
Tyriar Dec 20, 2025
de7ad3f
Double to single quotes in pnpm
Tyriar Dec 20, 2025
25a617e
Remove emoji icons from pnpm
Tyriar Dec 20, 2025
0be0a9e
Double to single quotes in yarn
Tyriar Dec 20, 2025
88132c2
Fix remaining hygiene issues in yarn spec
Tyriar Dec 20, 2025
6e2a864
Merge pull request #284595 from microsoft/tyriar/284593_npm_spec
Tyriar Dec 20, 2025
ae22fa2
Add status updates for completed steps in Getting Started page (#284565)
bhavyaus Dec 20, 2025
f6686c6
Merge pull request #284248 from microsoft/tyriar/282209_sed
Tyriar Dec 20, 2025
698d618
Merge branch 'main' into tyriar/282824
Tyriar Dec 21, 2025
792929f
Get chat session transferring working on the ChatSessionStore (#283512)
roblourens Dec 21, 2025
6aca02c
Merge branch 'main' into tyriar/284593_npm_spec__actual_spec
Tyriar Dec 21, 2025
2083450
Merge pull request #282839 from microsoft/tyriar/282824
Tyriar Dec 21, 2025
2e6cfee
Merge pull request #284597 from microsoft/tyriar/284593_npm_spec__act…
Tyriar Dec 21, 2025
ec6406b
Let built-in chat participants share metadata (#284636)
roblourens Dec 21, 2025
86d7cec
fix(terminalChatAgentTools): include uppercase -I in sed in-place opt…
tamuratak Dec 21, 2025
d080603
test(runInTerminalTool): add test case for sed in-place option with u…
tamuratak Dec 21, 2025
b5ef2e0
make selections pinnable as implicit context (#284657)
justschen Dec 21, 2025
23897ce
Treat column number in Go To Line as visible column
dmitrivMS Dec 21, 2025
dead67f
Merge pull request #284645 from tamuratak/tweak_sed
Tyriar Dec 21, 2025
de33fdc
Move resize dims overlay into terminalContrib
Tyriar Dec 21, 2025
a4451f5
Fix "add context" toolbar item slow to appear (#284706)
roblourens Dec 22, 2025
7a6a792
Add indentation rules for Visual Basic
dmitrivMS Dec 22, 2025
cf186fd
Git - update git worktree inlint action (#284737)
lszomoru Dec 22, 2025
045a6c2
SCM - fix issue with repository selection (#284748)
lszomoru Dec 22, 2025
3f9e5f8
Merge pull request #284696 from microsoft/tyriar/resize_contrib
Tyriar Dec 22, 2025
e78d8b5
Reduce debt in ChatService (#284777)
roblourens Dec 22, 2025
e666a55
Initial plan
Copilot Dec 22, 2025
1780fff
Update extensions/vb/language-configuration.json
dmitrivMS Dec 22, 2025
f860aef
Update onEnterRules to use case-insensitive patterns
Copilot Dec 22, 2025
e7a20ba
Merge remote-tracking branch 'origin/copilot/sub-pr-284711' into dev/…
dmitrivMS Dec 22, 2025
e90ece8
Some lint fixes (#284809)
roblourens Dec 23, 2025
c561232
Support refreshing Chat Session Provider Options (#284815)
DonJayamanne Dec 23, 2025
70847ce
Merge branch 'main' into dev/dmitriv/vb-indent-rules
dmitrivMS Dec 23, 2025
2961083
Merge branch 'main' into dev/dmitriv/go-to-column
dmitrivMS Dec 23, 2025
1663fb5
Merge branch 'main' into dev/dmitriv/fetch-tool-fixes
dmitrivMS Dec 23, 2025
2957efd
Merge branch 'main' into dev/dmitriv/hsla-colors-regex
dmitrivMS Dec 23, 2025
2a1ac1b
Merge branch 'main' into dev/dmitriv/fix-tab-size-detection
dmitrivMS Dec 23, 2025
b3a49ac
Enable skip confirmation on permanent file deletion
dmitrivMS Dec 23, 2025
9de6f4e
Merge pull request #284889 from microsoft/dev/dmitriv/skip-permanent-…
dmitrivMS Dec 23, 2025
b41b3d5
Defer alpha channel setting to `Color.Format.CSS` functions
dmitrivMS Dec 24, 2025
b42058b
Update src/vs/editor/contrib/colorPicker/browser/defaultDocumentColor…
dmitrivMS Dec 24, 2025
19de81f
Fix incorrect Copilot change
dmitrivMS Dec 24, 2025
0adb45a
Revert "Fix incorrect Copilot change"
dmitrivMS Dec 24, 2025
f5422b1
Fix incorrect copilot change
dmitrivMS Dec 24, 2025
9b2d30c
Revert one more change.
dmitrivMS Dec 24, 2025
6059424
Fix indent space -> tab
Tyriar Dec 24, 2025
2934fd4
Merge pull request #284953 from microsoft/Tyriar-patch-1
Tyriar Dec 24, 2025
5d2a6f8
making sure the then on triggerPaste is not evaluated twice (#284961)
aiday-mar Dec 24, 2025
4ec1d67
Add completions for npm why|explain
Tyriar Dec 24, 2025
ad2acdf
Merge pull request #284993 from microsoft/tyriar/npm_why
Tyriar Dec 24, 2025
20b1485
Merge pull request #284946 from microsoft/dev/dmitriv/color-picker-he…
dmitrivMS Dec 25, 2025
83f180c
Merge pull request #284423 from microsoft/dev/dmitriv/hsla-colors-regex
dmitrivMS Dec 25, 2025
3eb7d65
Support `# pragma` folding markers in C (#284927)
RedCMD Dec 25, 2025
b0e9dce
Refactor virtual model creation logic in MoveLinesCommand (#284785)
SalerSimo Dec 25, 2025
ba7faf1
xterm@6.1.0-beta.22
Tyriar Dec 25, 2025
c2dc549
Update customGlyph setting description with new details
Tyriar Dec 25, 2025
0fa7421
Update src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts
Tyriar Dec 25, 2025
9f86d7e
Remove forced layout from terminal command guide
Tyriar Dec 25, 2025
5dbd5d6
Move terminal tabs width eval to happen on resize only
Tyriar Dec 25, 2025
54528f7
Move shell integration refresh into debounced method
Tyriar Dec 25, 2025
64929b8
Merge pull request #285035 from microsoft/tyriar/285032
Tyriar Dec 25, 2025
64c7e39
Merge branch 'main' into tyriar/285032__285031
Tyriar Dec 25, 2025
874799b
Support customGlyph in webgl options
Tyriar Dec 25, 2025
6979e72
Merge pull request #285039 from microsoft/tyriar/285032__285031
Tyriar Dec 25, 2025
857aea7
Merge pull request #285033 from microsoft/tyriar/xterm_251225
Tyriar Dec 25, 2025
d5b1147
Merge pull request #284668 from microsoft/dev/dmitriv/go-to-column
dmitrivMS Dec 26, 2025
e5d4511
Merge pull request #284438 from microsoft/dev/dmitriv/fetch-tool-fixes
dmitrivMS Dec 26, 2025
73621d0
Merge branch 'main' into dev/dmitriv/vb-indent-rules
dmitrivMS Dec 26, 2025
4ea54fb
Merge branch 'main' into dev/dmitriv/fix-tab-size-detection
dmitrivMS Dec 26, 2025
43081d3
Git - expose list of worktrees through the git extension API (#285087)
lszomoru Dec 26, 2025
1e06fcd
Merge pull request #284711 from microsoft/dev/dmitriv/vb-indent-rules
dmitrivMS Dec 26, 2025
7f4d1c3
Merge pull request #284371 from microsoft/dev/dmitriv/fix-tab-size-de…
dmitrivMS Dec 26, 2025
d0bba70
Git - do not prompt when opening a worktree (#285107)
lszomoru Dec 26, 2025
4a433b1
Refactor: Move Dom creations to the constructor of RenderedStickyLine…
notoriousmango Dec 26, 2025
1debf21
Reverse lines: apply to whole document when selection is single line …
hickford Dec 26, 2025
d878ca9
Enable "secondary" buttons in all QuickInput locations except Input (…
TylerLeonhardt Dec 28, 2025
8244c9f
Add log statement to see environment (#285220)
TylerLeonhardt Dec 28, 2025
dcce2aa
workbench: add commands to move editor to start and end (#284999)
kheif Dec 28, 2025
74c4ecd
debt - remove AMD support of VSCode for web (#285230)
bpasero Dec 28, 2025
f5db09f
Make inactive styling the same as active in quicktree (#285288)
TylerLeonhardt Dec 29, 2025
7af6f94
Have ENTER fire accept in QuickTree (#285289)
TylerLeonhardt Dec 29, 2025
ad3a9ff
xterm@6.1.0-beta.56
Tyriar Dec 29, 2025
38a88be
Remove vscode-side keybinding for ctrl+/
Tyriar Dec 29, 2025
cf46e18
debt - consistent variable naming in quick access (#285302)
bpasero Dec 29, 2025
43b3987
debt - adopt `@vscode/watcher` with some newer fixes (#285247)
bpasero Dec 29, 2025
30d2a29
Merge pull request #285312 from microsoft/tyriar/xterm_20251229
Tyriar Dec 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
420 changes: 0 additions & 420 deletions .config/guardian/.gdnbaselines

This file was deleted.

52 changes: 37 additions & 15 deletions .config/guardian/.gdnsuppress
Original file line number Diff line number Diff line change
@@ -1,46 +1,68 @@
{
"hydrated": false,
"hydrated": true,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions"
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2025-03-17 11:52:32Z",
"lastUpdatedDate": "2025-03-17 11:52:32Z"
"createdDate": "2025-01-28 06:29:05Z",
"lastUpdatedDate": "2025-08-25 17:55:20Z"
}
},
"results": {
"216e2ac9cb596796224b47799f656570a01fa0d9b5f935608b47d15ab613c8e8": {
"signature": "216e2ac9cb596796224b47799f656570a01fa0d9b5f935608b47d15ab613c8e8",
"6216d3477ad4f56cb4ec316a9aaff02e9530a10d56469a4ef4063b8d02fe344b": {
"signature": "6216d3477ad4f56cb4ec316a9aaff02e9530a10d56469a4ef4063b8d02fe344b",
"alternativeSignatures": [
"07746898f43afab7cc50931b33154c2d9e1a35f82a649dbe8aecf785b3d5a813"
"46ad210995b2ff199f3bee5f271938a4251ed7a60058041ace1beaa53e36b51c"
],
"target": "file:///D:/a/_work/1/vscode-server-win32-x64/node.exe",
"memberOf": [
"default"
],
"createdDate": "2025-03-17 11:52:32Z"
"tool": "binskim",
"ruleId": "BA2008",
"createdDate": "2025-08-25 17:54:06Z"
},
"77797a3e44634bb2994bd13ccc95ff4575bba474585dbd2cf3068a1c16bc0624": {
"signature": "77797a3e44634bb2994bd13ccc95ff4575bba474585dbd2cf3068a1c16bc0624",
"b8a4702fb4b855719e5e5033c3b629fbe6267d516ce8a18bd8f3be3b9962434b": {
"signature": "b8a4702fb4b855719e5e5033c3b629fbe6267d516ce8a18bd8f3be3b9962434b",
"alternativeSignatures": [
"4a6cb67bd4b401e9669c13a2162660aaefc0a94a4122e5b50c198414db545672"
"52d986be88f1c5696fc87d7794279d02f5084c645440e2dd2c3b5a2176b6bf52"
],
"target": "file:///D:/a/_work/1/vscode-server-win32-x64-web/node.exe",
"memberOf": [
"default"
],
"createdDate": "2025-03-17 11:52:32Z"
"tool": "binskim",
"ruleId": "BA2008",
"createdDate": "2025-08-25 17:54:06Z"
},
"30418bcc5269eaeb2832a2404465784431d4e72a2af332320c2b1db4768902ad": {
"signature": "30418bcc5269eaeb2832a2404465784431d4e72a2af332320c2b1db4768902ad",
"4dbc45d0405de2e83d53f10227e36b2a9d15eceb2c5e6934da5c4a1bffbfad89": {
"signature": "4dbc45d0405de2e83d53f10227e36b2a9d15eceb2c5e6934da5c4a1bffbfad89",
"alternativeSignatures": [
"b7b9eb974d7d3a4ae14df8695ca5a62592c8c9d20b7eda70a6535d50cbda3e7f"
"b6bab85ba5e97bc4e6ff2e8a7913cb9f4f3346f7bda435d176e0b1e3cfb883cf"
],
"target": "file:///D:/a/_work/1/vscode-server-win32-arm64/node.exe",
"memberOf": [
"default"
],
"createdDate": "2025-03-17 11:52:32Z"
"tool": "binskim",
"ruleId": "BA2008",
"createdDate": "2025-08-25 17:45:35Z"
},
"024ff37af329b63d2d9c83784cc071badf63b7729e3dd0969ab921d2f04d8e09": {
"signature": "024ff37af329b63d2d9c83784cc071badf63b7729e3dd0969ab921d2f04d8e09",
"alternativeSignatures": [
"b46b7d6ed331f3e62eff23c57d3a074f76ef618f108929851065904200f5a572"
],
"target": "file:///D:/a/_work/1/vscode-server-win32-arm64-web/node.exe",
"memberOf": [
"default"
],
"tool": "binskim",
"ruleId": "BA2008",
"createdDate": "2025-08-25 17:45:35Z"
}
}
}
6 changes: 3 additions & 3 deletions .eslint-ignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
**/extensions/markdown-language-features/media/**
**/extensions/markdown-language-features/notebook-out/**
**/extensions/markdown-math/notebook-out/**
**/extensions/mermaid-chat-features/chat-webview-out/**
**/extensions/notebook-renderers/renderer-out/index.js
**/extensions/simple-browser/media/index.js
**/extensions/terminal-suggest/src/completions/upstream/**
Expand All @@ -24,9 +25,8 @@
**/extensions/vscode-api-tests/testWorkspace2/**
**/fixtures/**
**/node_modules/**
**/out-*/**/*.js
**/out-editor-*/**
**/out/**/*.js
**/out/**
**/out-*/**
**/src/**/dompurify.js
**/src/**/marked.js
**/src/**/semver.js
Expand Down
125 changes: 125 additions & 0 deletions .eslint-plugin-local/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Custom ESLint rules

We use a set of custom [ESLint](http://eslint.org) to enforce repo specific coding rules and styles. These custom rules are run in addition to many standard ESLint rules we enable in the project. Some example custom rules includes:

- Enforcing proper code layering
- Preventing checking in of `test.only(...)`
- Enforcing conventions in `vscode.d.ts`

Custom rules are mostly used for enforcing or banning certain coding patterns. We tend to leave stylistic choices up to area owners unless there's a good reason to enforce something project wide.

This doc provides a brief overview of how these rules are setup and how you can add a new one.

# Resources
- [ESLint rules](https://eslint.org/docs/latest/extend/custom-rules) — General documentation about writing eslint rules
- [TypeScript ASTs and eslint](https://typescript-eslint.io/blog/asts-and-typescript-eslint/) — Look at how ESLint works with TS programs
- [ESTree selectors](https://eslint.org/docs/latest/extend/selectors) — Info about the selector syntax rules use to target specific nodes in an AST. Works similarly to css selectors.
- [TypeScript ESLint playground](https://typescript-eslint.io/play/#showAST=es) — Useful tool for figuring out the structure of TS programs and debugging custom rule selectors


# Custom Rule Configuration

Custom rules are defined in the `.eslint-plugin-local` folder. Each rule is defined in its own TypeScript file. These follow the naming convention:

- `code-RULE-NAME.ts` — General rules that apply to the entire repo.
- `vscode-dts-RULE-NAME.ts` — Rules that apply just to `vscode.d.ts`.

These rules are then enabled in the `eslint.config.js` file. This is the main eslint configuration for our repo. It defines a set of file scopes which rules should apply to files in those scopes.

For example, here's a configuration that enables the no `test.only` rule in all `*.test.ts` files in the VS Code repo:

```ts
{
// Define which files these rules apply to
files: [
'**/*.test.ts'
],
languageOptions: { parser: tseslint.parser, },
plugins: {
'local': pluginLocal,
},
rules: {
// Enable the rule from .eslint-plugin-local/code-no-test-only.ts
'local/code-no-test-only': 'error',
}
}
```

# Creating a new custom rule
This walks through the steps to create a new eslint rule:

1. Create a new rule file under `.eslint-plugin-local`. Generally you should call it `code-YOUR-RULE-NAME.ts`, for example, `.eslint-plugin-local/code-no-not-null-assertions-on-undefined-values.ts`

2. In this file, add the rule. Here's a template:

```ts
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

import * as eslint from 'eslint';

export = new class YourRuleName implements eslint.Rule.RuleModule {

readonly meta: eslint.Rule.RuleMetaData = {
messages: {
customMessageName: 'message text shown in errors/warnings',
},
schema: false,
};

create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
return {
[SELECTOR]: (node: any) => {
// Report errors if needed
return context.report({
node,
messageId: 'customMessageName'
});
}
};
}
};
```

- Update the name of the class to match the name of your rule
- Add message entries for any errors you want to report
- Update `SELECTOR` with the [ESTree selector](https://eslint.org/docs/latest/extend/selectors) needed to target the nodes you are interested in. Use the [TypeScript ESLint playground](https://typescript-eslint.io/play/#showAST=es) to figure out which nodes you need and debug selectors

3. Register the rule in `eslint.config.js`

Generally this is just turning on the rule in the rule list like so:

```js
rules: {
// Name should match file name
'local/code-no-not-null-assertions-on-undefined-values': 'warn',
...
}
```

Rules can also take custom arguments. For example, here's how we can pass arguments to a custom rule in the `eslint.config.js`:

```
rules: {
'local/code-no-not-null-assertions-on-undefined-values': ['warn', { testsOk: true }],
...
}
```

In these cases make sure to update the `meta.schema` property on your rule with the JSON schema for the arguments. You can access these arguments using `context.options` in the rule `create` function


## Adding fixes to custom rules
Fixes are a useful way to mechanically fix basic linting issues, such as auto inserting semicolons. These fixes typically work at the AST level, so they are a more reliable way to perform bulk fixes compared to find/replaces.

To add a fix for a custom rule:

1. On the `meta` for your rule, add `fixable: 'code'`

2. When reporting an error in the rule, also include a `fix`. This is a function that takes a `fixer` argument and returns one or more fixes.

See the [Double quoted to single quoted string covert fix](https://github.com/microsoft/vscode/blob/b074375e1884ae01033967bf0bbceeaa4795354a/.eslint-plugin-local/code-no-unexternalized-strings.ts#L128) for an example. The ESLint docs also have [details on adding fixes and the fixer api](https://eslint.org/docs/latest/extend/custom-rules#applying-fixes)

The fixes can be run using `npx eslint --fix` in the VS Code repo
13 changes: 8 additions & 5 deletions .eslint-plugin-local/code-amd-node-module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
*--------------------------------------------------------------------------------------------*/

import * as eslint from 'eslint';
import type * as ESTree from 'estree';
import { readFileSync } from 'fs';
import { join } from 'path';


export = new class ApiProviderNaming implements eslint.Rule.RuleModule {
export default new class ApiProviderNaming implements eslint.Rule.RuleModule {

readonly meta: eslint.Rule.RuleMetaData = {
messages: {
Expand All @@ -21,7 +23,8 @@ export = new class ApiProviderNaming implements eslint.Rule.RuleModule {
const modules = new Set<string>();

try {
const { dependencies, optionalDependencies } = require(join(__dirname, '../package.json'));
const packageJson = JSON.parse(readFileSync(join(import.meta.dirname, '../package.json'), 'utf-8'));
const { dependencies, optionalDependencies } = packageJson;
const all = Object.keys(dependencies).concat(Object.keys(optionalDependencies));
for (const key of all) {
modules.add(key);
Expand All @@ -33,13 +36,13 @@ export = new class ApiProviderNaming implements eslint.Rule.RuleModule {
}


const checkImport = (node: any) => {
const checkImport = (node: ESTree.Literal & { parent?: ESTree.Node & { importKind?: string } }) => {

if (node.type !== 'Literal' || typeof node.value !== 'string') {
if (typeof node.value !== 'string') {
return;
}

if (node.parent.importKind === 'type') {
if (node.parent?.type === 'ImportDeclaration' && node.parent.importKind === 'type') {
return;
}

Expand Down
5 changes: 3 additions & 2 deletions .eslint-plugin-local/code-declare-service-brand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
*--------------------------------------------------------------------------------------------*/

import * as eslint from 'eslint';
import type * as ESTree from 'estree';

export = new class DeclareServiceBrand implements eslint.Rule.RuleModule {
export default new class DeclareServiceBrand implements eslint.Rule.RuleModule {

readonly meta: eslint.Rule.RuleMetaData = {
fixable: 'code',
Expand All @@ -14,7 +15,7 @@ export = new class DeclareServiceBrand implements eslint.Rule.RuleModule {

create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
return {
['PropertyDefinition[key.name="_serviceBrand"][value]']: (node: any) => {
['PropertyDefinition[key.name="_serviceBrand"][value]']: (node: ESTree.PropertyDefinition) => {
return context.report({
node,
message: `The '_serviceBrand'-property should not have a value`,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
*--------------------------------------------------------------------------------------------*/

import * as eslint from 'eslint';
import { Node } from 'estree';
import type * as estree from 'estree';

export = new class EnsureNoDisposablesAreLeakedInTestSuite implements eslint.Rule.RuleModule {
export default new class EnsureNoDisposablesAreLeakedInTestSuite implements eslint.Rule.RuleModule {

readonly meta: eslint.Rule.RuleMetaData = {
type: 'problem',
Expand All @@ -18,15 +18,15 @@ export = new class EnsureNoDisposablesAreLeakedInTestSuite implements eslint.Rul
};

create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
const config = <{ exclude: string[] }>context.options[0];
const config = context.options[0] as { exclude: string[] };

const needle = context.getFilename().replace(/\\/g, '/');
if (config.exclude.some((e) => needle.endsWith(e))) {
return {};
}

return {
[`Program > ExpressionStatement > CallExpression[callee.name='suite']`]: (node: Node) => {
[`Program > ExpressionStatement > CallExpression[callee.name='suite']`]: (node: estree.Node) => {
const src = context.getSourceCode().getText(node);
if (!src.includes('ensureNoDisposablesAreLeakedInTestSuite(')) {
context.report({
Expand Down
12 changes: 6 additions & 6 deletions .eslint-plugin-local/code-import-patterns.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import * as eslint from 'eslint';
import { TSESTree } from '@typescript-eslint/utils';
import * as path from 'path';
import minimatch from 'minimatch';
import { createImportRuleListener } from './utils';
import { createImportRuleListener } from './utils.ts';

const REPO_ROOT = path.normalize(path.join(__dirname, '../'));
const REPO_ROOT = path.normalize(path.join(import.meta.dirname, '../'));

interface ConditionalPattern {
when?: 'hasBrowser' | 'hasNode' | 'hasElectron' | 'test';
Expand All @@ -31,15 +31,15 @@ interface LayerAllowRule {
type RawOption = RawImportPatternsConfig | LayerAllowRule;

function isLayerAllowRule(option: RawOption): option is LayerAllowRule {
return !!((<LayerAllowRule>option).when && (<LayerAllowRule>option).allow);
return !!((option as LayerAllowRule).when && (option as LayerAllowRule).allow);
}

interface ImportPatternsConfig {
target: string;
restrictions: string[];
}

export = new class implements eslint.Rule.RuleModule {
export default new class implements eslint.Rule.RuleModule {

readonly meta: eslint.Rule.RuleMetaData = {
messages: {
Expand All @@ -55,7 +55,7 @@ export = new class implements eslint.Rule.RuleModule {
};

create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
const options = <RawOption[]>context.options;
const options = context.options as RawOption[];
const configs = this._processOptions(options);
const relativeFilename = getRelativeFilename(context);

Expand Down Expand Up @@ -217,7 +217,7 @@ export = new class implements eslint.Rule.RuleModule {
configs.push(testConfig);
}
} else {
configs.push({ target, restrictions: <string[]>restrictions.filter(r => typeof r === 'string') });
configs.push({ target, restrictions: restrictions.filter(r => typeof r === 'string') as string[] });
}
}
this._optionsCache.set(options, configs);
Expand Down
Loading