Skip to content

Commit 77ac5c1

Browse files
committed
Merge branch 'main' into alex/esm
2 parents e758c13 + da0309f commit 77ac5c1

File tree

29 files changed

+172
-113
lines changed

29 files changed

+172
-113
lines changed

extensions/emmet/src/defaultCompletionProvider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ export class DefaultCompletionItemProvider implements vscode.CompletionItemProvi
214214
});
215215
}
216216

217-
return new vscode.CompletionList(newItems);
217+
return new vscode.CompletionList(newItems, true);
218218
});
219219
}
220220
}

extensions/ipynb/package.json

+6-7
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
"diffContentOptions"
1414
],
1515
"activationEvents": [
16-
"onNotebook:jupyter-notebook",
17-
"onCommand:ipynb.newUntitledIpynb"
16+
"onNotebook:jupyter-notebook"
1817
],
1918
"extensionKind": [
2019
"workspace",
@@ -44,17 +43,17 @@
4443
"commands": [
4544
{
4645
"command": "ipynb.newUntitledIpynb",
47-
"title": "New Jupyter Notebook",
48-
"shortTitle": "Jupyter Notebook",
46+
"title": "%newUntitledIpynb.title%",
47+
"shortTitle": "%newUntitledIpynb.shortTitle%",
4948
"category": "Create"
5049
},
5150
{
5251
"command": "ipynb.openIpynbInNotebookEditor",
53-
"title": "Open ipynb file in notebook editor"
52+
"title": "%openIpynbInNotebookEditor.title%"
5453
},
5554
{
5655
"command": "ipynb.cleanInvalidImageAttachment",
57-
"title": "Clean invalid image attachment reference"
56+
"title": "%cleanInvalidImageAttachment.title%"
5857
}
5958
],
6059
"notebooks": [
@@ -72,7 +71,7 @@
7271
"notebookRenderer": [
7372
{
7473
"id": "vscode.markdown-it-cell-attachment-renderer",
75-
"displayName": "Markdown it ipynb Cell Attachment renderer",
74+
"displayName": "%markdownAttachmentRenderer.displayName%",
7675
"entrypoint": {
7776
"extends": "vscode.markdown-it-renderer",
7877
"path": "./notebook-out/cellAttachmentRenderer.js"

extensions/ipynb/package.nls.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"displayName": ".ipynb Support",
33
"description": "Provides basic support for opening and reading Jupyter's .ipynb notebook files",
4-
"ipynb.pasteImagesAsAttachments.enabled": "Enable/disable pasting of images into Markdown cells in ipynb notebook files. Pasted images are inserted as attachments to the cell."
4+
"ipynb.pasteImagesAsAttachments.enabled": "Enable/disable pasting of images into Markdown cells in ipynb notebook files. Pasted images are inserted as attachments to the cell.",
5+
"newUntitledIpynb.title": "New Jupyter Notebook",
6+
"newUntitledIpynb.shortTitle": "Jupyter Notebook",
7+
"openIpynbInNotebookEditor.title": "Open IPYNB File In Notebook Editor",
8+
"cleanInvalidImageAttachment.title": "Clean Invalid Image Attachment Reference",
9+
"markdownAttachmentRenderer.displayName": "Markdown it ipynb Cell Attachment renderer"
510
}

extensions/typescript-language-features/src/languageFeatures/completions.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class MyCompletionItem extends vscode.CompletionItem {
9797
this.filterText = this.getFilterText(completionContext.line, tsEntry.insertText);
9898

9999
if (completionContext.isMemberCompletion && completionContext.dotAccessorContext && !(this.insertText instanceof vscode.SnippetString)) {
100-
this.filterText = completionContext.dotAccessorContext.text + (this.insertText || typeof this.label === 'string' ? this.label : this.label.label);
100+
this.filterText = completionContext.dotAccessorContext.text + (this.insertText || this.textLabel);
101101
if (!this.range) {
102102
const replacementRange = this.getFuzzyWordRange();
103103
if (replacementRange) {

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "code-oss-dev",
33
"version": "1.75.0",
4-
"distro": "f80b6b23f308fbd75cefde7d20f70793c6aa84cd",
4+
"distro": "d901f79eb829ae790a4039b7baaaacc5a8ddffe3",
55
"author": {
66
"name": "Microsoft Corporation"
77
},

src/vs/base/browser/ui/list/listWidget.ts

+19-10
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { IDragAndDropData } from 'vs/base/browser/dnd';
7-
import { createStyleSheet, Dimension, EventHelper } from 'vs/base/browser/dom';
7+
import { asCssValueWithDefault, createStyleSheet, Dimension, EventHelper } from 'vs/base/browser/dom';
88
import { DomEmitter } from 'vs/base/browser/event';
99
import { IKeyboardEvent, StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
1010
import { Gesture } from 'vs/base/browser/touch';
@@ -820,10 +820,6 @@ export class DefaultStyleController implements IStyleController {
820820
content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected .codicon { color: ${styles.listActiveSelectionIconForeground}; }`);
821821
}
822822

823-
if (styles.listFocusAndSelectionOutline) {
824-
content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected { outline-color: ${styles.listFocusAndSelectionOutline} !important; }`);
825-
}
826-
827823
if (styles.listFocusAndSelectionBackground) {
828824
content.push(`
829825
.monaco-drag-image,
@@ -869,23 +865,36 @@ export class DefaultStyleController implements IStyleController {
869865
content.push(`.monaco-list${suffix}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ${styles.listHoverForeground}; }`);
870866
}
871867

872-
if (styles.listSelectionOutline) {
873-
content.push(`.monaco-list${suffix} .monaco-list-row.selected { outline: 1px dotted ${styles.listSelectionOutline}; outline-offset: -1px; }`);
868+
/**
869+
* Outlines
870+
*/
871+
const focusAndSelectionOutline = asCssValueWithDefault(styles.listFocusAndSelectionOutline, asCssValueWithDefault(styles.listSelectionOutline, styles.listFocusOutline ?? ''));
872+
if (focusAndSelectionOutline) { // default: listFocusOutline
873+
content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused.selected { outline: 1px solid ${focusAndSelectionOutline}; outline-offset: -1px;}`);
874874
}
875875

876-
if (styles.listFocusOutline) {
876+
if (styles.listFocusOutline) { // default: set
877877
content.push(`
878878
.monaco-drag-image,
879879
.monaco-list${suffix}:focus .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }
880880
.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }
881881
`);
882882
}
883883

884-
if (styles.listInactiveFocusOutline) {
884+
const inactiveFocusAndSelectionOutline = asCssValueWithDefault(styles.listSelectionOutline, styles.listInactiveFocusOutline ?? '');
885+
if (inactiveFocusAndSelectionOutline) {
886+
content.push(`.monaco-list${suffix} .monaco-list-row.focused.selected { outline: 1px dotted ${inactiveFocusAndSelectionOutline}; outline-offset: -1px; }`);
887+
}
888+
889+
if (styles.listSelectionOutline) { // default: activeContrastBorder
890+
content.push(`.monaco-list${suffix} .monaco-list-row.selected { outline: 1px dotted ${styles.listSelectionOutline}; outline-offset: -1px; }`);
891+
}
892+
893+
if (styles.listInactiveFocusOutline) { // default: null
885894
content.push(`.monaco-list${suffix} .monaco-list-row.focused { outline: 1px dotted ${styles.listInactiveFocusOutline}; outline-offset: -1px; }`);
886895
}
887896

888-
if (styles.listHoverOutline) {
897+
if (styles.listHoverOutline) { // default: activeContrastBorder
889898
content.push(`.monaco-list${suffix} .monaco-list-row:hover { outline: 1px dashed ${styles.listHoverOutline}; outline-offset: -1px; }`);
890899
}
891900

src/vs/editor/contrib/hover/browser/contentHover.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ class ContentHoverComputer implements IHoverComputer<IHoverPart> {
639639
}
640640

641641
private static _getLineDecorations(editor: IActiveCodeEditor, anchor: HoverAnchor): IModelDecoration[] {
642-
if (anchor.type !== HoverAnchorType.Range) {
642+
if (anchor.type !== HoverAnchorType.Range && !anchor.supportsMarkerHover) {
643643
return [];
644644
}
645645

src/vs/editor/contrib/hover/browser/hoverTypes.ts

+1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export class HoverForeignElementAnchor {
6767
public readonly range: Range,
6868
public readonly initialMousePosX: number | undefined,
6969
public readonly initialMousePosY: number | undefined,
70+
public readonly supportsMarkerHover: boolean | undefined
7071
) {
7172
}
7273
public equals(other: HoverAnchor) {

src/vs/editor/contrib/hover/browser/markerHoverParticipant.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export class MarkerHoverParticipant implements IEditorHoverParticipant<MarkerHov
6666
) { }
6767

6868
public computeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[]): MarkerHover[] {
69-
if (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range) {
69+
if (!this._editor.hasModel() || anchor.type !== HoverAnchorType.Range && !anchor.supportsMarkerHover) {
7070
return [];
7171
}
7272

src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class InlayHintsHoverAnchor extends HoverForeignElementAnchor {
3232
initialMousePosX: number | undefined,
3333
initialMousePosY: number | undefined
3434
) {
35-
super(10, owner, part.item.anchor.range, initialMousePosX, initialMousePosY);
35+
super(10, owner, part.item.anchor.range, initialMousePosX, initialMousePosY, true);
3636
}
3737
}
3838

src/vs/editor/contrib/inlineCompletions/browser/ghostTextController.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,8 @@ export class AcceptInlineCompletion extends EditorAction {
332332
constructor() {
333333
super({
334334
id: inlineSuggestCommitId,
335-
label: nls.localize('action.inlineSuggest.acceptNextWord', "Accept Next Word Of Inline Suggestion"),
336-
alias: 'Accept Next Word Of Inline Suggestion',
335+
label: nls.localize('action.inlineSuggest.accept', "Accept Inline Suggestion"),
336+
alias: 'Accept Inline Suggestion',
337337
precondition: GhostTextController.inlineSuggestionVisible,
338338
menuOpts: [{
339339
menuId: MenuId.InlineSuggestionToolbar,

src/vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant.ts

+11-4
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import * as nls from 'vs/nls';
2020
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
2121
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
2222
import { IOpenerService } from 'vs/platform/opener/common/opener';
23+
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
2324

2425
export class InlineCompletionsHover implements IHoverPart {
2526
constructor(
@@ -71,7 +72,8 @@ export class InlineCompletionsHoverParticipant implements IEditorHoverParticipan
7172
@ILanguageService private readonly _languageService: ILanguageService,
7273
@IOpenerService private readonly _openerService: IOpenerService,
7374
@IAccessibilityService private readonly accessibilityService: IAccessibilityService,
74-
@IInstantiationService private readonly _instantiationService: IInstantiationService
75+
@IInstantiationService private readonly _instantiationService: IInstantiationService,
76+
@ITelemetryService private readonly _telemetryService: ITelemetryService,
7577
) {
7678
}
7779

@@ -86,20 +88,20 @@ export class InlineCompletionsHoverParticipant implements IEditorHoverParticipan
8688
// handle the case where the mouse is over the view zone
8789
const viewZoneData = target.detail;
8890
if (controller.shouldShowHoverAtViewZone(viewZoneData.viewZoneId)) {
89-
return new HoverForeignElementAnchor(1000, this, Range.fromPositions(this._editor.getModel()!.validatePosition(viewZoneData.positionBefore || viewZoneData.position)), mouseEvent.event.posx, mouseEvent.event.posy);
91+
return new HoverForeignElementAnchor(1000, this, Range.fromPositions(this._editor.getModel()!.validatePosition(viewZoneData.positionBefore || viewZoneData.position)), mouseEvent.event.posx, mouseEvent.event.posy, false);
9092
}
9193
}
9294
if (target.type === MouseTargetType.CONTENT_EMPTY) {
9395
// handle the case where the mouse is over the empty portion of a line following ghost text
9496
if (controller.shouldShowHoverAt(target.range)) {
95-
return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy);
97+
return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);
9698
}
9799
}
98100
if (target.type === MouseTargetType.CONTENT_TEXT) {
99101
// handle the case where the mouse is directly over ghost text
100102
const mightBeForeignElement = target.detail.mightBeForeignElement;
101103
if (mightBeForeignElement && controller.shouldShowHoverAt(target.range)) {
102-
return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy);
104+
return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);
103105
}
104106
}
105107
return null;
@@ -121,6 +123,11 @@ export class InlineCompletionsHoverParticipant implements IEditorHoverParticipan
121123
const disposableStore = new DisposableStore();
122124
const part = hoverParts[0];
123125

126+
this._telemetryService.publicLog2<{}, {
127+
owner: 'hediet';
128+
comment: 'This event tracks whenever an inline completion hover is shown.';
129+
}>('inlineCompletionHover.shown');
130+
124131
if (this.accessibilityService.isScreenReaderOptimized()) {
125132
this.renderScreenReaderText(context, part, disposableStore);
126133
}

src/vs/editor/contrib/inlineCompletions/browser/inlineSuggestionHintsWidget.ts

+1
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ export class InlineSuggestionHintsContentWidget extends Disposable implements IC
167167
actionViewItemProvider: (action, options) => {
168168
return action instanceof MenuItemAction ? instantiationService.createInstance(StatusBarViewItem, action, undefined) : undefined;
169169
},
170+
telemetrySource: 'InlineSuggestionToolbar',
170171
}));
171172

172173
this._register(this.toolBar.onDidChangeDropdownVisibility(e => {

src/vs/platform/extensionManagement/node/extensionDownloader.ts

+5-7
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import { ExtensionKey, groupByExtension } from 'vs/platform/extensionManagement/
2222
import { ExtensionSignatureVerificationError, IExtensionSignatureVerificationService } from 'vs/platform/extensionManagement/node/extensionSignatureVerificationService';
2323
import { IFileService, IFileStatWithMetadata } from 'vs/platform/files/common/files';
2424
import { ILogService } from 'vs/platform/log/common/log';
25-
import { IProductService } from 'vs/platform/product/common/productService';
2625

2726
export class ExtensionsDownloader extends Disposable {
2827

@@ -37,7 +36,6 @@ export class ExtensionsDownloader extends Disposable {
3736
@IFileService private readonly fileService: IFileService,
3837
@IExtensionGalleryService private readonly extensionGalleryService: IExtensionGalleryService,
3938
@IConfigurationService private readonly configurationService: IConfigurationService,
40-
@IProductService private readonly productService: IProductService,
4139
@IExtensionSignatureVerificationService private readonly extensionSignatureVerificationService: IExtensionSignatureVerificationService,
4240
@ILogService private readonly logService: ILogService,
4341
) {
@@ -68,11 +66,14 @@ export class ExtensionsDownloader extends Disposable {
6866
}
6967
this.logService.info(`Extension signature verification: ${extension.identifier.id}. Verification status: ${verificationStatus}.`);
7068
} catch (error) {
71-
const code: string = (error as ExtensionSignatureVerificationError).code;
69+
const sigError = error as ExtensionSignatureVerificationError;
70+
const code: string = sigError.code;
7271

7372
if (code === 'UnknownError') {
7473
verificationStatus = ExtensionVerificationStatus.UnknownError;
7574
this.logService.warn(`Extension signature verification: ${extension.identifier.id}. Verification status: ${verificationStatus}.`);
75+
} else if (!sigError.didExecute) {
76+
this.logService.warn(`Extension signature verification: ${extension.identifier.id}. Verification status: ${verificationStatus} (${code})`);
7677
} else {
7778
await this.delete(signatureArchiveLocation);
7879
await this.delete(location);
@@ -91,10 +92,7 @@ export class ExtensionsDownloader extends Disposable {
9192
}
9293

9394
const value = this.configurationService.getValue('extensions.verifySignature');
94-
if (isBoolean(value)) {
95-
return value;
96-
}
97-
return this.productService.quality !== 'stable';
95+
return isBoolean(value) ? value : true;
9896
}
9997

10098
private async downloadSignatureArchive(extension: IGalleryExtension): Promise<URI> {

src/vs/platform/extensionManagement/node/extensionSignatureVerificationService.ts

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ declare module vsceSign {
3434
*/
3535
export interface ExtensionSignatureVerificationError extends Error {
3636
readonly code: string;
37+
readonly didExecute: boolean;
3738
}
3839

3940
export class ExtensionSignatureVerificationService implements IExtensionSignatureVerificationService {

0 commit comments

Comments
 (0)