diff --git a/package.json b/package.json index 4f74d1e2bf8..7c793882b3f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.66.0", - "distro": "98240d3c774b8651c2beec9020e21abe32916840", + "distro": "a946da5062e015d407fd55c37b8fe53db13c639e", "author": { "name": "Microsoft Corporation" }, @@ -75,7 +75,7 @@ "keytar": "7.6.0", "minimist": "^1.2.5", "native-is-elevated": "0.4.3", - "native-keymap": "3.2.1", + "native-keymap": "3.3.0", "native-watchdog": "1.4.0", "node-pty": "0.11.0-beta11", "spdlog": "^0.13.0", diff --git a/src/vs/platform/configuration/common/configurationRegistry.ts b/src/vs/platform/configuration/common/configurationRegistry.ts index 1aa57c19107..a542ece3216 100644 --- a/src/vs/platform/configuration/common/configurationRegistry.ts +++ b/src/vs/platform/configuration/common/configurationRegistry.ts @@ -292,10 +292,11 @@ class ConfigurationRegistry implements IConfigurationRegistry { if (OVERRIDE_PROPERTY_REGEX.test(key)) { const defaultValue = { ...(this.configurationDefaultsOverrides.get(key)?.value || {}), ...overrides[key] }; this.configurationDefaultsOverrides.set(key, { source, value: defaultValue }); + const plainKey = key.replace(/[\[\]]/g, ''); const property: IRegisteredConfigurationPropertySchema = { type: 'object', default: defaultValue, - description: nls.localize('defaultLanguageConfiguration.description', "Configure settings to be overridden for {0} language.", key), + description: nls.localize('defaultLanguageConfiguration.description', "Configure settings to be overridden for the {0} language.", plainKey), $ref: resourceLanguageSettingsSchemaId, defaultDefaultValue: defaultValue, source: types.isString(source) ? undefined : source, diff --git a/src/vs/workbench/api/browser/mainThreadDocuments.ts b/src/vs/workbench/api/browser/mainThreadDocuments.ts index 256b1b08bf9..0e64e46b917 100644 --- a/src/vs/workbench/api/browser/mainThreadDocuments.ts +++ b/src/vs/workbench/api/browser/mainThreadDocuments.ts @@ -214,7 +214,7 @@ export class MainThreadDocuments extends Disposable implements MainThreadDocumen async $tryOpenDocument(uriData: UriComponents): Promise { const inputUri = URI.revive(uriData); if (!inputUri.scheme || !(inputUri.fsPath || inputUri.authority)) { - new Error(`Invalid uri. Scheme and authority or path must be set.`); + throw new Error(`Invalid uri. Scheme and authority or path must be set.`); } const canonicalUri = this._uriIdentityService.asCanonicalUri(inputUri); diff --git a/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.ts b/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.ts index fb40855a43f..c72727c939e 100644 --- a/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.ts +++ b/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.ts @@ -370,15 +370,15 @@ export abstract class AbstractRuntimeExtensionsEditor extends EditorPane { } let extraLabel: string | null = null; - if (element.description.extensionLocation.scheme === Schemas.vscodeRemote) { + if (element.status.runningLocation === ExtensionRunningLocation.LocalWebWorker) { + extraLabel = `$(globe) web worker`; + } else if (element.description.extensionLocation.scheme === Schemas.vscodeRemote) { const hostLabel = this._labelService.getHostLabel(Schemas.vscodeRemote, this._environmentService.remoteAuthority); if (hostLabel) { extraLabel = `$(remote) ${hostLabel}`; } else { extraLabel = `$(remote) ${element.description.extensionLocation.authority}`; } - } else if (element.status.runningLocation === ExtensionRunningLocation.LocalWebWorker) { - extraLabel = `$(globe) web worker`; } if (extraLabel) { diff --git a/src/vs/workbench/contrib/preferences/browser/media/settingsEditor2.css b/src/vs/workbench/contrib/preferences/browser/media/settingsEditor2.css index f8a66626787..3804fa90843 100644 --- a/src/vs/workbench/contrib/preferences/browser/media/settingsEditor2.css +++ b/src/vs/workbench/contrib/preferences/browser/media/settingsEditor2.css @@ -340,6 +340,10 @@ padding-left: 1px; } +.settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-title .setting-item-label .codicon { + vertical-align: text-top; +} + .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-title .setting-item-overrides a.modified-scope { text-decoration: underline; cursor: pointer; diff --git a/src/vs/workbench/contrib/preferences/browser/settingsTree.ts b/src/vs/workbench/contrib/preferences/browser/settingsTree.ts index adcce5c886c..83c3b881206 100644 --- a/src/vs/workbench/contrib/preferences/browser/settingsTree.ts +++ b/src/vs/workbench/contrib/preferences/browser/settingsTree.ts @@ -583,7 +583,7 @@ interface ISettingItemTemplate extends IDisposableTemplate { context?: SettingsTreeSettingElement; containerElement: HTMLElement; categoryElement: HTMLElement; - labelElement: HTMLElement; + labelElement: SimpleIconLabel; descriptionElement: HTMLElement; controlElement: HTMLElement; deprecationWarningElement: HTMLElement; @@ -775,7 +775,8 @@ export abstract class AbstractSettingRenderer extends Disposable implements ITre const titleElement = DOM.append(container, $('.setting-item-title')); const labelCategoryContainer = DOM.append(titleElement, $('.setting-item-cat-label-container')); const categoryElement = DOM.append(labelCategoryContainer, $('span.setting-item-category')); - const labelElement = DOM.append(labelCategoryContainer, $('span.setting-item-label')); + const labelElementContainer = DOM.append(labelCategoryContainer, $('span.setting-item-label')); + const labelElement = new SimpleIconLabel(labelElementContainer); const miscLabel = new SettingsTreeMiscLabel(titleElement); @@ -867,7 +868,7 @@ export abstract class AbstractSettingRenderer extends Disposable implements ITre template.categoryElement.textContent = element.displayCategory && (element.displayCategory + ': '); template.categoryElement.title = titleTooltip; - template.labelElement.textContent = element.displayLabel; + template.labelElement.text = element.displayLabel; template.labelElement.title = titleTooltip; template.descriptionElement.innerText = ''; @@ -1756,7 +1757,8 @@ export class SettingBoolRenderer extends AbstractSettingRenderer implements ITre const titleElement = DOM.append(container, $('.setting-item-title')); const categoryElement = DOM.append(titleElement, $('span.setting-item-category')); - const labelElement = DOM.append(titleElement, $('span.setting-item-label')); + const labelElementContainer = DOM.append(titleElement, $('span.setting-item-label')); + const labelElement = new SimpleIconLabel(labelElementContainer); const miscLabel = new SettingsTreeMiscLabel(titleElement); const descriptionAndValueElement = DOM.append(container, $('.setting-item-value-description')); @@ -2303,6 +2305,10 @@ class SettingsTreeDelegate extends CachedListVirtualDelegate= 0) { @@ -515,6 +517,11 @@ export function settingKeyToDisplayFormat(key: string, groupId = ''): { category category = trimCategoryForGroup(category, groupId); category = wordifyKey(category); + if (isLanguageTagSetting) { + key = key.replace(/[\[\]]/g, ''); + key = '$(bracket) ' + key; + } + const label = wordifyKey(key); return { category, label }; } diff --git a/src/vs/workbench/services/extensions/common/extensionsApiProposals.ts b/src/vs/workbench/services/extensions/common/extensionsApiProposals.ts index 6267489b52d..c4653e81b17 100644 --- a/src/vs/workbench/services/extensions/common/extensionsApiProposals.ts +++ b/src/vs/workbench/services/extensions/common/extensionsApiProposals.ts @@ -7,6 +7,7 @@ export const allApiProposals = Object.freeze({ authSession: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authSession.d.ts', + badges: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.badges.d.ts', commentsResolvedState: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentsResolvedState.d.ts', contribLabelFormatterWorkspaceTooltip: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribLabelFormatterWorkspaceTooltip.d.ts', contribMenuBarHome: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribMenuBarHome.d.ts', diff --git a/src/vs/workbench/services/extensions/worker/polyfillNestedWorker.ts b/src/vs/workbench/services/extensions/worker/polyfillNestedWorker.ts index f70257dafd7..da0a8f5a574 100644 --- a/src/vs/workbench/services/extensions/worker/polyfillNestedWorker.ts +++ b/src/vs/workbench/services/extensions/worker/polyfillNestedWorker.ts @@ -90,7 +90,7 @@ export class NestedWorker extends EventTarget implements Worker { type: '_terminateWorker', id }; - channel.port1.postMessage(msg); + nativePostMessage(msg); URL.revokeObjectURL(blobUrl); channel.port1.close(); diff --git a/src/vs/workbench/services/preferences/common/preferences.ts b/src/vs/workbench/services/preferences/common/preferences.ts index 7b8c9cbc518..637c82f3e47 100644 --- a/src/vs/workbench/services/preferences/common/preferences.ts +++ b/src/vs/workbench/services/preferences/common/preferences.ts @@ -34,7 +34,8 @@ export enum SettingValueType { NullableInteger = 'nullable-integer', NullableNumber = 'nullable-number', Object = 'object', - BooleanObject = 'boolean-object' + BooleanObject = 'boolean-object', + LanguageTag = 'language-tag' } export interface ISettingsGroup { @@ -87,6 +88,7 @@ export interface ISetting { allKeysAreBoolean?: boolean; editPresentation?: EditPresentationTypes; defaultValueSource?: string | IExtensionInfo; + isLanguageTagSetting?: boolean; } export interface IExtensionSetting extends ISetting { diff --git a/src/vs/workbench/services/preferences/common/preferencesModels.ts b/src/vs/workbench/services/preferences/common/preferencesModels.ts index d9a1217ef07..979d4e0e660 100644 --- a/src/vs/workbench/services/preferences/common/preferencesModels.ts +++ b/src/vs/workbench/services/preferences/common/preferencesModels.ts @@ -676,6 +676,11 @@ export class DefaultSettings extends Disposable { defaultValueSource = registeredConfigurationProp.defaultValueSource; } + let isLanguageTagSetting = false; + if (OVERRIDE_PROPERTY_REGEX.test(key)) { + isLanguageTagSetting = true; + } + result.push({ key, value, @@ -707,7 +712,8 @@ export class DefaultSettings extends Disposable { allKeysAreBoolean, editPresentation: prop.editPresentation, order: prop.order, - defaultValueSource + defaultValueSource, + isLanguageTagSetting }); } } diff --git a/src/vscode-dts/vscode.proposed.badges.d.ts b/src/vscode-dts/vscode.proposed.badges.d.ts new file mode 100644 index 00000000000..5aed72b6019 --- /dev/null +++ b/src/vscode-dts/vscode.proposed.badges.d.ts @@ -0,0 +1,41 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +declare module 'vscode' { + + // https://github.com/microsoft/vscode/issues/62783 @matthewjamesadam + + /** + * A badge presenting a value for a view + */ + export interface ViewBadge { + + /** + * A label to present in tooltips for the badge + */ + readonly tooltip: string; + + /** + * The value to present in the badge + */ + readonly value: number; + } + + export interface TreeView { + /** + * The badge to display for this TreeView. + * To remove the badge, set to undefined. + */ + badge?: ViewBadge | undefined; + } + + export interface WebviewView { + /** + * The badge to display for this webview view. + * To remove the badge, set to undefined. + */ + badge?: ViewBadge | undefined; + } +} diff --git a/yarn.lock b/yarn.lock index 0815ab4f67a..03396cf5de0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8196,10 +8196,10 @@ native-is-elevated@0.4.3: resolved "https://registry.yarnpkg.com/native-is-elevated/-/native-is-elevated-0.4.3.tgz#f1071c4a821acc71d43f36ff8051d3816d832e1c" integrity sha512-bHS3sCoh+raqFGIxmL/plER3eBQ+IEBy4RH/4uahhToZneTvqNKQrL0PgOTtnpL55XjBd3dy0pNtZMkCk0J48g== -native-keymap@3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/native-keymap/-/native-keymap-3.2.1.tgz#2b34ee7e08722f107baba9beae7e61ea43eceae7" - integrity sha512-kR8r1Ody16qNE52fenuCMQBHtFpIV7HNVjQA7dm/pXpFcQmqCl8jWQuJYdZvNH7fQmyAv3lOgPfR3FDHPRYiiA== +native-keymap@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/native-keymap/-/native-keymap-3.3.0.tgz#927ca6afcf4ebd986b5dc1bddfab4270e750915d" + integrity sha512-nvhI1Cdr+ywhpqqGdM+JM8EjMYA1s6SW8EqhWNKtffHU07JcTKDhd8N3o0TLSFn8y2YuRFoOwfAIzdTU6TVhDA== native-watchdog@1.4.0: version "1.4.0"