Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
d0061bb
Window control overlay does not dim when modal custom dialog shows (f…
bpasero Feb 13, 2026
3eb326e
Cmd + w closes the window when maximized chat (fix #293051) (#295133)
bpasero Feb 13, 2026
4d38837
Move usages tool (#295139)
jrieken Feb 13, 2026
970fb63
fix declare const enum not inlined by esbuild, fixes #295046 (#295149)
jrieken Feb 13, 2026
8d43dd6
Add support for reduced transparency in accessibility settings
mrleemurray Feb 13, 2026
8bc0e77
Enhance quick input widget styling for better visibility and interaction
mrleemurray Feb 13, 2026
9d1ba05
Update codicons version to 0.0.45-7 and add new icon 'openInWindow'
mrleemurray Feb 13, 2026
0d2c8e6
Merge pull request #295164 from microsoft/mrleemurray/driving-black-cod
mrleemurray Feb 13, 2026
71c0804
Merge pull request #295166 from microsoft/mrleemurray/double-bronze-g…
mrleemurray Feb 13, 2026
a5d1c2c
Merge pull request #295171 from microsoft/mrleemurray/dusty-azure-can…
mrleemurray Feb 13, 2026
d45ab2f
Fix question carousel reappearing after window reload (#295007)
Copilot Feb 13, 2026
e1f64b1
fix: memory leak in tunnel view (#287142)
SimonSiefke Feb 13, 2026
d0a3dbb
add signout to default account (#295174)
sandy081 Feb 13, 2026
60bf105
Suppress chat tips in terminal/editor inline chat (#295170)
Copilot Feb 13, 2026
0c797c5
clean up css + fix questions carousel reload (#295084)
justschen Feb 13, 2026
1e6c729
fix: remove appx when windows10 context menu is forced (#295187)
deepak1556 Feb 13, 2026
6e326e9
Remove confusing GitHub repository tip from chat tips (#295177)
Copilot Feb 13, 2026
2a69f02
add tips toolbar (#295175)
meganrogge Feb 13, 2026
bf09717
editor - support toggled state for modal editor size (#295199)
bpasero Feb 13, 2026
7f21d02
layout - show toggled icons again for maximised panel/chat (#295189)
bpasero Feb 13, 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
52 changes: 52 additions & 0 deletions .eslint-plugin-local/code-no-declare-const-enum.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*---------------------------------------------------------------------------------------------
* 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';

/**
* Disallows `declare const enum` declarations. esbuild does not inline
* `declare const enum` values, leaving the enum identifier in the output
* which causes a ReferenceError at runtime.
*
* Use `const enum` (without `declare`) instead.
*
* See https://github.com/evanw/esbuild/issues/4394
*/
export default new class NoDeclareConstEnum implements eslint.Rule.RuleModule {

readonly meta: eslint.Rule.RuleMetaData = {
messages: {
noDeclareConstEnum: '"declare const enum" is not supported by esbuild. Use "const enum" instead. See https://github.com/evanw/esbuild/issues/4394',
},
schema: false,
fixable: 'code',
};

create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
return {
TSEnumDeclaration(node: any) {
if (node.const && node.declare) {
context.report({
node,
messageId: 'noDeclareConstEnum',
fix: (fixer) => {
// Remove "declare " from "declare const enum"
const sourceCode = context.sourceCode;
const text = sourceCode.getText(node);
const declareIndex = text.indexOf('declare');
if (declareIndex !== -1) {
return fixer.removeRange([
node.range[0] + declareIndex,
node.range[0] + declareIndex + 'declare '.length
]);
}
return null;
}
});
}
}
};
}
};
8 changes: 7 additions & 1 deletion build/win32/code.iss
Original file line number Diff line number Diff line change
Expand Up @@ -1508,7 +1508,7 @@ var
begin
// Check if the user has forced Windows 10 style context menus on Windows 11
SubKey := 'Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32';
Result := RegKeyExists(HKEY_CURRENT_USER, SubKey) or RegKeyExists(HKEY_LOCAL_MACHINE, SubKey);
Result := RegKeyExists(HKEY_CURRENT_USER, SubKey);
end;

function ShouldUseWindows11ContextMenu(): Boolean;
Expand Down Expand Up @@ -1675,6 +1675,12 @@ begin
if CurStep = ssPostInstall then
begin
#ifdef AppxPackageName
// Remove the appx package when user has forced Windows 10 context menus via
// registry. This handles the case where the user previously had the appx
// installed but now wants the classic context menu style.
if IsWindows10ContextMenuForced() then begin
RemoveAppxPackage();
end;
// Remove the old context menu registry keys
if ShouldUseWindows11ContextMenu() then begin
RegDeleteKeyIncludingSubkeys({#EnvironmentRootKey}, 'Software\Classes\*\shell\{#RegValueName}');
Expand Down
1 change: 1 addition & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ export default tseslint.config(
'semi': 'warn',
'local/code-translation-remind': 'warn',
'local/code-no-native-private': 'warn',
'local/code-no-declare-const-enum': 'warn',
'local/code-parameter-properties-must-have-explicit-accessibility': 'warn',
'local/code-no-nls-in-standalone-editor': 'warn',
'local/code-no-potentially-unsafe-disposables': 'warn',
Expand Down
172 changes: 172 additions & 0 deletions extensions/theme-2026/themes/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,14 @@
outline: none !important;
}

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

.monaco-workbench.vs .quick-input-widget .quick-input-list .monaco-list-row:hover:not(.selected):not(.focused) {
background-color: color-mix(in srgb, var(--vscode-list-hoverBackground) 95%, black) !important;
}

.monaco-workbench .monaco-editor .suggest-widget .monaco-list {
border-radius: var(--radius-lg);
}
Expand Down Expand Up @@ -682,3 +690,167 @@
opacity: 1;
color: var(--vscode-descriptionForeground);
}

/* ============================================================================================
* Reduced Transparency - disable backdrop-filter blur and color-mix transparency effects
* for improved rendering performance. Controlled by workbench.reduceTransparency setting.
* ============================================================================================ */

/* Reset blur variables to none */
.monaco-workbench.monaco-reduce-transparency {
--backdrop-blur-sm: none;
--backdrop-blur-md: none;
--backdrop-blur-lg: none;
}

/* Quick Input (Command Palette) */
.monaco-workbench.monaco-reduce-transparency .quick-input-widget {
background-color: var(--vscode-quickInput-background) !important;
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

/* Notifications */
.monaco-workbench.monaco-reduce-transparency .notification-toast-container {
-webkit-backdrop-filter: none;
backdrop-filter: none;
background: var(--vscode-notifications-background) !important;
}

.monaco-workbench.monaco-reduce-transparency .notifications-center {
-webkit-backdrop-filter: none;
backdrop-filter: none;
background: var(--vscode-notifications-background) !important;
}

/* Context Menu / Action Widget */
.monaco-workbench.monaco-reduce-transparency .action-widget {
background: var(--vscode-menu-background) !important;
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

/* Suggest Widget */
.monaco-workbench.monaco-reduce-transparency .monaco-editor .suggest-widget {
-webkit-backdrop-filter: none;
backdrop-filter: none;
background: var(--vscode-editorSuggestWidget-background) !important;
}

/* Find Widget */
.monaco-workbench.monaco-reduce-transparency .monaco-editor .find-widget {
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

.monaco-workbench.monaco-reduce-transparency .inline-chat-gutter-menu {
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

/* Dialog */
.monaco-workbench.monaco-reduce-transparency .monaco-dialog-box {
-webkit-backdrop-filter: none;
backdrop-filter: none;
background: var(--vscode-editor-background) !important;
}

/* Peek View */
.monaco-workbench.monaco-reduce-transparency .monaco-editor .peekview-widget {
-webkit-backdrop-filter: none;
backdrop-filter: none;
background: var(--vscode-peekViewEditor-background) !important;
}

/* Hover */
.monaco-reduce-transparency .monaco-hover {
background-color: var(--vscode-editorHoverWidget-background) !important;
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

.monaco-reduce-transparency .monaco-hover.workbench-hover,
.monaco-reduce-transparency .workbench-hover {
background-color: var(--vscode-editorHoverWidget-background) !important;
-webkit-backdrop-filter: none !important;
backdrop-filter: none !important;
}

/* Keybinding Widget */
.monaco-workbench.monaco-reduce-transparency .defineKeybindingWidget {
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

/* Chat Editor Overlay */
.monaco-workbench.monaco-reduce-transparency .chat-editor-overlay-widget,
.monaco-workbench.monaco-reduce-transparency .chat-diff-change-content-widget {
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

/* Debug Toolbar */
.monaco-workbench.monaco-reduce-transparency .debug-toolbar {
-webkit-backdrop-filter: none !important;
backdrop-filter: none !important;
}

.monaco-workbench.monaco-reduce-transparency .debug-hover-widget {
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

/* Parameter Hints */
.monaco-workbench.monaco-reduce-transparency .monaco-editor .parameter-hints-widget {
-webkit-backdrop-filter: none;
backdrop-filter: none;
background: var(--vscode-editorWidget-background) !important;
}

/* Sticky Scroll */
.monaco-workbench.monaco-reduce-transparency .monaco-editor .sticky-widget {
-webkit-backdrop-filter: none !important;
backdrop-filter: none !important;
background: var(--vscode-editor-background) !important;
}

.monaco-workbench.monaco-reduce-transparency .monaco-editor .sticky-widget .sticky-widget-lines {
-webkit-backdrop-filter: none !important;
backdrop-filter: none !important;
background: var(--vscode-editor-background) !important;
}

/* Rename Box */
.monaco-reduce-transparency .monaco-editor .rename-box.preview {
-webkit-backdrop-filter: none !important;
backdrop-filter: none !important;
}

/* Notebook */
.monaco-workbench.monaco-reduce-transparency .notebookOverlay .monaco-list-row .cell-title-toolbar {
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

/* Command Center */
.monaco-workbench.monaco-reduce-transparency .part.titlebar > .titlebar-container > .titlebar-center > .window-title > .command-center .action-item.command-center-center {
background: var(--vscode-commandCenter-background) !important;
-webkit-backdrop-filter: none;
backdrop-filter: none;
}

.monaco-workbench.monaco-reduce-transparency .part.titlebar > .titlebar-container > .titlebar-center > .window-title > .command-center .action-item.command-center-center:hover {
background: var(--vscode-commandCenter-activeBackground) !important;
}

/* Breadcrumbs */
.monaco-workbench.monaco-reduce-transparency .breadcrumbs-picker-widget {
-webkit-backdrop-filter: none;
backdrop-filter: none;
background: var(--vscode-breadcrumbPicker-background) !important;
}

/* Quick Input filter input */
.monaco-workbench.monaco-reduce-transparency .quick-input-widget .quick-input-filter .monaco-inputbox {
background: var(--vscode-input-background) !important;
}
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
"@microsoft/1ds-post-js": "^3.2.13",
"@parcel/watcher": "^2.5.6",
"@types/semver": "^7.5.8",
"@vscode/codicons": "^0.0.45-6",
"@vscode/codicons": "^0.0.45-7",
"@vscode/deviceid": "^0.1.1",
"@vscode/iconv-lite-umd": "0.7.1",
"@vscode/native-watchdog": "^1.4.6",
Expand Down
8 changes: 4 additions & 4 deletions remote/web/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion remote/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"dependencies": {
"@microsoft/1ds-core-js": "^3.2.13",
"@microsoft/1ds-post-js": "^3.2.13",
"@vscode/codicons": "^0.0.45-6",
"@vscode/codicons": "^0.0.45-7",
"@vscode/iconv-lite-umd": "0.7.1",
"@vscode/tree-sitter-wasm": "^0.3.0",
"@vscode/vscode-languagedetection": "1.0.21",
Expand Down
5 changes: 5 additions & 0 deletions src/vs/base/browser/ui/dialog/dialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ export interface IDialogOptions {
readonly disableCloseAction?: boolean;
readonly disableCloseButton?: boolean;
readonly disableDefaultAction?: boolean;
readonly onVisibilityChange?: (window: Window, visible: boolean) => void;
readonly buttonStyles: IButtonStyles;
readonly checkboxStyles: ICheckboxStyles;
readonly inputBoxStyles: IInputBoxStyles;
Expand Down Expand Up @@ -536,6 +537,10 @@ export class Dialog extends Disposable {
this.element.setAttribute('aria-describedby', 'monaco-dialog-icon monaco-dialog-message-text monaco-dialog-message-detail monaco-dialog-message-body monaco-dialog-footer');
show(this.element);

// Notify visibility change
this.options.onVisibilityChange?.(window, true);
this._register(toDisposable(() => this.options.onVisibilityChange?.(window, false)));

// Focus first element (input or button)
if (this.inputs.length > 0) {
this.inputs[0].focus();
Expand Down
1 change: 1 addition & 0 deletions src/vs/base/common/codiconsLibrary.ts
Original file line number Diff line number Diff line change
Expand Up @@ -654,4 +654,5 @@ export const codiconsLibrary = {
ask: register('ask', 0xec80),
openai: register('openai', 0xec81),
claude: register('claude', 0xec82),
openInWindow: register('open-in-window', 0xec83),
} as const;
11 changes: 9 additions & 2 deletions src/vs/editor/common/languageFeatureRegistry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import { Emitter } from '../../base/common/event.js';
import { IDisposable, toDisposable } from '../../base/common/lifecycle.js';
import { ITextModel, shouldSynchronizeModel } from './model.js';
import { LanguageFilter, LanguageSelector, score } from './languageSelector.js';
import { LanguageFilter, LanguageSelector, score, selectLanguageIds } from './languageSelector.js';
import { URI } from '../../base/common/uri.js';

interface Entry<T> {
Expand Down Expand Up @@ -115,6 +115,14 @@ export class LanguageFeatureRegistry<T> {
return this._entries.map(entry => entry.provider);
}

get registeredLanguageIds(): ReadonlySet<string> {
const result = new Set<string>();
for (const entry of this._entries) {
selectLanguageIds(entry.selector, result);
}
return result;
}

ordered(model: ITextModel, recursive = false): T[] {
const result: T[] = [];
this._orderedForEach(model, recursive, entry => result.push(entry.provider));
Expand Down Expand Up @@ -226,4 +234,3 @@ function isBuiltinSelector(selector: LanguageSelector): boolean {

return Boolean((selector as LanguageFilter).isBuiltin);
}

Loading
Loading