Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alignment with upstream #483

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
547 commits
Select commit Hold shift + click to select a range
d3bd083
Scroll in the preview editor when necessary (#236241)
alexdima Dec 16, 2024
4fa8dfa
set `insertMode: replace` mode for snippets (#236245)
aeschli Dec 16, 2024
a6a6e8e
remove width and height attributes from multi-file-edits.svg (#236010)
bhavyaus Dec 16, 2024
7e8ac0f
Fix titlebar update for longer extension names (#236235)
benibenj Dec 16, 2024
2008c63
Immediately re-render sticky scroll on pressing Shift key (#236244)
aiday-mar Dec 16, 2024
b7f7aea
std-in files (/tmp/code-stdin-*) are not removed on remote and should…
aeschli Dec 16, 2024
fd9ed24
`onCommandExecuted`, hide suggest widget (#236261)
meganrogge Dec 16, 2024
50dca63
add rm from context aria label (#236096)
meganrogge Dec 16, 2024
466eb0b
fix replacement index,length for terminal completions (#236260)
meganrogge Dec 16, 2024
7040943
debt: remove migrations (#236239)
sandy081 Dec 16, 2024
a690eb6
Git - only show git blame information for the active text editor (#23…
lszomoru Dec 16, 2024
24b8e3c
Remove workaround for swiftshader upstream issue
Tyriar Dec 16, 2024
e678c2e
don't filter available commands in the extension (#236101)
meganrogge Dec 16, 2024
a09be5d
Bug: setup hangs (fix microsoft/vscode-copilot#11361) (#236275)
bpasero Dec 16, 2024
c82097d
Merge pull request #236276 from microsoft/tyriar/236148
Tyriar Dec 16, 2024
58399f1
Git - truncate the git blame information after 50 characters (#236279)
lszomoru Dec 16, 2024
f1a2ce6
remove rarely used reinstall extension command (#236278)
sandy081 Dec 16, 2024
4058211
SCM - more quick diff cleanup (#236280)
lszomoru Dec 16, 2024
5c0a53d
Merge branch 'main' into extensionCodeblockLangFix
mjbvz Dec 16, 2024
057dd7b
get `No suggestions` to show up when triggered for terminal suggest (…
meganrogge Dec 16, 2024
d0ecdc1
get terminal editor's name to persist upon rename cancellation (#236281)
meganrogge Dec 16, 2024
8264792
add prompt snippets support (#234220)
legomushroom Dec 16, 2024
d6bf645
remove `javascript.inlayHints.enumMemberValues.enabled` because javas…
DetachHead Dec 16, 2024
6be3f02
Inline simple methods
mjbvz Dec 16, 2024
19c7c01
Allow Github Copilot chat to appear in QuickAccess (#210805)
tcostew Dec 17, 2024
9d8d1d7
Merge pull request #236299 from mjbvz/sensible-manatee
mjbvz Dec 17, 2024
70dc7fc
Use safer escaping for css url strings
mjbvz Dec 17, 2024
95386de
make screen reader notification more descriptive, useful (#236295)
meganrogge Dec 17, 2024
ca3ff9f
SCM - quick diff should better handle untracked files (#236315)
lszomoru Dec 17, 2024
a5a6d6d
Improve wording and flow of restart EH blocker (fix #233912) (#236311)
bpasero Dec 17, 2024
9963eb0
Removing showing of hover on modifier key press (#236317)
aiday-mar Dec 17, 2024
f5e5ee4
SCM - remove more debt from the quick diff (#236318)
lszomoru Dec 17, 2024
f283262
[json] `Unable to load schema, EISDIR: illegal operation on a directo…
aeschli Dec 17, 2024
848e5a3
Do not inherit outer editor's rulers (#236324)
alexdima Dec 17, 2024
b426e02
Show remote name for files in recently opened (fix #143096) (#236309)
bpasero Dec 17, 2024
f78af53
Fix extra primary button in comments (#236325)
alexr00 Dec 17, 2024
9b0cd65
theme - fix some colors in status bar for #235718 (#236331)
bpasero Dec 17, 2024
c269884
disable sticky scroll while steaming edits (#236332)
jrieken Dec 17, 2024
f776d06
Fill pwsh commands via Get-Command
Tyriar Dec 17, 2024
cdd41b0
Reduce duplication in terminal completion service tests
Tyriar Dec 17, 2024
8db902c
Merge pull request #236337 from microsoft/tyriar/235024_2
Tyriar Dec 17, 2024
6997bee
Make badge smaller, reduce margin and change color when icon (#236346)
benibenj Dec 17, 2024
d162ceb
extension events use new `ExtensionError` so that these errors don't …
jrieken Dec 17, 2024
206033f
drop code lenses with invalid/missing range (#236353)
jrieken Dec 17, 2024
317d55d
Pressing alt/opt makes the hover temporarily sticky (#236356)
aiday-mar Dec 17, 2024
538412b
Diff - manually revert 854108f7d2a8b40aa1ac0390f95088e61153ebc5 (#236…
lszomoru Dec 17, 2024
0acab1b
Fixes #11380 (#236352)
hediet Dec 17, 2024
f76df5b
Fixes #11376 (#236358)
hediet Dec 17, 2024
92965da
When tab is pressed when content widget is focused, do not hide the h…
aiday-mar Dec 17, 2024
36d8719
SCM Input - respect `editor.emptySelectionClipboard` setting (#236361)
lszomoru Dec 17, 2024
4229274
Fixes https://github.com/microsoft/vscode-copilot/issues/11377 (#236362)
hediet Dec 17, 2024
da60098
Merge pull request #236340 from microsoft/tyriar/suggest_test
Tyriar Dec 17, 2024
68410e1
Fixes https://github.com/microsoft/vscode-copilot/issues/9375 (#236363)
hediet Dec 17, 2024
639c4c8
Make title bar and command center visible when actions are enabled (#…
benibenj Dec 17, 2024
b4c9953
request folders/files when appropriate (#236370)
meganrogge Dec 17, 2024
d12587c
Fix windows test
mjbvz Dec 17, 2024
da1d8b9
fix 235221: Passing the markdown content to the webview via meta tag …
Parasaran-Python Dec 17, 2024
330ab6c
Reland fix custom task shell doesn't work without manually passing in…
Legend-Master Dec 17, 2024
4422cea
Merge branch 'main' into extensionCodeblockLangFix
mjbvz Dec 17, 2024
754f888
Merge pull request #236303 from mjbvz/embarrassing-pigeon
mjbvz Dec 17, 2024
ca72122
fix 235221: Encode and decode markdown content to escape illegal chars
Parasaran-Python Dec 17, 2024
dfa26a2
Adjusts zIndex for notebooks. (#236380)
hediet Dec 17, 2024
625bae2
debt: clean up obsolete file usage (#236379)
sandy081 Dec 17, 2024
d3b5826
add rerun action to terminal chat to align w editor (#236381)
meganrogge Dec 17, 2024
d08f30d
Update area labels (#236116)
rebornix Dec 17, 2024
2bb6383
Pick up latest TS nightly
mjbvz Dec 17, 2024
0686766
Fixes https://github.com/microsoft/vscode-copilot/issues/10296 (#236383)
hediet Dec 17, 2024
e689b91
Update telemetry package (#236378)
lramos15 Dec 17, 2024
1649b30
testing: fix can toggle inline test coverage for non-text files outsi…
connor4312 Dec 17, 2024
9bb364f
testing: fix scrollbar overlaps coverage indicators (#236387)
connor4312 Dec 17, 2024
6baeecd
Add my labels (#236391)
TylerLeonhardt Dec 17, 2024
7722c2b
Git - adjust command `when` clauses (#236392)
lszomoru Dec 17, 2024
7cc28c3
Add markdown validation status item
mjbvz Dec 17, 2024
cfb3a30
Merge branch 'main' into patch-1
mjbvz Dec 17, 2024
fbc4b86
Merge pull request #235880 from RedCMD/extensionCodeblockLangFix
mjbvz Dec 17, 2024
b3b7f0e
Merge pull request #236400 from mjbvz/advanced-leopard
mjbvz Dec 17, 2024
5e26b3d
Merge pull request #236145 from Parasaran-Python/235221
mjbvz Dec 17, 2024
4559089
Merge pull request #234649 from notoriousmango/feat-open-image
mjbvz Dec 17, 2024
73bd88e
Merge pull request #236388 from mjbvz/important-snake
mjbvz Dec 17, 2024
648def3
Merge pull request #235533 from adrianstephens/custom-editor-preview
mjbvz Dec 17, 2024
a47b13e
Small cleanup follow up on #236145
mjbvz Dec 17, 2024
ad09e3d
Merge pull request #226614 from BABA983/fix-146732
mjbvz Dec 17, 2024
d70e0e2
Merge pull request #236406 from mjbvz/confidential-trout
mjbvz Dec 17, 2024
20dc4d7
Git - add more tracing to stage/unstage/revert commands (#236409)
lszomoru Dec 17, 2024
999f28e
Extend hover styling for entire sticky line (#236410)
Yoyokrazy Dec 17, 2024
b0e6e13
notebook find replace position vs global toolbar (#236407)
Yoyokrazy Dec 17, 2024
cece885
testing: show item when coverage is filtered, standardize some tree c…
connor4312 Dec 17, 2024
2a4ed84
Ensure settings and keybindings views open at correct location (#236412)
benibenj Dec 17, 2024
3e86f1e
cli: fix serve-web needs to wait a certain amount of time after machi…
connor4312 Dec 18, 2024
2089921
dialogs - add `Cmd+D` handling (fix #71430) (#236434)
bpasero Dec 18, 2024
95d0e28
fuzzy - add test coverage for path matching (#236435)
bpasero Dec 18, 2024
cf2ebd9
Revert "debt: clean up obsolete file usage" (#236433)
bpasero Dec 18, 2024
83f695a
Move selected editors instead of only activ ones (#236327)
benibenj Dec 18, 2024
2fb0656
Removal of `chat.experimental.offerSetup` (fix microsoft/vscode-copil…
bpasero Dec 18, 2024
3daa33e
Restore close commands for keybinding support (#236446)
benibenj Dec 18, 2024
224ade9
Git - don't use look-behind regex (#236447)
lszomoru Dec 18, 2024
29a3960
Align panel badge style with activity bar (#236448)
benibenj Dec 18, 2024
777fd07
Git - adopt #private in Git extension API (#236444)
lszomoru Dec 18, 2024
9fb1d57
Reapply "debt: clean up obsolete file usage" (#236453)
sandy081 Dec 18, 2024
41be1c6
handle invalid withProgress invocation as external error (#236454)
jrieken Dec 18, 2024
fca8bb2
Deduplicate untitled workspaces with workspaces that restore (fix #23…
bpasero Dec 18, 2024
2f7beb5
Support for code page `1125` aka `cp866u` (fix #230438 (#236461)
bpasero Dec 18, 2024
6c2faf1
chat - fix setup removal key (#236463)
bpasero Dec 18, 2024
7579838
Render the a background cover up only if really necessary (#236460)
alexdima Dec 18, 2024
473620c
Wrong use of disable store in searchResultsView.ts (fix #236456) (#23…
bpasero Dec 18, 2024
b274aac
Allow center layout with vertical groups (#236471)
benibenj Dec 18, 2024
1efa0d2
refactor: enhance sync method and reuse for preview and some clean up…
sandy081 Dec 18, 2024
3a4f416
Git - fix context key for unstageSelectedRanges (#236476)
lszomoru Dec 18, 2024
a02cb42
add `when` for terminal chat keybinding (#236480)
meganrogge Dec 18, 2024
cec5112
Fixes https://github.com/microsoft/vscode-copilot/issues/9818 (#236486)
hediet Dec 18, 2024
929ce7c
fixes a random bunch of leaking disposables (#236487)
jrieken Dec 18, 2024
148a1ca
TreeView: MaxCallStackError - Nesting (#236493)
alexr00 Dec 18, 2024
7d0efab
Adds single observable logging (#236481)
hediet Dec 18, 2024
aaa5982
debug: fix underflow/overflow in breakpoint edit widget (#236428)
connor4312 Dec 18, 2024
4fcae88
do not show no suggestions widget unless it was explicitly invoked (#…
meganrogge Dec 18, 2024
4c3f5de
debug: make ctrl+c copy value(s) in debug views (#236501)
connor4312 Dec 18, 2024
d6d5ebe
Splitting cells should maintain the current edit state (#236507)
Yoyokrazy Dec 18, 2024
91581ca
focus debug console when it becomes visible (#236502)
meganrogge Dec 18, 2024
7f9c7a4
testing: avoid profiles dropdown when there's a single profile (#236509)
connor4312 Dec 18, 2024
9fc5861
Speculative fix when pwsh is 'powershell' on mac/linux
Tyriar Dec 18, 2024
ebe010b
Merge pull request #236514 from microsoft/tyriar/219583
Tyriar Dec 18, 2024
c88542e
Fix navigation to single match in tree find (#236515)
benibenj Dec 18, 2024
1147139
fix: copy from context menu for chat references does not work (#236518)
joyceerhl Dec 18, 2024
e6e5856
debug: fix unexpected behaviors with duplicate `name`s in `launch.jso…
connor4312 Dec 18, 2024
3fd6eef
fix: workbench.debug.action.focusRepl resolving before focus is given…
connor4312 Dec 18, 2024
37c543b
Implements gutter indicator (off by default). (#236522)
hediet Dec 18, 2024
0900a62
get terminal completions to work for screen reader users (#236516)
meganrogge Dec 18, 2024
4572abc
debug: fix REPL input not resizing when pasting content that wraps (#…
connor4312 Dec 18, 2024
a7d5ca7
Fix logic for notebook outline data source isEmpty() fn (#236525)
Yoyokrazy Dec 18, 2024
6869b35
Show chat participants and tools on extension features page (#236526)
roblourens Dec 18, 2024
37b1016
Lock some SCM strings (#236531)
TylerLeonhardt Dec 18, 2024
03e9e31
Await remote extensions before checking enablement (#236538)
sbatten Dec 19, 2024
dd86be1
lists: support user selection in lists, and adopt it in the debug con…
connor4312 Dec 19, 2024
acd32b1
Use IExtensionsWorkbenchService instead (#236540)
roblourens Dec 19, 2024
d47f63e
Revert focus behavior fix for views/panels (#236556)
benibenj Dec 19, 2024
d74499b
@vscode/proxy-agent 0.28.0
chrmarti Dec 19, 2024
7e000da
recovery fix: fixing installing extensions everywhere when it is alre…
sandy081 Dec 19, 2024
7efdaa5
don't show inline chat hint when line has too many comments or string…
jrieken Dec 19, 2024
cbfd8ab
Cache builtin commands and get all global commands for pwsh
Tyriar Dec 19, 2024
011e8ec
chat setup - use 1 service as source of truth for extensions (#236564)
bpasero Dec 19, 2024
7f512c5
chat - fix setup in web based on remote connection
bpasero Dec 19, 2024
2295903
Enable dragging of editor from breadcrumbs in single tabs (#236571)
benibenj Dec 19, 2024
a4fdb49
Merge pull request #236572 from microsoft/ben/terrible-cow
bpasero Dec 19, 2024
1b078e1
Disable word wrap in preview editor (#236574)
alexdima Dec 19, 2024
b392dd9
simplification: tokenizeLineWithEdit -> tokenizeLinesAt (#236577)
hediet Dec 19, 2024
41a58be
Bug: The cursor must be within a commenting range to add a comment. (…
alexr00 Dec 19, 2024
2ba0803
multi root - allow `--remove` for removal of workspace folders (fix #…
bpasero Dec 19, 2024
225d1ca
Improved value formatting in observable logging (#236579)
hediet Dec 19, 2024
9813e9a
Revert "Pressing alt/opt makes the hover temporarily sticky (#236356)"
alexdima Dec 19, 2024
aea3ab4
Fix compilation errors
alexdima Dec 19, 2024
5385e31
Trigger inline edits on paste (#236584)
alexdima Dec 19, 2024
0551999
Ignore bg terminals for confirmOnExit
Tyriar Dec 19, 2024
75969ec
Merge pull request #236586 from microsoft/revert-236356-like-takin
alexdima Dec 19, 2024
fcdef2e
Merge pull request #236588 from microsoft/tyriar/235575
Tyriar Dec 19, 2024
4051adf
Fix TypeError for undefined isShowingFilterResults (#236590)
benibenj Dec 19, 2024
25b88b7
Git - fix encoding issue with stage selected ranges (#236484)
lszomoru Dec 19, 2024
8467007
Merge pull request #236570 from microsoft/tyriar/236097
Tyriar Dec 19, 2024
986871f
Proper fix for #236537 (#236596)
sandy081 Dec 19, 2024
f990dfb
Git - expose `env` through the extension API (#236598)
lszomoru Dec 19, 2024
ffbf5a7
Use indices for queue processing instead of Array.shift() (#236601)
benibenj Dec 19, 2024
613ad56
code cleanup (#236595)
hediet Dec 19, 2024
9945f3b
Revert "focus debug console when it becomes visible " (#236607)
meganrogge Dec 19, 2024
ceab34b
icon themes: remove fontCharacterRegex (#236610)
aeschli Dec 19, 2024
27abe27
Implements experimental word replacement and insertion views. (#236618)
hediet Dec 19, 2024
a6210a0
user aria alert vs native when navigating in terminal accessible view…
meganrogge Dec 19, 2024
8be4be0
Fixes bug (#236620)
hediet Dec 19, 2024
d55cb9a
Use claims to force an idToken in Broker flow (#236623)
TylerLeonhardt Dec 19, 2024
fe68aa5
fix go to symbol in accessible view (#236624)
meganrogge Dec 19, 2024
d34e049
Add `outdated` and `recentlyUpdated` suggestions to extension filter …
RedCMD Dec 19, 2024
1cbc2ee
rm `auto` as a type for voice synthesizer setting (#236616)
meganrogge Dec 19, 2024
2a99d43
fix: don't watch untitled files for chat editing (#236634)
joyceerhl Dec 19, 2024
2217f51
Fix title bar focus command when hidden (#236635)
benibenj Dec 19, 2024
e48d729
Apply margin to action items (#236638)
TylerLeonhardt Dec 19, 2024
9c0128b
Merge pull request #236297 from DetachHead/patch-1
mjbvz Dec 19, 2024
358e96a
Cancel if the user dismisses the modal (#236642)
TylerLeonhardt Dec 19, 2024
ad359b1
Clear nb selection highlights on non-explicit cursor events (#236641)
Yoyokrazy Dec 19, 2024
6ec5e7b
debug: fix tree 'measuring node not in DOM error' (#236645)
connor4312 Dec 19, 2024
f442df1
Git - better match git conflict decorations (#236646)
lszomoru Dec 19, 2024
ee8c3e9
add `Terminal: resize suggest widget size` command (#236639)
meganrogge Dec 19, 2024
41793c2
use keyboard vs key icon for configure keybinding action icons (#236649)
meganrogge Dec 19, 2024
38c3ebe
Remove repeated call, warn on invalid persisted data (#236658)
roblourens Dec 20, 2024
89f8089
Cancel request tool calls when cancelling chat request (#236663)
roblourens Dec 20, 2024
77cec55
Git - git installation welcome view should use remoteName context key…
lszomoru Dec 20, 2024
da59ef7
workbench.action.focus*GroupWithoutWrap commands fail to focus *-most…
bpasero Dec 20, 2024
b9084ed
Git - file system provider should throw `FileNotFound` if the resourc…
lszomoru Dec 20, 2024
91ced52
Add the possibility to define context keys on CodeEditorWidgets
alexdima Dec 20, 2024
7d4b23f
Move `getOuterEditor` near the EmbeddedCodeEditorWidget
alexdima Dec 20, 2024
eb66332
Merge pull request #236012 from The-Fiery-Fire/bun
aeschli Dec 20, 2024
9cb7a27
Make Tab and Escape work when focus is in the preview
alexdima Dec 20, 2024
16074f9
Merge remote-tracking branch 'origin/main' into alexd/popular-krill
alexdima Dec 20, 2024
1730c76
fix(git-ext): fix limitWarning block the git status progress (#226577)
zWingz Dec 20, 2024
5930e94
Merge pull request #236685 from microsoft/alexd/popular-krill
alexdima Dec 20, 2024
c1cff69
Consistent layout actions for views/containers/activitybar (#236686)
benibenj Dec 20, 2024
d239347
Add a context key for whether commenting is enabled (#236679)
alexr00 Dec 20, 2024
692fbdb
Set multi-line setting to a valid value when disabling
Tyriar Dec 20, 2024
78cd951
Close the terminal view when there's only one visible view
Tyriar Dec 20, 2024
dc96726
Merge pull request #236695 from microsoft/tyriar/231562_2
Tyriar Dec 20, 2024
2dc420d
Create terminal when toggled without contents
Tyriar Dec 20, 2024
8d0d731
SCM - add scm.historyProviderCount context key (#236694)
lszomoru Dec 20, 2024
f7fd666
Add hideOnLastClosed setting
Tyriar Dec 20, 2024
1b43b07
Merge pull request #236696 from microsoft/tyriar/236517
Tyriar Dec 20, 2024
502a7e5
SCM - do not show "Open in External Terminal" action when connected t…
lszomoru Dec 20, 2024
d8c2678
Add share context menu action (#236699)
benibenj Dec 20, 2024
b8b4db3
Git - cleanup `vscode-merge-base` git config key when deleteing a bra…
lszomoru Dec 20, 2024
5cdf4dd
Register editor gpu acceleration with included:false
Tyriar Dec 20, 2024
decaa08
Use correct context keys for share provider title context action (#23…
benibenj Dec 20, 2024
62948ea
Indicate when terminal sticky scroll is truncated
Tyriar Dec 20, 2024
9f717d9
Merge pull request #236720 from microsoft/tyriar/235730
Tyriar Dec 20, 2024
68ebb25
Merge pull request #236721 from microsoft/tyriar/199974
Tyriar Dec 20, 2024
1270874
Suppress exit warning after ctrl+d
Tyriar Dec 20, 2024
1be76b3
Fix response toString for inline refs
mjbvz Dec 20, 2024
e5f9272
Merge pull request #236729 from microsoft/tyriuar/160325
Tyriar Dec 20, 2024
437450a
Explain exitCode undefined in more detail
Tyriar Dec 20, 2024
dfdece6
fix types for task API props (#236735)
meganrogge Dec 20, 2024
131ee0e
Merge pull request #236736 from microsoft/tyriar/236670
Tyriar Dec 20, 2024
23aee3d
Revert "Reland fix custom task shell doesn't work without manually pa…
meganrogge Dec 20, 2024
0f2ee1f
fix: promote suggested file to working set when opened (#236737)
joyceerhl Dec 20, 2024
720422c
chore: bump milestone in work notebook (#236730)
joyceerhl Dec 20, 2024
eee5e76
cli: propagate server-data-dir and extensions-dir when installing ser…
connor4312 Dec 20, 2024
15da193
Allow completions to be requested earlier (#236630)
meganrogge Dec 20, 2024
c55b2da
Merge pull request #236731 from mjbvz/upset-clownfish
mjbvz Dec 20, 2024
7cf9dbe
Fix escaping of raw values that contain `&` in md preview
mjbvz Dec 20, 2024
094e96a
Introduces IObservableWithChange so that typescript does not show the…
hediet Dec 20, 2024
83c336d
Log when a derived gets cleared (#236739)
hediet Dec 20, 2024
b9f07f1
Adds color descriptions. (#236741)
hediet Dec 20, 2024
f092379
Merge pull request #236747 from mjbvz/above-asp
mjbvz Dec 20, 2024
5d5976d
fix: macos external terminal not opening in darkwin remotes (#236426)
connor4312 Dec 20, 2024
9ee30e5
fix terminal completion issues with `replacementIndex` (#236728)
meganrogge Dec 20, 2024
3751af2
Implements inline edit indicator hover (#236738)
hediet Dec 20, 2024
0c51035
testing: fix errors peeks being oversized relative to their contents …
connor4312 Dec 20, 2024
13d2a61
fix: don't register Cloud Changes action if not configured in product…
joyceerhl Dec 20, 2024
68252d3
fix: don't leak listener in share contribution (#236767)
joyceerhl Dec 21, 2024
d4de5ce
test: adopt `ensureNoDisposablesAreLeakedInTestSuite` (#236766)
joyceerhl Dec 21, 2024
d6a59b7
debug: fix mismatched indentation for folders in loaded scripts (#236…
connor4312 Dec 21, 2024
d953d84
debug: allow filter/search on debug values (#236768)
connor4312 Dec 21, 2024
151ef35
SCM - disable actions for resource groups that do not have any resour…
lszomoru Dec 22, 2024
2e5cbd4
chore: update electron@32.2.7 (#236843)
deepak1556 Dec 23, 2024
fca210c
Git - escape shell-sensitive characters (#236849)
lszomoru Dec 23, 2024
4fa5611
Git - handle the diff editor for untracked files now that we throw `F…
lszomoru Dec 24, 2024
7da68c0
Remove console.log (#236006)
DonJayamanne Dec 27, 2024
0a66dc3
Adopt concept of flows in Microsoft Auth (#237006)
TylerLeonhardt Dec 27, 2024
1410d77
reverse cancellation and sequencer (#237029)
TylerLeonhardt Dec 28, 2024
a3261ea
Fix default tree find modes (#237057)
benibenj Dec 29, 2024
6d6cfdc
Git - add git blame editor decoration hover provider (#237102)
lszomoru Dec 30, 2024
ba56ac5
Git - refactor git blame code (#237185)
lszomoru Jan 2, 2025
92bae09
Git - update git blame settings (#237187)
lszomoru Jan 2, 2025
2bdb3e9
Git - git blame hover commands polish (#237190)
lszomoru Jan 2, 2025
e63af19
Rebase against the upstream 2bdb3e9b41bd72048ea2067a350d8536c82fc7f6
RomanNikitenko Jan 3, 2025
c97bc9d
chore: Update lock files after resolving conflicts
RomanNikitenko Jan 3, 2025
f14588e
fix: Fix fetching product.json file content
RomanNikitenko Jan 7, 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
  •  
  •  
  •  
13 changes: 0 additions & 13 deletions code/.github/commands.yml

This file was deleted.

134 changes: 0 additions & 134 deletions code/.github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,137 +55,3 @@ for (let i = 0, n = str.length; i < 10; i++) {

function f(x: number, y: string): void { }
```

# Extension API Guidelines

## Overview

The following guidelines only apply to files in the `src/vscode-dts` folder.

This is a loose collection of guidelines that you should be following when proposing API. The process for adding API is described here: [Extension API Process](https://github.com/Microsoft/vscode/wiki/Extension-API-process).

## Core Principles

### Avoid Breakage

We DO NOT want to break API. Therefore be careful and conservative when proposing new API. It needs to hold up in the long term. Expose only the minimum but still try to anticipate potential future requests.

### Namespaces

The API is structured into different namespaces, like `commands`, `window`, `workspace` etc. Namespaces contain functions, constants, and events. All types (classes, enum, interfaces) are defined in the global, `vscode`, namespace.

### JavaScript Feel

The API should have a JavaScript’ish feel. While that is harder to put in rules, it means we use namespaces, properties, functions, and globals instead of object-factories and services. Also take inspiration from popular existing JS API, for instance `window.createStatusBarItem` is like `document.createElement`, the members of `DiagnosticsCollection` are similar to ES6 maps etc.

### Global Events

Events aren’t defined on the types they occur on but in the best matching namespace. For instance, document changes aren't sent by a document but via the `workspace.onDidChangeTextDocument` event. The event will contain the document in question. This **global event** pattern makes it easier to manage event subscriptions because changes happen less frequently.

### Private Events

Private or instance events aren't accessible via globals but exist on objects, e.g., `FileSystemWatcher#onDidCreate`. *Don't* use private events unless the sender of the event is private. The rule of thumb is: 'Objects that can be accessed globally (editors, tasks, terminals, documents, etc)' should not have private events, objects that are private (only known by its creators, like tree views, web views) can send private events'

### Event Naming

Events follow the `on[Did|Will]VerbSubject` patterns, like `onDidChangeActiveEditor` or `onWillSaveTextDocument`. It doesn’t hurt to use explicit names.

### Creating Objects

Objects that live in the main thread but can be controlled/instantiated by extensions are declared as interfaces, e.g. `TextDocument` or `StatusBarItem`. When you allow creating such objects your API must follow the `createXYZ(args): XYZ` pattern. Because this is a constructor-replacement, the call must return synchronously.

### Shy Objects

Objects the API hands out to extensions should not contain more than what the API defines. Don’t expect everyone to read `vscode.d.ts` but also expect folks to use debugging-aided-intellisense, meaning whatever the debugger shows developers will program against. We don’t want to appear as making false promises. Prefix your private members with `_` as that is a common rule or, even better, use function-scopes to hide information.

### Sync vs. Async

Reading data, like an editor selection, a configuration value, etc. is synchronous. Setting a state that reflects on the main side is asynchronous. Despite updates being async your ‘extension host object’ should reflect the new state synchronously. This happens when setting an editor selection

```
editor.selection = newSelection

|
|
V

1. On the API object set the value as given
2. Make an async-call to the main side ala `trySetSelection`
3. The async-call returns with the actual selection (it might have changed in the meantime)
4. On the API object set the value again
```

We usually don’t expose the fact that setting state is asynchronous. We try to have API that feels sync -`editor.selection` is a getter/setter and not a method.

### Data Driven

Whenever possible, you should define a data model and define provider-interfaces. This puts VS Code into control as we can decide when to ask those providers, how to deal with multiple providers etc. The `ReferenceProvider` interface is a good sample for this.

### Enrich Data Incrementally

Sometimes it is expensive for a provider to compute parts of its data. For instance, creating a full `CompletionItem` (with all the documentation and symbols resolved) conflicts with being able to compute a large list of them quickly. In those cases, providers should return a lightweight version and offer a `resolve` method that allows extensions to enrich data. The `CodeLensProvider` and `CompletionItemProvider` interfaces are good samples for this.

### Cancellation

Calls into a provider should always include a `CancellationToken` as the last parameter. With that, the main thread can signal to the provider that its result won’t be needed anymore. When adding new parameters to provider-functions, it is OK to have the token not at the end anymore.

### Objects vs. Interfaces

Objects that should be returned by a provider are usually represented by a class that extensions can instantiate, e.g. `CodeLens`. We do that to provide convenience constructors and to be able to populate default values.

Data that we accept in methods calls, i.e., parameter types, like in `registerRenameProvider` or `showQuickPick`, are declared as interfaces. That makes it easy to fulfill the API contract using class-instances or plain object literals.

### Strict and Relaxed Data

Data the API returns is strict, e.g. `activeTextEditor` is an editor or `undefined`, but not `null`. On the other side, providers can return relaxed data. We usually accept 4 types: The actual type, like `Hover`, a `Thenable` of that type, `undefined` or `null`. With that we want to make it easy to implement a provider, e.g., if you can compute results synchronous you don’t need to wrap things into a promise or if a certain condition isn’t met simple return, etc.

### Validate Data

Although providers can return ‘relaxed’ data, you need to verify it. The same is true for arguments etc. Throw validation errors when possible, drop data object when invalid.

### Copy Data

Don’t send the data that a provider returned over the wire. Often it contains more information than we need and often there are cyclic dependencies. Use the provider data to create objects that your protocol speaks.

### Enums

When API-work started only numeric-enums were supported, today TypeScript supports string-or-types and string-enums. Because fewer concepts are better, we stick to numeric-enums.

### Strict Null

We define the API with strictNull-checks in mind. That means we use the optional annotation `foo?: number` and `null` or `undefined` in type annotations. For instance, its `activeTextEditor: TextEditor | undefined`. Again, be strict for types we define and relaxed when accepting data.

### Undefined is False

The default value of an optional, boolean property is `false`. This is for consistency with JS where undefined never evaluates to `true`.

### JSDoc

We add JSDoc for all parts of the API. The doc is supported by markdown syntax. When document string-datatypes that end up in the UI, use the phrase ‘Human-readable string…’

## Optional Parameters (`?` vs `| undefined`)

* For implementation, treat omitting a parameter with `?` the same as explicitly passing in `undefined`
* Use `| undefined` when you want to callers to always have to consider the parameter.
* Use `?` when you want to allow callers to omit the parameter.
* Never use `?` and `| undefined` on a parameter. Instead follow the two rules above to decide which version to use.
* If adding a new parameter to an existing function, use `?` as this allows the new signature to be backwards compatible with the old version.
* Do not add an overload to add an optional parameter to the end of the function. Instead use `?`.

## Optional Properties (`?` vs `| undefined`)

* Do not write code that treats the absence of a property differently than a property being present but set to `undefined`
* This can sometimes hit you on spreads or iterating through objects, so just something to be aware of

* For readonly properties on interfaces that VS Code exposes to extensions (this include managed objects, as well as the objects passed to events):
* Use `| undefined` as this makes it clear the property exists but has the value `undefined`.

* For readonly properties on options bag type objects passed from extensions to VS Code:
* Use `?` when it is ok to omit the property
* Use `| undefined` when you want the user to have to pass in the property but `undefined` signals that you will fall back to some default
* Try to avoid `?` + `| undefined` in most cases. Instead use `?`. Using both `?` + `| undefined` isn't wrong, but it's often more clear to treat omitting the property as falling back to the default rather than passing in `undefined`

* For unmanaged, writable objects:
* If using `?`, always also add `| undefined` unless want to allow the property to be omitted during initialization, but never allow users to explicitly set it to `undefined` afterwards. I don't think we have many cases where this will be needed
* In these cases, you may want to try changing the api to avoid this potential confusion
* If adding a new property to an unmanaged object, use `?` as this ensures the type is backwards compatible with the old version
Loading
Loading