Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
5bed675
fix ctrl+w keybinding
benibenj Mar 3, 2026
450aae8
Update src/vs/sessions/contrib/sessions/browser/sessionsViewPane.ts
benibenj Mar 4, 2026
5bf6c54
Update src/vs/sessions/contrib/sessions/browser/sessionsViewPane.ts
benibenj Mar 4, 2026
843f795
towards schema based prompt file validation (#299067)
aeschli Mar 4, 2026
780451d
Inline chat affordance fixes (#299169)
jrieken Mar 4, 2026
0ac17b9
2026 theme: update misc UI component styles
mrleemurray Mar 4, 2026
033cffb
2026 theme: refine editor widget styles and remove redundant properties
mrleemurray Mar 4, 2026
283e479
Merge pull request #298984 from microsoft/benibenj/just-mandrill
benibenj Mar 4, 2026
34659c0
Revert "sessions - improve session hover title rendering and persiste…
bpasero Mar 4, 2026
d724d41
send workspace data to extension host behind a flag (#299179)
sandy081 Mar 4, 2026
0be0030
Support multi line terminal command approvals with ellipsis and align…
benibenj Mar 4, 2026
3674f5a
Add optional codeSelection property and refactor feedback comment (#2…
benibenj Mar 4, 2026
f7d4b70
Update src/vs/workbench/contrib/chat/browser/agentSessions/agentSessi…
benibenj Mar 4, 2026
1722624
Git - expose `rebase()` though the extension API (#299181)
lszomoru Mar 4, 2026
c1184bc
Remove holdToSpeech feature for inline chat (#299182)
jrieken Mar 4, 2026
907cb9c
Merge pull request #299184 from microsoft/benibenj/printed-grasshopper
benibenj Mar 4, 2026
856ea29
No need to throw when an element with the same ID comes in (#299154)
alexr00 Mar 4, 2026
c078240
Sessions - hide the apply change action (#299188)
lszomoru Mar 4, 2026
fefd2c9
Merge pull request #299173 from microsoft/mrleemurray/port-misc-2026-…
mrleemurray Mar 4, 2026
c5e1a4b
sessions - disconnect inactive pickers when switching local/cloud tar…
sandy081 Mar 4, 2026
cf8f394
update: bump @vscode/codicons version to 0.0.45-12 in package.json an…
mrleemurray Mar 4, 2026
284bd98
Add support for custom chat agents in the API (#298227)
DonJayamanne Mar 4, 2026
f198569
Merge pull request #299193 from microsoft/mrleemurray/golden-violet-c…
mrleemurray Mar 4, 2026
7d47fd1
Sessions - enable branch name generation (#299202)
lszomoru Mar 4, 2026
8a03516
sessions - focus chat input after attaching context (#299203)
bpasero Mar 4, 2026
75a2f31
components for AI Customization shortcuts widget
benibenj Mar 4, 2026
a4e35e0
chat: add support for agent plugin sources (#299081)
connor4312 Mar 4, 2026
e933711
Merge pull request #299206 from microsoft/benibenj/musical-flyingfish
benibenj Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions extensions/git/src/api/api1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,10 @@ export class ApiRepository implements Repository {
return this.#repository.mergeAbort();
}

rebase(branch: string): Promise<void> {
return this.#repository.rebase(branch);
}

createStash(options?: { message?: string; includeUntracked?: boolean; staged?: boolean }): Promise<void> {
return this.#repository.createStash(options?.message, options?.includeUntracked, options?.staged);
}
Expand Down
1 change: 1 addition & 0 deletions extensions/git/src/api/git.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,7 @@ export interface Repository {
commit(message: string, opts?: CommitOptions): Promise<void>;
merge(ref: string): Promise<void>;
mergeAbort(): Promise<void>;
rebase(branch: string): Promise<void>;

createStash(options?: { message?: string; includeUntracked?: boolean; staged?: boolean }): Promise<void>;
applyStash(index?: number): Promise<void>;
Expand Down
14 changes: 12 additions & 2 deletions extensions/git/src/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1040,19 +1040,29 @@ export class CommandCenter {
}

@command('_git.cloneRepository')
async cloneRepository(url: string, parentPath: string): Promise<void> {
async cloneRepository(url: string, localPath: string, ref?: string): Promise<void> {
const opts = {
location: ProgressLocation.Notification,
title: l10n.t('Cloning git repository "{0}"...', url),
cancellable: true
};

const parentPath = path.dirname(localPath);
const targetName = path.basename(localPath);

await window.withProgress(
opts,
(progress, token) => this.model.git.clone(url, { parentPath, progress }, token)
(progress, token) => this.model.git.clone(url, { parentPath, targetName, progress, ref }, token)
);
}

@command('_git.checkout')
async checkoutRepository(repositoryPath: string, treeish: string, detached?: boolean): Promise<void> {
const dotGit = await this.git.getRepositoryDotGit(repositoryPath);
const repo = new GitRepository(this.git, repositoryPath, undefined, dotGit, this.logger);
await repo.checkout(treeish, [], detached ? { detached: true } : {});
}

@command('_git.pull')
async pullRepository(repositoryPath: string): Promise<void> {
const dotGit = await this.git.getRepositoryDotGit(repositoryPath);
Expand Down
11 changes: 7 additions & 4 deletions extensions/git/src/git.ts
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,7 @@ const STASH_FORMAT = '%H%n%P%n%gd%n%gs%n%at%n%ct';

export interface ICloneOptions {
readonly parentPath: string;
readonly targetName?: string;
readonly progress: Progress<{ increment: number }>;
readonly recursive?: boolean;
readonly ref?: string;
Expand Down Expand Up @@ -433,14 +434,16 @@ export class Git {
}

async clone(url: string, options: ICloneOptions, cancellationToken?: CancellationToken): Promise<string> {
const baseFolderName = decodeURI(url).replace(/[\/]+$/, '').replace(/^.*[\/\\]/, '').replace(/\.git$/, '') || 'repository';
const baseFolderName = options.targetName || decodeURI(url).replace(/[\/]+$/, '').replace(/^.*[\/\\]/, '').replace(/\.git$/, '') || 'repository';
let folderName = baseFolderName;
let folderPath = path.join(options.parentPath, folderName);
let count = 1;

while (count < 20 && await new Promise(c => exists(folderPath, c))) {
folderName = `${baseFolderName}-${count++}`;
folderPath = path.join(options.parentPath, folderName);
if (!options.targetName) {
while (count < 20 && await new Promise(c => exists(folderPath, c))) {
folderName = `${baseFolderName}-${count++}`;
folderPath = path.join(options.parentPath, folderName);
}
}

await mkdirp(options.parentPath);
Expand Down
1 change: 1 addition & 0 deletions extensions/theme-2026/themes/2026-dark.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"descriptionForeground": "#8C8C8C",
"icon.foreground": "#8C8C8C",
"focusBorder": "#3994BCB3",
"contrastBorder": "#333536",
"textBlockQuote.background": "#242526",
"textBlockQuote.border": "#2A2B2CFF",
"textCodeBlock.background": "#242526",
Expand Down
7 changes: 4 additions & 3 deletions extensions/theme-2026/themes/2026-light.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"descriptionForeground": "#606060",
"icon.foreground": "#606060",
"focusBorder": "#0069CCFF",
"contrastBorder": "#F0F1F2FF",
"textBlockQuote.background": "#EAEAEA",
"textBlockQuote.border": "#F0F1F2FF",
"textCodeBlock.background": "#EAEAEA",
Expand Down Expand Up @@ -135,15 +136,15 @@
"editorBracketMatch.background": "#0069CC40",
"editorBracketMatch.border": "#F0F1F2FF",
"editorWidget.background": "#FAFAFD",
"editorWidget.border": "#EEEEF1",
"editorWidget.border": "#F0F1F2FF",
"editorWidget.foreground": "#202020",
"editorSuggestWidget.background": "#FAFAFD",
"editorSuggestWidget.border": "#EEEEF1",
"editorSuggestWidget.border": "#F0F1F2FF",
"editorSuggestWidget.foreground": "#202020",
"editorSuggestWidget.highlightForeground": "#0069CC",
"editorSuggestWidget.selectedBackground": "#0069CC26",
"editorHoverWidget.background": "#FAFAFD",
"editorHoverWidget.border": "#EEEEF1",
"editorHoverWidget.border": "#F0F1F2FF",
"peekView.border": "#0069CC",
"peekViewEditor.background": "#FAFAFD",
"peekViewEditor.matchHighlightBackground": "#0069CC33",
Expand Down
103 changes: 0 additions & 103 deletions extensions/theme-2026/themes/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,6 @@
}

/* Quick Input (Command Palette) */
.monaco-workbench.vs-dark .quick-input-widget {
border: 1px solid var(--vscode-menu-border) !important;
}

.monaco-workbench .quick-input-widget .quick-input-header,
.monaco-workbench .quick-input-widget .quick-input-list,
.monaco-workbench .quick-input-widget .quick-input-titlebar,
.monaco-workbench .quick-input-widget .quick-input-title,
.monaco-workbench .quick-input-widget .quick-input-description,
.monaco-workbench .quick-input-widget .quick-input-filter,
.monaco-workbench .quick-input-widget .quick-input-action,
.monaco-workbench .quick-input-widget .quick-input-message,
.monaco-workbench .quick-input-widget .monaco-list,
.monaco-workbench .quick-input-widget .monaco-list-row:not(:has(.quick-input-list-separator-border)) {
border-color: transparent !important;
outline: none !important;
}

.monaco-workbench .quick-input-widget .quick-input-list .monaco-list-rows {
background: transparent !important;
}

.monaco-workbench .quick-input-list .quick-input-list-entry .quick-input-list-separator {
height: 16px;
Expand All @@ -67,82 +46,6 @@
padding: 0;
}

.monaco-workbench .quick-input-widget .monaco-list-rows {
background: transparent !important;
}

.monaco-workbench .quick-input-widget .monaco-inputbox {
background: transparent !important;
}

.monaco-workbench .quick-input-widget .quick-input-filter .monaco-inputbox {
background: color-mix(in srgb, var(--vscode-input-background) 60%, transparent) !important;
}

/* Chat Widget */

.monaco-workbench .interactive-session .chat-question-carousel-container {
border-radius: var(--radius-lg);
}

.monaco-workbench .interactive-session .interactive-input-part .chat-editor-container .interactive-input-editor .monaco-editor,
.monaco-workbench .interactive-session .chat-editing-session .chat-editing-session-container {
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.monaco-workbench .interactive-input-part:has(.chat-editing-session > .chat-editing-session-container) .chat-input-container {
border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.monaco-workbench.vs .interactive-session .chat-input-container {
box-shadow: inset var(--shadow-sm);
}
.monaco-workbench .part.panel .interactive-session,
.monaco-workbench .part.auxiliarybar .interactive-session {
position: relative;
}

.monaco-workbench .interactive-session .chat-editing-session .chat-editing-session-container {
background-color: transparent !important;
}

/* Notifications */

.monaco-workbench .notifications-list-container .monaco-list-rows {
background: transparent !important;
}

/* Context Menus */
.monaco-workbench .action-widget .action-widget-action-bar {
background: transparent;
}

/* Suggest Widget */
.monaco-workbench.vs-dark .monaco-editor .suggest-widget {
border: 1px solid var(--vscode-editorWidget-border);
}

/* Dialog */
.monaco-workbench .monaco-dialog-box {
border: 1px solid var(--vscode-dialog-border);
}

/* Peek View */
.monaco-workbench .monaco-editor .peekview-widget .head,
.monaco-workbench .monaco-editor .peekview-widget .body {
background: transparent !important;
}

.monaco-workbench .defineKeybindingWidget {
border: 1px solid var(--vscode-editorWidget-border);
}

/* Chat Editor Overlay */
.monaco-workbench.vs-dark .chat-editor-overlay-widget,
.monaco-workbench.vs-dark .chat-diff-change-content-widget {
border: 1px solid var(--vscode-editorWidget-border);
}

/* Settings */
.monaco-workbench .settings-editor > .settings-header > .search-container > .search-container-widgets > .settings-count-widget {
border-radius: var(--radius-sm);
Expand All @@ -151,12 +54,6 @@
border: 1px solid color-mix(in srgb, var(--vscode-descriptionForeground) 50%, transparent) !important;
}

/* Breadcrumbs */

.monaco-workbench.vs .breadcrumbs-control {
border-bottom: 1px solid var(--vscode-editorWidget-border);
}

/* Input Boxes */
.monaco-inputbox .monaco-action-bar .action-item .codicon,
.monaco-workbench .search-container .input-box,
Expand Down
6 changes: 6 additions & 0 deletions extensions/vscode-api-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"authSession",
"environmentPower",
"chatParticipantPrivate",
"chatPromptFiles",
"chatProvider",
"contribStatusBarItems",
"contribViewsRemote",
Expand Down Expand Up @@ -146,6 +147,11 @@
"id": "test.treeId",
"name": "test-tree",
"when": "never"
},
{
"id": "test.treeSwitchUpdate",
"name": "test-tree-switch-update",
"when": "never"
}
]
},
Expand Down
Loading
Loading