Merge from vscode 708b019bb4e20f07cf89df9f1d943af3d38d7a70 (#9657)

This commit is contained in:
Anthony Dresser
2020-03-17 22:35:18 -07:00
committed by GitHub
parent 5ee7454793
commit 61831d8642
71 changed files with 5191 additions and 372 deletions

View File

@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import { CancelablePromise, createCancelablePromise } from 'vs/base/common/async';
import { CancellationToken } from 'vs/base/common/cancellation';
import { onUnexpectedError } from 'vs/base/common/errors';
import { Emitter, Event } from 'vs/base/common/event';
import { Disposable, DisposableStore, dispose, IDisposable, IReference } from 'vs/base/common/lifecycle';
@@ -305,16 +306,20 @@ export class MainThreadWebviews extends Disposable implements extHostProtocol.Ma
canResolve: (webviewInput) => {
return webviewInput instanceof CustomEditorInput && webviewInput.viewType === viewType;
},
resolveWebview: async (webviewInput: CustomEditorInput) => {
resolveWebview: async (webviewInput: CustomEditorInput, cancellation: CancellationToken) => {
const handle = webviewInput.id;
this._webviewInputs.add(handle, webviewInput);
const resource = webviewInput.resource;
this._webviewInputs.add(handle, webviewInput);
this.hookupWebviewEventDelegate(handle, webviewInput);
webviewInput.webview.options = options;
webviewInput.webview.extension = extension;
const resource = webviewInput.resource;
let modelRef = await this.getOrCreateCustomEditorModel(modelType, resource, viewType);
let modelRef = await this.getOrCreateCustomEditorModel(modelType, resource, viewType, cancellation);
if (cancellation.isCancellationRequested) {
modelRef.dispose();
return;
}
webviewInput.webview.onDispose(() => {
modelRef.dispose();
@@ -323,14 +328,14 @@ export class MainThreadWebviews extends Disposable implements extHostProtocol.Ma
if (capabilities.supportsMove) {
webviewInput.onMove(async (newResource: URI) => {
const oldModel = modelRef;
modelRef = await this.getOrCreateCustomEditorModel(modelType, newResource, viewType);
modelRef = await this.getOrCreateCustomEditorModel(modelType, newResource, viewType, CancellationToken.None);
this._proxy.$onMoveCustomEditor(handle, newResource, viewType);
oldModel.dispose();
});
}
try {
await this._proxy.$resolveWebviewEditor(resource, handle, viewType, webviewInput.getTitle(), editorGroupToViewColumn(this._editorGroupService, webviewInput.group || 0), webviewInput.webview.options);
await this._proxy.$resolveWebviewEditor(resource, handle, viewType, webviewInput.getTitle(), editorGroupToViewColumn(this._editorGroupService, webviewInput.group || 0), webviewInput.webview.options, cancellation);
} catch (error) {
onUnexpectedError(error);
webviewInput.webview.html = MainThreadWebviews.getDeserializationFailedContents(viewType);
@@ -360,6 +365,7 @@ export class MainThreadWebviews extends Disposable implements extHostProtocol.Ma
modelType: ModelType,
resource: URI,
viewType: string,
cancellation: CancellationToken,
): Promise<IReference<ICustomEditorModel>> {
const existingModel = this._customEditorService.models.tryRetain(resource, viewType);
if (existingModel) {
@@ -368,7 +374,7 @@ export class MainThreadWebviews extends Disposable implements extHostProtocol.Ma
const model = modelType === ModelType.Text
? CustomTextEditorModel.create(this._instantiationService, viewType, resource)
: MainThreadCustomEditorModel.create(this._instantiationService, this._proxy, viewType, resource);
: MainThreadCustomEditorModel.create(this._instantiationService, this._proxy, viewType, resource, cancellation);
return this._customEditorService.models.add(resource, viewType, model);
}
@@ -555,9 +561,10 @@ class MainThreadCustomEditorModel extends Disposable implements ICustomEditorMod
instantiationService: IInstantiationService,
proxy: extHostProtocol.ExtHostWebviewsShape,
viewType: string,
resource: URI
resource: URI,
cancellation: CancellationToken,
) {
const { editable } = await proxy.$createWebviewCustomEditorDocument(resource, viewType);
const { editable } = await proxy.$createWebviewCustomEditorDocument(resource, viewType, cancellation);
return instantiationService.createInstance(MainThreadCustomEditorModel, proxy, viewType, resource, editable);
}

View File

@@ -622,8 +622,8 @@ export interface ExtHostWebviewsShape {
$deserializeWebviewPanel(newWebviewHandle: WebviewPanelHandle, viewType: string, title: string, state: any, position: EditorViewColumn, options: modes.IWebviewOptions & modes.IWebviewPanelOptions): Promise<void>;
$resolveWebviewEditor(resource: UriComponents, newWebviewHandle: WebviewPanelHandle, viewType: string, title: string, position: EditorViewColumn, options: modes.IWebviewOptions & modes.IWebviewPanelOptions): Promise<void>;
$createWebviewCustomEditorDocument(resource: UriComponents, viewType: string): Promise<{ editable: boolean }>;
$resolveWebviewEditor(resource: UriComponents, newWebviewHandle: WebviewPanelHandle, viewType: string, title: string, position: EditorViewColumn, options: modes.IWebviewOptions & modes.IWebviewPanelOptions, cancellation: CancellationToken): Promise<void>;
$createWebviewCustomEditorDocument(resource: UriComponents, viewType: string, cancellation: CancellationToken): Promise<{ editable: boolean }>;
$disposeWebviewCustomEditorDocument(resource: UriComponents, viewType: string): Promise<void>;
$undo(resource: UriComponents, viewType: string, editId: number): Promise<void>;

View File

@@ -588,7 +588,7 @@ export class ExtHostWebviews implements ExtHostWebviewsShape {
await serializer.deserializeWebviewPanel(revivedPanel, state);
}
async $createWebviewCustomEditorDocument(resource: UriComponents, viewType: string) {
async $createWebviewCustomEditorDocument(resource: UriComponents, viewType: string, cancellation: CancellationToken) {
const entry = this._editorProviders.get(viewType);
if (!entry) {
throw new Error(`No provider found for '${viewType}'`);
@@ -600,7 +600,7 @@ export class ExtHostWebviews implements ExtHostWebviewsShape {
const revivedResource = URI.revive(resource);
const document = CustomDocument.create(viewType, revivedResource, entry.provider.editingDelegate);
await entry.provider.resolveCustomDocument(document);
await entry.provider.resolveCustomDocument(document, cancellation);
this._documents.add(document);
return {
editable: !!entry.provider.editingDelegate,
@@ -629,7 +629,8 @@ export class ExtHostWebviews implements ExtHostWebviewsShape {
viewType: string,
title: string,
position: EditorViewColumn,
options: modes.IWebviewOptions & modes.IWebviewPanelOptions
options: modes.IWebviewOptions & modes.IWebviewPanelOptions,
cancellation: CancellationToken,
): Promise<void> {
const entry = this._editorProviders.get(viewType);
if (!entry) {
@@ -646,12 +647,12 @@ export class ExtHostWebviews implements ExtHostWebviewsShape {
case WebviewEditorType.Custom:
{
const document = this.getCustomDocument(viewType, revivedResource);
return entry.provider.resolveCustomEditor(document, revivedPanel);
return entry.provider.resolveCustomEditor(document, revivedPanel, cancellation);
}
case WebviewEditorType.Text:
{
const document = this._extHostDocuments.getDocument(revivedResource);
return entry.provider.resolveCustomTextEditor(document, revivedPanel);
return entry.provider.resolveCustomTextEditor(document, revivedPanel, cancellation);
}
default:
{
@@ -682,7 +683,7 @@ export class ExtHostWebviews implements ExtHostWebviewsShape {
const resource = URI.revive(newResourceComponents);
const document = this._extHostDocuments.getDocument(resource);
await (entry.provider as vscode.CustomTextEditorProvider).moveCustomTextEditor!(document, webview);
await (entry.provider as vscode.CustomTextEditorProvider).moveCustomTextEditor!(document, webview, CancellationToken.None);
}
async $undo(resourceComponents: UriComponents, viewType: string, editId: number): Promise<void> {

View File

@@ -50,10 +50,10 @@ class ChangeHierarchyDirectionAction extends Action {
const update = () => {
if (getDirection() === CallHierarchyDirection.CallsFrom) {
this.label = localize('toggle.from', "Show Incoming Calls");
this.class = 'calls-from';
this.class = 'codicon codicon-call-incoming';
} else {
this.label = localize('toggle.to', "Showing Outgoing Calls");
this.class = 'calls-to';
this.class = 'codicon codicon-call-outgoing';
}
};
update();

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.5469 9.32812C12.3542 9.25 12.1562 9.21094 11.9531 9.21094C11.7344 9.20573 11.5495 9.23958 11.3984 9.3125C11.2474 9.38542 11.1042 9.47135 10.9688 9.57031C10.8333 9.66927 10.7135 9.77865 10.6094 9.89844C10.5052 10.0182 10.4036 10.1276 10.3047 10.2266C10.2057 10.3255 10.1094 10.4089 10.0156 10.4766C9.92188 10.5443 9.82031 10.5781 9.71094 10.5781C9.5599 10.5781 9.42969 10.5234 9.32031 10.4141C9.24219 10.3411 9.13281 10.237 8.99219 10.1016C8.85156 9.96615 8.67969 9.80208 8.47656 9.60938C8.27344 9.41667 8.0625 9.21354 7.84375 9C7.625 8.78646 7.39844 8.5651 7.16406 8.33594C6.92969 8.10677 6.71094 7.88542 6.50781 7.67188C6.30469 7.45833 6.11979 7.25781 5.95312 7.07031C5.78646 6.88281 5.65625 6.72135 5.5625 6.58594C5.46875 6.45052 5.42188 6.35156 5.42188 6.28906C5.41667 6.17448 5.45052 6.07031 5.52344 5.97656C5.59635 5.88281 5.68229 5.78646 5.78125 5.6875C5.88021 5.58854 5.98958 5.48438 6.10938 5.375C6.22917 5.26562 6.33854 5.14844 6.4375 5.02344C6.53646 4.89844 6.61979 4.75521 6.6875 4.59375C6.75521 4.43229 6.78906 4.25 6.78906 4.04688C6.78906 3.84375 6.75 3.64583 6.67188 3.45312C6.59375 3.26042 6.48177 3.09115 6.33594 2.94531C6.16927 2.78385 5.99219 2.59115 5.80469 2.36719C5.61719 2.14323 5.41146 1.92969 5.1875 1.72656C4.96354 1.52344 4.73177 1.35156 4.49219 1.21094C4.2526 1.07031 4.0026 1 3.74219 1C3.53906 1 3.34115 1.03906 3.14844 1.11719C2.95573 1.19531 2.78646 1.30729 2.64062 1.45313C2.36979 1.72396 2.13281 1.96615 1.92969 2.17969C1.72656 2.39323 1.55469 2.61458 1.41406 2.84375C1.27344 3.07292 1.16927 3.32812 1.10156 3.60938C1.03385 3.89062 1 4.22917 1 4.625C1 5.17708 1.08854 5.75 1.26562 6.34375C1.44271 6.9375 1.68229 7.52865 1.98438 8.11719C2.28646 8.70573 2.65365 9.28385 3.08594 9.85156C3.51823 10.4193 3.98698 10.9583 4.49219 11.4688C4.9974 11.9792 5.53385 12.4505 6.10156 12.8828C6.66927 13.3151 7.25 13.6875 7.84375 14C8.4375 14.3125 9.03385 14.5573 9.63281 14.7344C10.2318 14.9115 10.8151 15 11.3828 15C11.7682 14.9948 12.1042 14.9583 12.3906 14.8906C12.6771 14.8229 12.9349 14.7188 13.1641 14.5781C13.3932 14.4375 13.6146 14.2656 13.8281 14.0625C14.0417 13.8594 14.2812 13.625 14.5469 13.3594C14.6927 13.2135 14.8047 13.0443 14.8828 12.8516C14.9609 12.6589 15 12.4609 15 12.2578C14.9896 12.0859 14.9557 11.9141 14.8984 11.7422C14.8411 11.5703 14.7552 11.4089 14.6406 11.2578C14.526 11.1068 14.4036 10.9583 14.2734 10.8125C14.1432 10.6667 14.0026 10.526 13.8516 10.3906C13.7005 10.2552 13.5573 10.1276 13.4219 10.0078C13.2865 9.88802 13.1641 9.77344 13.0547 9.66406C12.9089 9.51823 12.7396 9.40625 12.5469 9.32812ZM12.1797 13.9141C11.9661 13.9714 11.7005 14 11.3828 14C10.8984 13.9948 10.3932 13.9141 9.86719 13.7578C9.34115 13.6016 8.8125 13.3802 8.28125 13.0938C7.75 12.8073 7.22396 12.4688 6.70312 12.0781C6.18229 11.6875 5.69271 11.2604 5.23438 10.7969C4.77604 10.3333 4.34635 9.84635 3.94531 9.33594C3.54427 8.82552 3.20052 8.29948 2.91406 7.75781C2.6276 7.21615 2.40365 6.67969 2.24219 6.14844C2.08073 5.61719 2 5.10156 2 4.60156C2.00521 4.29427 2.03646 4.03125 2.09375 3.8125C2.15104 3.59375 2.23698 3.39844 2.35156 3.22656C2.46615 3.05469 2.60677 2.88802 2.77344 2.72656C2.9401 2.5651 3.13021 2.3776 3.34375 2.16406C3.45312 2.05469 3.58594 2 3.74219 2C3.80469 1.99479 3.90104 2.03646 4.03125 2.125C4.16146 2.21354 4.30208 2.32031 4.45312 2.44531C4.60417 2.57031 4.76042 2.71354 4.92188 2.875C5.08333 3.03646 5.22656 3.19271 5.35156 3.34375C5.47656 3.49479 5.58073 3.63281 5.66406 3.75781C5.7474 3.88281 5.78906 3.97917 5.78906 4.04688C5.79427 4.17188 5.76042 4.27604 5.6875 4.35938C5.61458 4.44271 5.52865 4.53906 5.42969 4.64844C5.33073 4.75781 5.22135 4.86198 5.10156 4.96094C4.98177 5.0599 4.8724 5.17708 4.77344 5.3125C4.67448 5.44792 4.59115 5.59375 4.52344 5.75C4.45573 5.90625 4.42188 6.08594 4.42188 6.28906C4.42708 6.5026 4.46875 6.70312 4.54688 6.89062C4.625 7.07812 4.73698 7.24479 4.88281 7.39062L8.60938 11.1172C8.76042 11.2682 8.92969 11.3828 9.11719 11.4609C9.30469 11.5391 9.5026 11.5781 9.71094 11.5781C9.91927 11.5833 10.1016 11.5495 10.2578 11.4766C10.4141 11.4036 10.5573 11.3177 10.6875 11.2188C10.8177 11.1198 10.9375 11.0104 11.0469 10.8906C11.1562 10.7708 11.2578 10.6615 11.3516 10.5625C11.4453 10.4635 11.5417 10.3802 11.6406 10.3125C11.7396 10.2448 11.8438 10.2109 11.9531 10.2109C12.026 10.2109 12.125 10.2526 12.25 10.3359C12.375 10.4193 12.513 10.526 12.6641 10.6562C12.8151 10.7865 12.9714 10.9297 13.1328 11.0859C13.2943 11.2422 13.4375 11.3984 13.5625 11.5547C13.6875 11.7109 13.7917 11.8516 13.875 11.9766C13.9583 12.1016 14 12.1979 14 12.2656C14 12.4167 13.9453 12.5469 13.8359 12.6562C13.612 12.875 13.4219 13.0651 13.2656 13.2266C13.1094 13.388 12.9427 13.5286 12.7656 13.6484C12.5885 13.7682 12.3932 13.8568 12.1797 13.9141ZM15 1.70312L10.3594 6.35156L13.6484 6.35156V7.35156L8.64844 7.35156L8.64844 2.35156L9.64844 2.35156V5.64062L14.2969 1L15 1.70312Z" fill="#C5C5C5"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.5469 9.32812C12.3542 9.25 12.1562 9.21094 11.9531 9.21094C11.7344 9.20573 11.5495 9.23958 11.3984 9.3125C11.2474 9.38542 11.1042 9.47135 10.9688 9.57031C10.8333 9.66927 10.7135 9.77865 10.6094 9.89844C10.5052 10.0182 10.4036 10.1276 10.3047 10.2266C10.2057 10.3255 10.1094 10.4089 10.0156 10.4766C9.92188 10.5443 9.82031 10.5781 9.71094 10.5781C9.5599 10.5781 9.42969 10.5234 9.32031 10.4141C9.24219 10.3411 9.13281 10.237 8.99219 10.1016C8.85156 9.96615 8.67969 9.80208 8.47656 9.60938C8.27344 9.41667 8.0625 9.21354 7.84375 9C7.625 8.78646 7.39844 8.5651 7.16406 8.33594C6.92969 8.10677 6.71094 7.88542 6.50781 7.67188C6.30469 7.45833 6.11979 7.25781 5.95312 7.07031C5.78646 6.88281 5.65625 6.72135 5.5625 6.58594C5.46875 6.45052 5.42188 6.35156 5.42188 6.28906C5.41667 6.17448 5.45052 6.07031 5.52344 5.97656C5.59635 5.88281 5.68229 5.78646 5.78125 5.6875C5.88021 5.58854 5.98958 5.48438 6.10938 5.375C6.22917 5.26562 6.33854 5.14844 6.4375 5.02344C6.53646 4.89844 6.61979 4.75521 6.6875 4.59375C6.75521 4.43229 6.78906 4.25 6.78906 4.04688C6.78906 3.84375 6.75 3.64583 6.67188 3.45312C6.59375 3.26042 6.48177 3.09115 6.33594 2.94531C6.16927 2.78385 5.99219 2.59115 5.80469 2.36719C5.61719 2.14323 5.41146 1.92969 5.1875 1.72656C4.96354 1.52344 4.73177 1.35156 4.49219 1.21094C4.2526 1.07031 4.0026 1 3.74219 1C3.53906 1 3.34115 1.03906 3.14844 1.11719C2.95573 1.19531 2.78646 1.30729 2.64062 1.45313C2.36979 1.72396 2.13281 1.96615 1.92969 2.17969C1.72656 2.39323 1.55469 2.61458 1.41406 2.84375C1.27344 3.07292 1.16927 3.32812 1.10156 3.60938C1.03385 3.89062 1 4.22917 1 4.625C1 5.17708 1.08854 5.75 1.26562 6.34375C1.44271 6.9375 1.68229 7.52865 1.98438 8.11719C2.28646 8.70573 2.65365 9.28385 3.08594 9.85156C3.51823 10.4193 3.98698 10.9583 4.49219 11.4688C4.9974 11.9792 5.53385 12.4505 6.10156 12.8828C6.66927 13.3151 7.25 13.6875 7.84375 14C8.4375 14.3125 9.03385 14.5573 9.63281 14.7344C10.2318 14.9115 10.8151 15 11.3828 15C11.7682 14.9948 12.1042 14.9583 12.3906 14.8906C12.6771 14.8229 12.9349 14.7188 13.1641 14.5781C13.3932 14.4375 13.6146 14.2656 13.8281 14.0625C14.0417 13.8594 14.2812 13.625 14.5469 13.3594C14.6927 13.2135 14.8047 13.0443 14.8828 12.8516C14.9609 12.6589 15 12.4609 15 12.2578C14.9896 12.0859 14.9557 11.9141 14.8984 11.7422C14.8411 11.5703 14.7552 11.4089 14.6406 11.2578C14.526 11.1068 14.4036 10.9583 14.2734 10.8125C14.1432 10.6667 14.0026 10.526 13.8516 10.3906C13.7005 10.2552 13.5573 10.1276 13.4219 10.0078C13.2865 9.88802 13.1641 9.77344 13.0547 9.66406C12.9089 9.51823 12.7396 9.40625 12.5469 9.32812ZM12.1797 13.9141C11.9661 13.9714 11.7005 14 11.3828 14C10.8984 13.9948 10.3932 13.9141 9.86719 13.7578C9.34115 13.6016 8.8125 13.3802 8.28125 13.0938C7.75 12.8073 7.22396 12.4688 6.70312 12.0781C6.18229 11.6875 5.69271 11.2604 5.23438 10.7969C4.77604 10.3333 4.34635 9.84635 3.94531 9.33594C3.54427 8.82552 3.20052 8.29948 2.91406 7.75781C2.6276 7.21615 2.40365 6.67969 2.24219 6.14844C2.08073 5.61719 2 5.10156 2 4.60156C2.00521 4.29427 2.03646 4.03125 2.09375 3.8125C2.15104 3.59375 2.23698 3.39844 2.35156 3.22656C2.46615 3.05469 2.60677 2.88802 2.77344 2.72656C2.9401 2.5651 3.13021 2.3776 3.34375 2.16406C3.45312 2.05469 3.58594 2 3.74219 2C3.80469 1.99479 3.90104 2.03646 4.03125 2.125C4.16146 2.21354 4.30208 2.32031 4.45312 2.44531C4.60417 2.57031 4.76042 2.71354 4.92188 2.875C5.08333 3.03646 5.22656 3.19271 5.35156 3.34375C5.47656 3.49479 5.58073 3.63281 5.66406 3.75781C5.7474 3.88281 5.78906 3.97917 5.78906 4.04688C5.79427 4.17188 5.76042 4.27604 5.6875 4.35938C5.61458 4.44271 5.52865 4.53906 5.42969 4.64844C5.33073 4.75781 5.22135 4.86198 5.10156 4.96094C4.98177 5.0599 4.8724 5.17708 4.77344 5.3125C4.67448 5.44792 4.59115 5.59375 4.52344 5.75C4.45573 5.90625 4.42188 6.08594 4.42188 6.28906C4.42708 6.5026 4.46875 6.70312 4.54688 6.89062C4.625 7.07812 4.73698 7.24479 4.88281 7.39062L8.60938 11.1172C8.76042 11.2682 8.92969 11.3828 9.11719 11.4609C9.30469 11.5391 9.5026 11.5781 9.71094 11.5781C9.91927 11.5833 10.1016 11.5495 10.2578 11.4766C10.4141 11.4036 10.5573 11.3177 10.6875 11.2188C10.8177 11.1198 10.9375 11.0104 11.0469 10.8906C11.1562 10.7708 11.2578 10.6615 11.3516 10.5625C11.4453 10.4635 11.5417 10.3802 11.6406 10.3125C11.7396 10.2448 11.8438 10.2109 11.9531 10.2109C12.026 10.2109 12.125 10.2526 12.25 10.3359C12.375 10.4193 12.513 10.526 12.6641 10.6562C12.8151 10.7865 12.9714 10.9297 13.1328 11.0859C13.2943 11.2422 13.4375 11.3984 13.5625 11.5547C13.6875 11.7109 13.7917 11.8516 13.875 11.9766C13.9583 12.1016 14 12.1979 14 12.2656C14 12.4167 13.9453 12.5469 13.8359 12.6562C13.612 12.875 13.4219 13.0651 13.2656 13.2266C13.1094 13.388 12.9427 13.5286 12.7656 13.6484C12.5885 13.7682 12.3932 13.8568 12.1797 13.9141ZM15 1.70312L10.3594 6.35156L13.6484 6.35156V7.35156L8.64844 7.35156L8.64844 2.35156L9.64844 2.35156V5.64062L14.2969 1L15 1.70312Z" fill="#424242"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.64844 6.64844L13.2891 2H10V1H15V6H14V2.71094L9.35156 7.35156L8.64844 6.64844ZM11.9531 9.21094C12.1562 9.21094 12.3542 9.25 12.5469 9.32812C12.7396 9.40625 12.9089 9.51823 13.0547 9.66406C13.1641 9.77344 13.2865 9.88802 13.4219 10.0078C13.5573 10.1276 13.7005 10.2552 13.8516 10.3906C14.0026 10.526 14.1432 10.6667 14.2734 10.8125C14.4036 10.9583 14.526 11.1068 14.6406 11.2578C14.7552 11.4089 14.8411 11.5703 14.8984 11.7422C14.9557 11.9141 14.9896 12.0859 15 12.2578C15 12.4609 14.9609 12.6589 14.8828 12.8516C14.8047 13.0443 14.6927 13.2135 14.5469 13.3594C14.2812 13.625 14.0417 13.8594 13.8281 14.0625C13.6146 14.2656 13.3932 14.4375 13.1641 14.5781C12.9349 14.7188 12.6771 14.8229 12.3906 14.8906C12.1042 14.9583 11.7682 14.9948 11.3828 15C10.8151 15 10.2318 14.9115 9.63281 14.7344C9.03385 14.5573 8.4375 14.3125 7.84375 14C7.25 13.6875 6.66927 13.3151 6.10156 12.8828C5.53385 12.4505 4.9974 11.9792 4.49219 11.4688C3.98698 10.9583 3.51823 10.4193 3.08594 9.85156C2.65365 9.28385 2.28646 8.70573 1.98438 8.11719C1.68229 7.52865 1.44271 6.9375 1.26562 6.34375C1.08854 5.75 1 5.17708 1 4.625C1 4.22917 1.03385 3.89062 1.10156 3.60938C1.16927 3.32812 1.27344 3.07292 1.41406 2.84375C1.55469 2.61458 1.72656 2.39323 1.92969 2.17969C2.13281 1.96615 2.36979 1.72396 2.64062 1.45312C2.78646 1.30729 2.95573 1.19531 3.14844 1.11719C3.34115 1.03906 3.53906 1 3.74219 1C4.0026 1 4.2526 1.07031 4.49219 1.21094C4.73177 1.35156 4.96354 1.52344 5.1875 1.72656C5.41146 1.92969 5.61719 2.14323 5.80469 2.36719C5.99219 2.59115 6.16927 2.78385 6.33594 2.94531C6.48177 3.09115 6.59375 3.26042 6.67188 3.45312C6.75 3.64583 6.78906 3.84375 6.78906 4.04688C6.78906 4.25 6.75521 4.43229 6.6875 4.59375C6.61979 4.75521 6.53646 4.89844 6.4375 5.02344C6.33854 5.14844 6.22917 5.26562 6.10938 5.375C5.98958 5.48438 5.88021 5.58854 5.78125 5.6875C5.68229 5.78646 5.59635 5.88281 5.52344 5.97656C5.45052 6.07031 5.41667 6.17448 5.42188 6.28906C5.42188 6.35156 5.46875 6.45052 5.5625 6.58594C5.65625 6.72135 5.78646 6.88281 5.95312 7.07031C6.11979 7.25781 6.30469 7.45833 6.50781 7.67188C6.71094 7.88542 6.92969 8.10677 7.16406 8.33594C7.39844 8.5651 7.625 8.78646 7.84375 9C8.0625 9.21354 8.27344 9.41667 8.47656 9.60938C8.67969 9.80208 8.85156 9.96615 8.99219 10.1016C9.13281 10.237 9.24219 10.3411 9.32031 10.4141C9.42969 10.5234 9.5599 10.5781 9.71094 10.5781C9.82031 10.5781 9.92188 10.5443 10.0156 10.4766C10.1094 10.4089 10.2057 10.3255 10.3047 10.2266C10.4036 10.1276 10.5052 10.0182 10.6094 9.89844C10.7135 9.77865 10.8333 9.66927 10.9688 9.57031C11.1042 9.47135 11.2474 9.38542 11.3984 9.3125C11.5495 9.23958 11.7344 9.20573 11.9531 9.21094ZM11.3828 14C11.7005 14 11.9661 13.9714 12.1797 13.9141C12.3932 13.8568 12.5885 13.7682 12.7656 13.6484C12.9427 13.5286 13.1094 13.388 13.2656 13.2266C13.4219 13.0651 13.612 12.875 13.8359 12.6562C13.9453 12.5469 14 12.4167 14 12.2656C14 12.1979 13.9583 12.1016 13.875 11.9766C13.7917 11.8516 13.6875 11.7109 13.5625 11.5547C13.4375 11.3984 13.2943 11.2422 13.1328 11.0859C12.9714 10.9297 12.8151 10.7865 12.6641 10.6562C12.513 10.526 12.375 10.4193 12.25 10.3359C12.125 10.2526 12.026 10.2109 11.9531 10.2109C11.8438 10.2109 11.7396 10.2448 11.6406 10.3125C11.5417 10.3802 11.4453 10.4635 11.3516 10.5625C11.2578 10.6615 11.1562 10.7708 11.0469 10.8906C10.9375 11.0104 10.8177 11.1198 10.6875 11.2188C10.5573 11.3177 10.4141 11.4036 10.2578 11.4766C10.1016 11.5495 9.91927 11.5833 9.71094 11.5781C9.5026 11.5781 9.30469 11.5391 9.11719 11.4609C8.92969 11.3828 8.76042 11.2682 8.60938 11.1172L4.88281 7.39062C4.73698 7.24479 4.625 7.07812 4.54688 6.89062C4.46875 6.70312 4.42708 6.5026 4.42188 6.28906C4.42188 6.08594 4.45573 5.90625 4.52344 5.75C4.59115 5.59375 4.67448 5.44792 4.77344 5.3125C4.8724 5.17708 4.98177 5.0599 5.10156 4.96094C5.22135 4.86198 5.33073 4.75781 5.42969 4.64844C5.52865 4.53906 5.61458 4.44271 5.6875 4.35938C5.76042 4.27604 5.79427 4.17188 5.78906 4.04688C5.78906 3.97917 5.7474 3.88281 5.66406 3.75781C5.58073 3.63281 5.47656 3.49479 5.35156 3.34375C5.22656 3.19271 5.08333 3.03646 4.92188 2.875C4.76042 2.71354 4.60417 2.57031 4.45312 2.44531C4.30208 2.32031 4.16146 2.21354 4.03125 2.125C3.90104 2.03646 3.80469 1.99479 3.74219 2C3.58594 2 3.45312 2.05469 3.34375 2.16406C3.13021 2.3776 2.9401 2.5651 2.77344 2.72656C2.60677 2.88802 2.46615 3.05469 2.35156 3.22656C2.23698 3.39844 2.15104 3.59375 2.09375 3.8125C2.03646 4.03125 2.00521 4.29427 2 4.60156C2 5.10156 2.08073 5.61719 2.24219 6.14844C2.40365 6.67969 2.6276 7.21615 2.91406 7.75781C3.20052 8.29948 3.54427 8.82552 3.94531 9.33594C4.34635 9.84635 4.77604 10.3333 5.23438 10.7969C5.69271 11.2604 6.18229 11.6875 6.70312 12.0781C7.22396 12.4688 7.75 12.8073 8.28125 13.0938C8.8125 13.3802 9.34115 13.6016 9.86719 13.7578C10.3932 13.9141 10.8984 13.9948 11.3828 14Z" fill="#C5C5C5"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.64844 6.64844L13.2891 2H10V1H15V6H14V2.71094L9.35156 7.35156L8.64844 6.64844ZM11.9531 9.21094C12.1562 9.21094 12.3542 9.25 12.5469 9.32812C12.7396 9.40625 12.9089 9.51823 13.0547 9.66406C13.1641 9.77344 13.2865 9.88802 13.4219 10.0078C13.5573 10.1276 13.7005 10.2552 13.8516 10.3906C14.0026 10.526 14.1432 10.6667 14.2734 10.8125C14.4036 10.9583 14.526 11.1068 14.6406 11.2578C14.7552 11.4089 14.8411 11.5703 14.8984 11.7422C14.9557 11.9141 14.9896 12.0859 15 12.2578C15 12.4609 14.9609 12.6589 14.8828 12.8516C14.8047 13.0443 14.6927 13.2135 14.5469 13.3594C14.2812 13.625 14.0417 13.8594 13.8281 14.0625C13.6146 14.2656 13.3932 14.4375 13.1641 14.5781C12.9349 14.7188 12.6771 14.8229 12.3906 14.8906C12.1042 14.9583 11.7682 14.9948 11.3828 15C10.8151 15 10.2318 14.9115 9.63281 14.7344C9.03385 14.5573 8.4375 14.3125 7.84375 14C7.25 13.6875 6.66927 13.3151 6.10156 12.8828C5.53385 12.4505 4.9974 11.9792 4.49219 11.4688C3.98698 10.9583 3.51823 10.4193 3.08594 9.85156C2.65365 9.28385 2.28646 8.70573 1.98438 8.11719C1.68229 7.52865 1.44271 6.9375 1.26562 6.34375C1.08854 5.75 1 5.17708 1 4.625C1 4.22917 1.03385 3.89062 1.10156 3.60938C1.16927 3.32812 1.27344 3.07292 1.41406 2.84375C1.55469 2.61458 1.72656 2.39323 1.92969 2.17969C2.13281 1.96615 2.36979 1.72396 2.64062 1.45312C2.78646 1.30729 2.95573 1.19531 3.14844 1.11719C3.34115 1.03906 3.53906 1 3.74219 1C4.0026 1 4.2526 1.07031 4.49219 1.21094C4.73177 1.35156 4.96354 1.52344 5.1875 1.72656C5.41146 1.92969 5.61719 2.14323 5.80469 2.36719C5.99219 2.59115 6.16927 2.78385 6.33594 2.94531C6.48177 3.09115 6.59375 3.26042 6.67188 3.45312C6.75 3.64583 6.78906 3.84375 6.78906 4.04688C6.78906 4.25 6.75521 4.43229 6.6875 4.59375C6.61979 4.75521 6.53646 4.89844 6.4375 5.02344C6.33854 5.14844 6.22917 5.26562 6.10938 5.375C5.98958 5.48438 5.88021 5.58854 5.78125 5.6875C5.68229 5.78646 5.59635 5.88281 5.52344 5.97656C5.45052 6.07031 5.41667 6.17448 5.42188 6.28906C5.42188 6.35156 5.46875 6.45052 5.5625 6.58594C5.65625 6.72135 5.78646 6.88281 5.95312 7.07031C6.11979 7.25781 6.30469 7.45833 6.50781 7.67188C6.71094 7.88542 6.92969 8.10677 7.16406 8.33594C7.39844 8.5651 7.625 8.78646 7.84375 9C8.0625 9.21354 8.27344 9.41667 8.47656 9.60938C8.67969 9.80208 8.85156 9.96615 8.99219 10.1016C9.13281 10.237 9.24219 10.3411 9.32031 10.4141C9.42969 10.5234 9.5599 10.5781 9.71094 10.5781C9.82031 10.5781 9.92188 10.5443 10.0156 10.4766C10.1094 10.4089 10.2057 10.3255 10.3047 10.2266C10.4036 10.1276 10.5052 10.0182 10.6094 9.89844C10.7135 9.77865 10.8333 9.66927 10.9688 9.57031C11.1042 9.47135 11.2474 9.38542 11.3984 9.3125C11.5495 9.23958 11.7344 9.20573 11.9531 9.21094ZM11.3828 14C11.7005 14 11.9661 13.9714 12.1797 13.9141C12.3932 13.8568 12.5885 13.7682 12.7656 13.6484C12.9427 13.5286 13.1094 13.388 13.2656 13.2266C13.4219 13.0651 13.612 12.875 13.8359 12.6562C13.9453 12.5469 14 12.4167 14 12.2656C14 12.1979 13.9583 12.1016 13.875 11.9766C13.7917 11.8516 13.6875 11.7109 13.5625 11.5547C13.4375 11.3984 13.2943 11.2422 13.1328 11.0859C12.9714 10.9297 12.8151 10.7865 12.6641 10.6562C12.513 10.526 12.375 10.4193 12.25 10.3359C12.125 10.2526 12.026 10.2109 11.9531 10.2109C11.8438 10.2109 11.7396 10.2448 11.6406 10.3125C11.5417 10.3802 11.4453 10.4635 11.3516 10.5625C11.2578 10.6615 11.1562 10.7708 11.0469 10.8906C10.9375 11.0104 10.8177 11.1198 10.6875 11.2188C10.5573 11.3177 10.4141 11.4036 10.2578 11.4766C10.1016 11.5495 9.91927 11.5833 9.71094 11.5781C9.5026 11.5781 9.30469 11.5391 9.11719 11.4609C8.92969 11.3828 8.76042 11.2682 8.60938 11.1172L4.88281 7.39062C4.73698 7.24479 4.625 7.07812 4.54688 6.89062C4.46875 6.70312 4.42708 6.5026 4.42188 6.28906C4.42188 6.08594 4.45573 5.90625 4.52344 5.75C4.59115 5.59375 4.67448 5.44792 4.77344 5.3125C4.8724 5.17708 4.98177 5.0599 5.10156 4.96094C5.22135 4.86198 5.33073 4.75781 5.42969 4.64844C5.52865 4.53906 5.61458 4.44271 5.6875 4.35938C5.76042 4.27604 5.79427 4.17188 5.78906 4.04688C5.78906 3.97917 5.7474 3.88281 5.66406 3.75781C5.58073 3.63281 5.47656 3.49479 5.35156 3.34375C5.22656 3.19271 5.08333 3.03646 4.92188 2.875C4.76042 2.71354 4.60417 2.57031 4.45312 2.44531C4.30208 2.32031 4.16146 2.21354 4.03125 2.125C3.90104 2.03646 3.80469 1.99479 3.74219 2C3.58594 2 3.45312 2.05469 3.34375 2.16406C3.13021 2.3776 2.9401 2.5651 2.77344 2.72656C2.60677 2.88802 2.46615 3.05469 2.35156 3.22656C2.23698 3.39844 2.15104 3.59375 2.09375 3.8125C2.03646 4.03125 2.00521 4.29427 2 4.60156C2 5.10156 2.08073 5.61719 2.24219 6.14844C2.40365 6.67969 2.6276 7.21615 2.91406 7.75781C3.20052 8.29948 3.54427 8.82552 3.94531 9.33594C4.34635 9.84635 4.77604 10.3333 5.23438 10.7969C5.69271 11.2604 6.18229 11.6875 6.70312 12.0781C7.22396 12.4688 7.75 12.8073 8.28125 13.0938C8.8125 13.3802 9.34115 13.6016 9.86719 13.7578C10.3932 13.9141 10.8984 13.9948 11.3828 14Z" fill="#424242"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -20,28 +20,6 @@
height: 100%;
}
.monaco-workbench .action-label.calls-to {
background-image: url(action-call-to.svg);
background-size: 14px 14px;
background-repeat: no-repeat;
background-position: left center;
}
.vs-dark .monaco-workbench .action-label.calls-to {
background-image: url(action-call-to-dark.svg);
}
.monaco-workbench .action-label.calls-from {
background-image: url(action-call-from.svg);
background-size: 14px 14px;
background-repeat: no-repeat;
background-position: left center;
}
.vs-dark .monaco-workbench .action-label.calls-from{
background-image: url(action-call-from-dark.svg);
}
.monaco-workbench .call-hierarchy .editor,
.monaco-workbench .call-hierarchy .tree {
height: 100%;

View File

@@ -26,11 +26,19 @@ const codeActionsOnSaveDefaultProperties = Object.freeze<IJSONSchemaMap>({
});
const codeActionsOnSaveSchema: IConfigurationPropertySchema = {
type: 'object',
properties: codeActionsOnSaveDefaultProperties,
'additionalProperties': {
type: 'boolean'
},
oneOf: [
{
type: 'object',
properties: codeActionsOnSaveDefaultProperties,
additionalProperties: {
type: 'boolean'
},
},
{
type: 'array',
items: { type: 'string' }
}
],
default: {},
description: nls.localize('codeActionsOnSave', "Code action kinds to be run on save."),
scope: ConfigurationScope.LANGUAGE_OVERRIDABLE,

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.14646 9.76783L8.14644 14.7678L8.85355 14.7678L13.8535 9.76783L13.1464 9.06072L9 13.2072L9 1.00006L8 1.00006L8 13.2072L3.85356 9.06072L3.14646 9.76783Z" fill="#C5C5C5"/>
</svg>

Before

Width:  |  Height:  |  Size: 324 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.14646 9.76783L8.14644 14.7678L8.85355 14.7678L13.8535 9.76783L13.1464 9.06072L9 13.2072L9 1.00006L8 1.00006L8 13.2072L3.85356 9.06072L3.14646 9.76783Z" fill="#424242"/>
</svg>

Before

Width:  |  Height:  |  Size: 324 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.8535 6.29284L8.85356 1.29285H8.14645L3.14645 6.29284L3.85356 6.99995L8 2.85351V15.0606H9V2.85351L13.1464 6.99995L13.8535 6.29284Z" fill="#C5C5C5"/>
</svg>

Before

Width:  |  Height:  |  Size: 304 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.8535 6.29284L8.85356 1.29285H8.14645L3.14645 6.29284L3.85356 6.99995L8 2.85351V15.0606H9V2.85351L13.1464 6.99995L13.8535 6.29284Z" fill="#424242"/>
</svg>

Before

Width:  |  Height:  |  Size: 304 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 8.70714L11.6464 12.3536L12.3536 11.6465L8.70711 8.00004L12.3536 4.35359L11.6464 3.64648L8 7.29293L4.35355 3.64648L3.64645 4.35359L7.29289 8.00004L3.64645 11.6465L4.35355 12.3536L8 8.70714Z" fill="#C5C5C5"/>
</svg>

Before

Width:  |  Height:  |  Size: 362 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 8.70714L11.6464 12.3536L12.3536 11.6465L8.70711 8.00004L12.3536 4.35359L11.6464 3.64648L8 7.29293L4.35355 3.64648L3.64645 4.35359L7.29289 8.00004L3.64645 11.6465L4.35355 12.3536L8 8.70714Z" fill="#424242"/>
</svg>

Before

Width:  |  Height:  |  Size: 362 B

View File

@@ -43,42 +43,17 @@
min-width: 20px;
width: 20px;
height: 20px;
line-height: 20px;
display: flex;
flex: initial;
justify-content: center;
margin-left: 3px;
background-position: center center;
background-repeat: no-repeat;
cursor: pointer;
}
.monaco-workbench .simple-find-part .button.previous {
background-image: url('images/chevron-previous-light.svg');
}
.monaco-workbench .simple-find-part .button.next {
background-image: url('images/chevron-next-light.svg');
}
.monaco-workbench .simple-find-part .button.close-fw {
background-image: url('images/close-light.svg');
}
.hc-black .monaco-workbench .simple-find-part .button.previous,
.vs-dark .monaco-workbench .simple-find-part .button.previous {
background-image: url('images/chevron-previous-dark.svg');
}
.hc-black .monaco-workbench .simple-find-part .button.next,
.vs-dark .monaco-workbench .simple-find-part .button.next {
background-image: url('images/chevron-next-dark.svg');
}
.hc-black .monaco-workbench .simple-find-part .button.close-fw,
.vs-dark .monaco-workbench .simple-find-part .button.close-fw {
background-image: url('images/close-dark.svg');
}
.monaco-workbench .simple-find-part .button.disabled {
opacity: 0.3;
cursor: default;
}
}

View File

@@ -94,7 +94,7 @@ export abstract class SimpleFindWidget extends Widget {
this.prevBtn = this._register(new SimpleButton({
label: NLS_PREVIOUS_MATCH_BTN_LABEL,
className: 'previous',
className: 'codicon codicon-arrow-up',
onTrigger: () => {
this.find(true);
}
@@ -102,7 +102,7 @@ export abstract class SimpleFindWidget extends Widget {
this.nextBtn = this._register(new SimpleButton({
label: NLS_NEXT_MATCH_BTN_LABEL,
className: 'next',
className: 'codicon codicon-arrow-down',
onTrigger: () => {
this.find(false);
}
@@ -110,7 +110,7 @@ export abstract class SimpleFindWidget extends Widget {
const closeBtn = this._register(new SimpleButton({
label: NLS_CLOSE_BTN_LABEL,
className: 'close-fw',
className: 'codicon codicon-close',
onTrigger: () => {
this.hide();
}

View File

@@ -266,14 +266,20 @@ class CodeActionOnSaveParticipant implements ITextFileSaveParticipant {
const model = editorModel.textEditorModel;
const settingsOverrides = { overrideIdentifier: model.getLanguageIdentifier().language, resource: editorModel.resource };
const setting = this.configurationService.getValue<{ [kind: string]: boolean }>('editor.codeActionsOnSave', settingsOverrides);
const setting = this.configurationService.getValue<{ [kind: string]: boolean } | string[]>('editor.codeActionsOnSave', settingsOverrides);
if (!setting) {
return undefined;
}
const codeActionsOnSave = Object.keys(setting)
.filter(x => setting[x]).map(x => new CodeActionKind(x))
.sort((a, b) => {
const settingItems: string[] = Array.isArray(setting)
? setting
: Object.keys(setting).filter(x => setting[x]);
const codeActionsOnSave = settingItems
.map(x => new CodeActionKind(x));
if (!Array.isArray(setting)) {
codeActionsOnSave.sort((a, b) => {
if (CodeActionKind.SourceFixAll.contains(a)) {
if (CodeActionKind.SourceFixAll.contains(b)) {
return 0;
@@ -285,14 +291,17 @@ class CodeActionOnSaveParticipant implements ITextFileSaveParticipant {
}
return 0;
});
}
if (!codeActionsOnSave.length) {
return undefined;
}
const excludedActions = Object.keys(setting)
.filter(x => setting[x] === false)
.map(x => new CodeActionKind(x));
const excludedActions = Array.isArray(setting)
? []
: Object.keys(setting)
.filter(x => setting[x] === false)
.map(x => new CodeActionKind(x));
progress.report({ message: localize('codeaction', "Quick Fixes") });
await this.applyOnSaveActions(model, codeActionsOnSave, excludedActions, progress, token);

View File

@@ -158,7 +158,7 @@ export class CommentNode extends Disposable {
},
this.actionRunner!,
undefined,
'toolbar-toggle-pickReactions',
'toolbar-toggle-pickReactions codicon codicon-reactions',
() => { return AnchorAlignment.RIGHT; }
);
}

View File

@@ -50,7 +50,7 @@ import { KeyCode } from 'vs/base/common/keyCodes';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
export const COMMENTEDITOR_DECORATION_KEY = 'commenteditordecoration';
const COLLAPSE_ACTION_CLASS = 'expand-review-action';
const COLLAPSE_ACTION_CLASS = 'expand-review-action codicon-chevron-up';
const COMMENT_SCHEME = 'comment';

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 6.04048L3.02022 11.0203L2.31311 10.3132L7.64645 4.97982L8.35355 4.97982L13.6869 10.3132L12.9798 11.0203L8 6.04048Z" fill="#C5C5C5"/>
</svg>

Before

Width:  |  Height:  |  Size: 288 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 6.04048L3.02022 11.0203L2.31311 10.3132L7.64645 4.97982L8.35355 4.97982L13.6869 10.3132L12.9798 11.0203L8 6.04048Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 286 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 6.04048L3.02022 11.0203L2.31311 10.3132L7.64645 4.97982L8.35355 4.97982L13.6869 10.3132L12.9798 11.0203L8 6.04048Z" fill="#424242"/>
</svg>

Before

Width:  |  Height:  |  Size: 288 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="3 3 16 16" enable-background="new 3 3 16 16"><polygon fill="#e8e8e8" points="12.597,11.042 15.4,13.845 13.844,15.4 11.042,12.598 8.239,15.4 6.683,13.845 9.485,11.042 6.683,8.239 8.238,6.683 11.042,9.486 13.845,6.683 15.4,8.239"/></svg>

Before

Width:  |  Height:  |  Size: 307 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 0H12V3H9V4H12V7H13V4H16V3H13V0ZM5 8C5 8.55229 4.55228 9 4 9C3.44772 9 3 8.55229 3 8C3 7.44772 3.44772 7 4 7C4.55228 7 5 7.44772 5 8ZM9 9C9.55229 9 10 8.55229 10 8C10 7.44772 9.55229 7 9 7C8.44771 7 8 7.44772 8 8C8 8.55229 8.44771 9 9 9ZM8.67198 10.7388C8.24133 11.4922 7.42996 12 6.5 12C5.6403 12 4.88195 11.566 4.43204 10.9052L3.56421 11.4063C4.18842 12.3656 5.27013 13 6.5 13C7.80007 13 8.93458 12.2911 9.53815 11.2389L8.67198 10.7388ZM8 3.17393C7.51848 3.06019 7.01627 3 6.5 3C2.91015 3 0 5.91015 0 9.5C0 13.0899 2.91015 16 6.5 16C10.0899 16 13 13.0899 13 9.5C13 8.98373 12.9398 8.48152 12.8261 8H11.793C11.9278 8.47683 12 8.97999 12 9.5C12 12.5376 9.53757 15 6.5 15C3.46243 15 1 12.5376 1 9.5C1 6.46243 3.46243 4 6.5 4C7.02001 4 7.52317 4.07217 8 4.20703V3.17393Z" fill="#C5C5C5"/>
</svg>

Before

Width:  |  Height:  |  Size: 942 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 0H12V3H9V4H12V7H13V4H16V3H13V0ZM5 8C5 8.55229 4.55228 9 4 9C3.44772 9 3 8.55229 3 8C3 7.44772 3.44772 7 4 7C4.55228 7 5 7.44772 5 8ZM9 9C9.55229 9 10 8.55229 10 8C10 7.44772 9.55229 7 9 7C8.44771 7 8 7.44772 8 8C8 8.55229 8.44771 9 9 9ZM8.67198 10.7388C8.24133 11.4922 7.42996 12 6.5 12C5.6403 12 4.88195 11.566 4.43204 10.9052L3.56421 11.4063C4.18842 12.3656 5.27013 13 6.5 13C7.80007 13 8.93458 12.2911 9.53815 11.2389L8.67198 10.7388ZM8 3.17393C7.51848 3.06019 7.01627 3 6.5 3C2.91015 3 0 5.91015 0 9.5C0 13.0899 2.91015 16 6.5 16C10.0899 16 13 13.0899 13 9.5C13 8.98373 12.9398 8.48152 12.8261 8H11.793C11.9278 8.47683 12 8.97999 12 9.5C12 12.5376 9.53757 15 6.5 15C3.46243 15 1 12.5376 1 9.5C1 6.46243 3.46243 4 6.5 4C7.02001 4 7.52317 4.07217 8 4.20703V3.17393Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 940 B

View File

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 0H12V3H9V4H12V7H13V4H16V3H13V0ZM5 8C5 8.55229 4.55228 9 4 9C3.44772 9 3 8.55229 3 8C3 7.44772 3.44772 7 4 7C4.55228 7 5 7.44772 5 8ZM9 9C9.55229 9 10 8.55229 10 8C10 7.44772 9.55229 7 9 7C8.44771 7 8 7.44772 8 8C8 8.55229 8.44771 9 9 9ZM8.67198 10.7388C8.24133 11.4922 7.42996 12 6.5 12C5.6403 12 4.88195 11.566 4.43204 10.9052L3.56421 11.4063C4.18842 12.3656 5.27013 13 6.5 13C7.80007 13 8.93458 12.2911 9.53815 11.2389L8.67198 10.7388ZM8 3.17393C7.51848 3.06019 7.01627 3 6.5 3C2.91015 3 0 5.91015 0 9.5C0 13.0899 2.91015 16 6.5 16C10.0899 16 13 13.0899 13 9.5C13 8.98373 12.9398 8.48152 12.8261 8H11.793C11.9278 8.47683 12 8.97999 12 9.5C12 12.5376 9.53757 15 6.5 15C3.46243 15 1 12.5376 1 9.5C1 6.46243 3.46243 4 6.5 4C7.02001 4 7.52317 4.07217 8 4.20703V3.17393Z" fill="#424242"/>
</svg>

Before

Width:  |  Height:  |  Size: 942 B

View File

@@ -146,22 +146,8 @@
margin-right: 4px;
}
.monaco-editor .review-widget .head .review-actions > .monaco-action-bar .codicon.expand-review-action {
background-image: url("./close-light.svg");
background-size: 16px;
}
.monaco-editor.vs-dark .review-widget .head .review-actions > .monaco-action-bar .codicon.expand-review-action {
background-image: url("./close-dark.svg");
}
.monaco-editor.hc-black .review-widget .head .review-actions > .monaco-action-bar .codicon.expand-review-action {
background-image: url("./close-hc.svg");
}
.monaco-editor .review-widget .body .review-comment .review-comment-contents .comment-reactions .action-item a.action-label.toolbar-toggle-pickReactions {
display: none;
background-image: url("./reaction-light.svg");
background-size: 16px;
width: 26px;
height: 16px;
@@ -176,14 +162,6 @@
background-size: 16px;
}
.monaco-editor.vs-dark .review-widget .body .review-comment .review-comment-contents .comment-reactions .action-item a.action-label.toolbar-toggle-pickReactions {
background-image: url("./reaction-dark.svg");
}
.monaco-editor.hc-black .review-widget .body .review-comment .review-comment-contents .comment-reactions .action-item a.action-label.toolbar-toggle-pickReactions {
background-image: url("./reaction-hc.svg");
}
.monaco-editor .review-widget .body .review-comment .comment-title .action-label {
display: block;
height: 16px;
@@ -193,23 +171,6 @@
background-repeat: no-repeat;
}
.monaco-editor .review-widget .body .review-comment .comment-title .action-label.toolbar-toggle-pickReactions {
background-image: url("./reaction-light.svg");
width: 16px;
height: 16px;
background-size: 16px;
background-position: center;
background-repeat: no-repeat;
}
.monaco-editor.vs-dark .review-widget .body .review-comment .comment-title .action-label.toolbar-toggle-pickReactions {
background-image: url("./reaction-dark.svg");
}
.monaco-editor.hc-black .review-widget .body .review-comment .comment-title .action-label.toolbar-toggle-pickReactions {
background-image: url("./reaction-hc.svg");
}
.monaco-editor .review-widget .body .review-comment .review-comment-contents .comment-reactions .action-item a.action-label {
border: 1px solid transparent;
}
@@ -412,10 +373,6 @@
margin: 0;
}
.monaco-editor .review-widget .head .review-actions .action-label.codicon.close-review-action {
background: url("./close.svg") center center no-repeat;
}
.monaco-editor .review-widget > .body {
border-top: 1px solid;
position: relative;

View File

@@ -11,7 +11,6 @@ import { isEqual } from 'vs/base/common/resources';
import { assertIsDefined } from 'vs/base/common/types';
import { URI } from 'vs/base/common/uri';
import { IFileDialogService } from 'vs/platform/dialogs/common/dialogs';
import { ITextEditorOptions } from 'vs/platform/editor/common/editor';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { ILabelService } from 'vs/platform/label/common/label';
import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo';
@@ -138,7 +137,7 @@ export class CustomEditorInput extends LazilyResolvedWebviewEditorInput {
return undefined;
}
return this.tryMoveWebview(groupId, target) || this.editorService.createEditorInput({ resource: target, forceFile: true });
return this.move(groupId, target)?.editor;
}
public async revert(group: GroupIdentifier, options?: IRevertOptions): Promise<void> {
@@ -161,32 +160,29 @@ export class CustomEditorInput extends LazilyResolvedWebviewEditorInput {
}
move(group: GroupIdentifier, newResource: URI): { editor: IEditorInput } | undefined {
if (!this._moveHandler) {
return {
editor: this.customEditorService.createInput(newResource, this.viewType, group)
};
}
this._moveHandler(newResource);
const newEditor = this.tryMoveWebview(group, newResource);
if (!newEditor) {
return undefined; // {{SQL CARBON EDIT}} strict-null-checks
}
return { editor: newEditor };
}
private tryMoveWebview(groupId: GroupIdentifier, uri: URI, options?: ITextEditorOptions): IEditorInput | undefined {
const editorInfo = this.customEditorService.getCustomEditor(this.viewType);
if (editorInfo?.matches(uri)) {
const newInput = this.instantiationService.createInstance(CustomEditorInput,
uri,
if (editorInfo?.matches(newResource)) {
// We can keep using the same custom editor provider
if (!this._moveHandler) {
return {
editor: this.customEditorService.createInput(newResource, this.viewType, group),
};
}
this._moveHandler(newResource);
const newEditor = this.instantiationService.createInstance(CustomEditorInput,
newResource,
this.viewType,
this.id,
new Lazy(() => undefined!)); // this webview is replaced in the transfer call
this.transfer(newInput);
newInput.updateGroup(groupId);
return newInput;
this.transfer(newEditor);
newEditor.updateGroup(group);
return { editor: newEditor };
} else {
// const possible = this.customEditorService.getContributedCustomEditors(newResource);
return { editor: this.editorService.createEditorInput({ resource: newResource, forceFile: true }) };
}
return undefined;
}

View File

@@ -30,6 +30,7 @@ import { IWebviewService, webviewHasOwnEditFunctionsContext } from 'vs/workbench
import { IEditorGroup, IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
import { IEditorService, IOpenEditorOverride } from 'vs/workbench/services/editor/common/editorService';
import { CustomEditorInput } from './customEditorInput';
import { FileEditorInput } from 'vs/workbench/contrib/files/common/editors/fileEditorInput';
export const defaultEditorId = 'default';
@@ -146,15 +147,33 @@ export class CustomEditorService extends Disposable implements ICustomEditorServ
.map(association => this._editorInfoStore.get(association.viewType))));
}
public getAllCustomEditors(resource: URI): CustomEditorInfoCollection {
return new CustomEditorInfoCollection([
...this.getUserConfiguredCustomEditors(resource).allEditors,
...this.getContributedCustomEditors(resource).allEditors,
]);
}
public async promptOpenWith(
resource: URI,
options?: ITextEditorOptions,
group?: IEditorGroup,
): Promise<IEditorPane | undefined> {
const pick = await this.showOpenWithPrompt(resource, group);
if (!pick) {
return undefined; // {{SQL CARBON EDIT}} strict-nulls
}
return this.openWith(resource, pick, options, group);
}
private showOpenWithPrompt(
resource: URI,
group?: IEditorGroup,
): Promise<string | undefined> {
const customEditors = new CustomEditorInfoCollection([
defaultEditorInfo,
...this.getUserConfiguredCustomEditors(resource).allEditors,
...this.getContributedCustomEditors(resource).allEditors,
...this.getAllCustomEditors(resource).allEditors,
]);
let currentlyOpenedEditorType: undefined | string;
@@ -183,7 +202,7 @@ export class CustomEditorService extends Disposable implements ICustomEditorServ
picker.items = items;
picker.placeholder = nls.localize('promptOpenWith.placeHolder', "Select editor to use for '{0}'...", basename(resource));
const pick = await new Promise<string | undefined>(resolve => {
return new Promise<string | undefined>(resolve => {
picker.onDidAccept(() => {
resolve(picker.selectedItems.length === 1 ? picker.selectedItems[0].id : undefined);
picker.dispose();
@@ -215,12 +234,6 @@ export class CustomEditorService extends Disposable implements ICustomEditorServ
});
picker.show();
});
if (!pick) {
return undefined; // {{SQL CARBON EDIT}} strict-null-check
}
return this.openWith(resource, pick, options, group);
}
public openWith(
@@ -301,43 +314,64 @@ export class CustomEditorService extends Disposable implements ICustomEditorServ
return;
}
const possibleEditors = [
...this.getContributedCustomEditors(resource).allEditors,
...this.getUserConfiguredCustomEditors(resource).allEditors,
];
const possibleEditors = this.getAllCustomEditors(resource).allEditors;
this._customEditorContextKey.set(possibleEditors.map(x => x.id).join(','));
this._focusedCustomEditorIsEditable.set(activeEditorPane?.input instanceof CustomEditorInput);
this._webviewHasOwnEditFunctions.set(possibleEditors.length > 0);
}
private handleMovedFileInOpenedFileEditors(oldResource: URI, newResource: URI): void {
private async handleMovedFileInOpenedFileEditors(_oldResource: URI, newResource: URI): Promise<void> {
// See if the new resource can be opened in a custom editor
const possibleEditors = this.getAllCustomEditors(newResource).allEditors;
if (!possibleEditors.length) {
return;
}
// If so, check all editors to see if there are any file editors open for the new resource
const editorsToReplace = new Map<GroupIdentifier, IEditorInput[]>();
for (const group of this.editorGroupService.groups) {
for (const editor of group.editors) {
if (!(editor instanceof CustomEditorInput)) {
continue;
}
if (!isEqual(editor.resource, oldResource)) {
continue;
}
const editorInfo = this._editorInfoStore.get(editor.viewType);
if (!editorInfo?.matches(newResource)) {
continue;
}
const moveResult = editor.move(group.id, newResource);
const replacement = moveResult ? moveResult.editor : this.createInput(newResource, editor.viewType, group.id);
this.editorService.replaceEditors([{
editor: editor,
replacement: replacement,
options: {
preserveFocus: true
if (editor instanceof FileEditorInput
&& !(editor instanceof CustomEditorInput)
&& isEqual(editor.resource, newResource)
) {
let entry = editorsToReplace.get(group.id);
if (!entry) {
entry = [];
editorsToReplace.set(group.id, entry);
}
}], group);
entry.push(editor);
}
}
}
if (!editorsToReplace.size) {
return;
}
// If there is, show a single prompt for all editors to see if the user wants to re-open them
//
// TODO: instead of prompting eagerly, it'd likly be better to replace all the editors with
// ones that would prompt when they first become visible
await new Promise(resolve => setTimeout(resolve, 50));
const pickedViewType = await this.showOpenWithPrompt(newResource);
if (!pickedViewType) {
return;
}
for (const [group, entries] of editorsToReplace) {
this.editorService.replaceEditors(entries.map(editor => {
const replacement = this.createInput(newResource, pickedViewType, group);
return {
editor,
replacement,
options: {
preserveFocus: true,
}
};
}), group);
}
}
}

View File

@@ -26,6 +26,7 @@ export interface ICustomEditorService {
readonly models: ICustomEditorModelManager;
getCustomEditor(viewType: string): CustomEditorInfo | undefined;
getAllCustomEditors(resource: URI): CustomEditorInfoCollection;
getContributedCustomEditors(resource: URI): CustomEditorInfoCollection;
getUserConfiguredCustomEditors(resource: URI): CustomEditorInfoCollection;

View File

@@ -28,16 +28,18 @@ import { ResourceNavigator, WorkbenchAsyncDataTree } from 'vs/platform/list/brow
import { HighlightedLabel } from 'vs/base/browser/ui/highlightedlabel/highlightedLabel';
import { createMatches, FuzzyScore } from 'vs/base/common/filters';
import { Event } from 'vs/base/common/event';
import { dispose } from 'vs/base/common/lifecycle';
import { dispose, IDisposable } from 'vs/base/common/lifecycle';
import { ActionBar } from 'vs/base/browser/ui/actionbar/actionbar';
import { isSessionAttach } from 'vs/workbench/contrib/debug/common/debugUtils';
import { STOP_ID, STOP_LABEL, DISCONNECT_ID, DISCONNECT_LABEL, RESTART_SESSION_ID, RESTART_LABEL, STEP_OVER_ID, STEP_OVER_LABEL, STEP_INTO_LABEL, STEP_INTO_ID, STEP_OUT_LABEL, STEP_OUT_ID, PAUSE_ID, PAUSE_LABEL, CONTINUE_ID, CONTINUE_LABEL } from 'vs/workbench/contrib/debug/browser/debugCommands';
import { ICommandService } from 'vs/platform/commands/common/commands';
import { CollapseAction } from 'vs/workbench/browser/viewlet';
import { IViewDescriptorService } from 'vs/workbench/common/views';
import { textLinkForeground } from 'vs/platform/theme/common/colorRegistry';
import { IThemeService } from 'vs/platform/theme/common/themeService';
import { IOpenerService } from 'vs/platform/opener/common/opener';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { attachStylerCallback } from 'vs/platform/theme/common/styler';
const $ = dom.$;
@@ -170,8 +172,8 @@ export class CallStackView extends ViewPane {
new ThreadsRenderer(this.instantiationService),
this.instantiationService.createInstance(StackFramesRenderer),
new ErrorsRenderer(),
new LoadMoreRenderer(),
new ShowMoreRenderer()
new LoadMoreRenderer(this.themeService),
new ShowMoreRenderer(this.themeService)
], this.dataSource, {
accessibilityProvider: new CallStackAccessibilityProvider(),
ariaLabel: nls.localize({ comment: ['Debug is a noun in this context, not a verb.'], key: 'callStackAriaLabel' }, "Debug Call Stack"),
@@ -408,6 +410,7 @@ interface IErrorTemplateData {
interface ILabelTemplateData {
label: HTMLElement;
toDispose: IDisposable;
}
interface IStackFrameTemplateData {
@@ -433,6 +436,7 @@ class SessionsRenderer implements ITreeRenderer<IDebugSession, FuzzyScore, ISess
renderTemplate(container: HTMLElement): ISessionTemplateData {
const session = dom.append(container, $('.session'));
dom.append(session, $('.codicon.codicon-bug'));
const name = dom.append(session, $('.name'));
const state = dom.append(session, $('.state'));
const stateLabel = dom.append(state, $('span.label'));
@@ -594,14 +598,21 @@ class LoadMoreRenderer implements ITreeRenderer<ThreadAndSessionIds, FuzzyScore,
static readonly ID = 'loadMore';
static readonly LABEL = nls.localize('loadMoreStackFrames', "Load More Stack Frames");
constructor(private readonly themeService: IThemeService) { }
get templateId(): string {
return LoadMoreRenderer.ID;
}
renderTemplate(container: HTMLElement): IErrorTemplateData {
renderTemplate(container: HTMLElement): ILabelTemplateData {
const label = dom.append(container, $('.load-more'));
const toDispose = attachStylerCallback(this.themeService, { textLinkForeground }, colors => {
if (colors.textLinkForeground) {
label.style.color = colors.textLinkForeground.toString();
}
});
return { label };
return { label, toDispose };
}
renderElement(element: ITreeNode<ThreadAndSessionIds, FuzzyScore>, index: number, data: ILabelTemplateData): void {
@@ -609,21 +620,29 @@ class LoadMoreRenderer implements ITreeRenderer<ThreadAndSessionIds, FuzzyScore,
}
disposeTemplate(templateData: ILabelTemplateData): void {
// noop
templateData.toDispose.dispose();
}
}
class ShowMoreRenderer implements ITreeRenderer<IStackFrame[], FuzzyScore, ILabelTemplateData> {
static readonly ID = 'showMore';
constructor(private readonly themeService: IThemeService) { }
get templateId(): string {
return ShowMoreRenderer.ID;
}
renderTemplate(container: HTMLElement): IErrorTemplateData {
renderTemplate(container: HTMLElement): ILabelTemplateData {
const label = dom.append(container, $('.show-more'));
const toDispose = attachStylerCallback(this.themeService, { textLinkForeground }, colors => {
if (colors.textLinkForeground) {
label.style.color = colors.textLinkForeground.toString();
}
});
return { label };
return { label, toDispose };
}
renderElement(element: ITreeNode<IStackFrame[], FuzzyScore>, index: number, data: ILabelTemplateData): void {
@@ -636,18 +655,20 @@ class ShowMoreRenderer implements ITreeRenderer<IStackFrame[], FuzzyScore, ILabe
}
disposeTemplate(templateData: ILabelTemplateData): void {
// noop
templateData.toDispose.dispose();
}
}
class CallStackDelegate implements IListVirtualDelegate<CallStackItem> {
getHeight(element: CallStackItem): number {
if (element instanceof StackFrame) {
if (!element.source || !element.source.available || isDeemphasized(element)) {
return 12;
}
if (element instanceof StackFrame && element.presentationHint === 'label') {
return 12;
}
if (element instanceof ThreadAndSessionIds || element instanceof Array) {
return 12;
}
return 22;
}

View File

@@ -54,6 +54,8 @@ export class DebugSession implements IDebugSession {
private readonly _onDidLoadedSource = new Emitter<LoadedSourceEvent>();
private readonly _onDidCustomEvent = new Emitter<DebugProtocol.Event>();
private readonly _onDidProgressStart = new Emitter<DebugProtocol.ProgressStartEvent>();
private readonly _onDidProgressEnd = new Emitter<DebugProtocol.ProgressEndEvent>();
private readonly _onDidChangeREPLElements = new Emitter<void>();
@@ -184,6 +186,14 @@ export class DebugSession implements IDebugSession {
return this._onDidLoadedSource.event;
}
get onDidProgressStart(): Event<DebugProtocol.ProgressStartEvent> {
return this._onDidProgressStart.event;
}
get onDidProgressEnd(): Event<DebugProtocol.ProgressEndEvent> {
return this._onDidProgressEnd.event;
}
//---- DAP requests
/**
@@ -213,7 +223,8 @@ export class DebugSession implements IDebugSession {
supportsVariableType: true, // #8858
supportsVariablePaging: true, // #9537
supportsRunInTerminalRequest: true, // #10574
locale: platform.locale
locale: platform.locale,
supportsProgressReporting: true // #92253
});
this.initialized = true;
@@ -913,6 +924,13 @@ export class DebugSession implements IDebugSession {
this._onDidCustomEvent.fire(event);
}));
this.rawListeners.push(this.raw.onDidProgressStart(event => {
this._onDidProgressStart.fire(event);
}));
this.rawListeners.push(this.raw.onDidProgressEnd(event => {
this._onDidProgressEnd.fire(event);
}));
this.rawListeners.push(this.raw.onDidExitAdapter(event => {
this.initialized = true;
this.model.setBreakpointSessionData(this.getId(), this.capabilities, undefined);

View File

@@ -161,6 +161,11 @@
display: initial;
}
.debug-pane .debug-call-stack .session .codicon {
line-height: 22px;
margin-right: 2px;
}
.monaco-workbench .debug-pane .debug-call-stack .monaco-action-bar .action-item > .action-label {
width: 16px;
height: 100%;
@@ -234,13 +239,12 @@
}
.debug-pane .debug-call-stack .load-more {
font-style: italic;
text-align: center;
}
.debug-pane .debug-call-stack .show-more {
font-style: italic;
opacity: 0.35;
text-align: center;
}
.debug-pane .debug-call-stack .error {

View File

@@ -56,20 +56,22 @@ export class RawDebugSession implements IDisposable {
private didReceiveStoppedEvent = false;
// DAP events
private readonly _onDidInitialize: Emitter<DebugProtocol.InitializedEvent>;
private readonly _onDidStop: Emitter<DebugProtocol.StoppedEvent>;
private readonly _onDidContinued: Emitter<DebugProtocol.ContinuedEvent>;
private readonly _onDidTerminateDebugee: Emitter<DebugProtocol.TerminatedEvent>;
private readonly _onDidExitDebugee: Emitter<DebugProtocol.ExitedEvent>;
private readonly _onDidThread: Emitter<DebugProtocol.ThreadEvent>;
private readonly _onDidOutput: Emitter<DebugProtocol.OutputEvent>;
private readonly _onDidBreakpoint: Emitter<DebugProtocol.BreakpointEvent>;
private readonly _onDidLoadedSource: Emitter<DebugProtocol.LoadedSourceEvent>;
private readonly _onDidCustomEvent: Emitter<DebugProtocol.Event>;
private readonly _onDidEvent: Emitter<DebugProtocol.Event>;
private readonly _onDidInitialize = new Emitter<DebugProtocol.InitializedEvent>();
private readonly _onDidStop = new Emitter<DebugProtocol.StoppedEvent>();
private readonly _onDidContinued = new Emitter<DebugProtocol.ContinuedEvent>();
private readonly _onDidTerminateDebugee = new Emitter<DebugProtocol.TerminatedEvent>();
private readonly _onDidExitDebugee = new Emitter<DebugProtocol.ExitedEvent>();
private readonly _onDidThread = new Emitter<DebugProtocol.ThreadEvent>();
private readonly _onDidOutput = new Emitter<DebugProtocol.OutputEvent>();
private readonly _onDidBreakpoint = new Emitter<DebugProtocol.BreakpointEvent>();
private readonly _onDidLoadedSource = new Emitter<DebugProtocol.LoadedSourceEvent>();
private readonly _onDidProgressStart = new Emitter<DebugProtocol.ProgressStartEvent>();
private readonly _onDidProgressEnd = new Emitter<DebugProtocol.ProgressEndEvent>();
private readonly _onDidCustomEvent = new Emitter<DebugProtocol.Event>();
private readonly _onDidEvent = new Emitter<DebugProtocol.Event>();
// DA events
private readonly _onDidExitAdapter: Emitter<AdapterEndEvent>;
private readonly _onDidExitAdapter = new Emitter<AdapterEndEvent>();
private debugAdapter: IDebugAdapter | null;
private toDispose: IDisposable[] = [];
@@ -86,20 +88,6 @@ export class RawDebugSession implements IDisposable {
this.debugAdapter = debugAdapter;
this._capabilities = Object.create(null);
this._onDidInitialize = new Emitter<DebugProtocol.InitializedEvent>();
this._onDidStop = new Emitter<DebugProtocol.StoppedEvent>();
this._onDidContinued = new Emitter<DebugProtocol.ContinuedEvent>();
this._onDidTerminateDebugee = new Emitter<DebugProtocol.TerminatedEvent>();
this._onDidExitDebugee = new Emitter<DebugProtocol.ExitedEvent>();
this._onDidThread = new Emitter<DebugProtocol.ThreadEvent>();
this._onDidOutput = new Emitter<DebugProtocol.OutputEvent>();
this._onDidBreakpoint = new Emitter<DebugProtocol.BreakpointEvent>();
this._onDidLoadedSource = new Emitter<DebugProtocol.LoadedSourceEvent>();
this._onDidCustomEvent = new Emitter<DebugProtocol.Event>();
this._onDidEvent = new Emitter<DebugProtocol.Event>();
this._onDidExitAdapter = new Emitter<AdapterEndEvent>();
this.toDispose.push(this.debugAdapter.onError(err => {
this.shutdown(err);
}));
@@ -151,6 +139,12 @@ export class RawDebugSession implements IDisposable {
case 'exit':
this._onDidExitDebugee.fire(<DebugProtocol.ExitedEvent>event);
break;
case 'progressStart':
this._onDidProgressStart.fire(event as DebugProtocol.ProgressStartEvent);
break;
case 'progressEnd':
this._onDidProgressEnd.fire(event as DebugProtocol.ProgressEndEvent);
break;
default:
this._onDidCustomEvent.fire(event);
break;
@@ -219,6 +213,14 @@ export class RawDebugSession implements IDisposable {
return this._onDidCustomEvent.event;
}
get onDidProgressStart(): Event<DebugProtocol.ProgressStartEvent> {
return this._onDidProgressStart.event;
}
get onDidProgressEnd(): Event<DebugProtocol.ProgressEndEvent> {
return this._onDidProgressEnd.event;
}
get onDidEvent(): Event<DebugProtocol.Event> {
return this._onDidEvent.event;
}

View File

@@ -199,6 +199,8 @@ export interface IDebugSession extends ITreeElement {
readonly onDidLoadedSource: Event<LoadedSourceEvent>;
readonly onDidCustomEvent: Event<DebugProtocol.Event>;
readonly onDidProgressStart: Event<DebugProtocol.ProgressStartEvent>;
readonly onDidProgressEnd: Event<DebugProtocol.ProgressEndEvent>;
// DAP request

View File

@@ -222,6 +222,14 @@ export class MockSession implements IDebugSession {
throw new Error('not implemented');
}
get onDidProgressStart(): Event<DebugProtocol.ProgressStartEvent> {
throw new Error('not implemented');
}
get onDidProgressEnd(): Event<DebugProtocol.ProgressEndEvent> {
throw new Error('not implemented');
}
setConfiguration(configuration: { resolved: IConfig, unresolved: IConfig }) { }
getAllThreads(): IThread[] {

View File

@@ -13,7 +13,7 @@ import { ICommandService } from 'vs/platform/commands/common/commands';
import { IIntegrityService } from 'vs/workbench/services/integrity/common/integrity';
import { IThemeService, registerThemingParticipant, IColorTheme, ICssStyleCollector } from 'vs/platform/theme/common/themeService';
import { attachButtonStyler, attachStylerCallback } from 'vs/platform/theme/common/styler';
import { editorWidgetBackground, editorWidgetForeground, widgetShadow, inputBorder, inputForeground, inputBackground, inputActiveOptionBorder, editorBackground, buttonBackground, contrastBorder, darken } from 'vs/platform/theme/common/colorRegistry';
import { editorWidgetBackground, editorWidgetForeground, widgetShadow, inputBorder, inputForeground, inputBackground, inputActiveOptionBorder, editorBackground, textLinkForeground, contrastBorder, darken } from 'vs/platform/theme/common/colorRegistry';
import { IAnchor } from 'vs/base/browser/ui/contextview/contextview';
import { Button } from 'vs/base/browser/ui/button/button';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
@@ -113,7 +113,7 @@ export class FeedbackDropdown extends Dropdown {
dom.append(this.feedbackForm, dom.$('h2.title')).textContent = nls.localize("label.sendASmile", "Tweet us your feedback.");
// Close Button (top right)
const closeBtn = dom.append(this.feedbackForm, dom.$('div.cancel'));
const closeBtn = dom.append(this.feedbackForm, dom.$('div.cancel.codicon.codicon-close'));
closeBtn.tabIndex = 0;
closeBtn.setAttribute('role', 'button');
closeBtn.title = nls.localize('close', "Close");
@@ -268,7 +268,8 @@ export class FeedbackDropdown extends Dropdown {
this.sendButton = new Button(buttonsContainer);
this.sendButton.enabled = false;
this.sendButton.label = nls.localize('tweet', "Tweet");
dom.addClass(this.sendButton.element, 'send');
dom.prepend(this.sendButton.element, dom.$('span.codicon.codicon-twitter'));
dom.addClasses(this.sendButton.element, 'send');
this.sendButton.element.title = nls.localize('tweetFeedback', "Tweet Feedback");
disposables.add(attachButtonStyler(this.sendButton, this.themeService));
@@ -432,7 +433,7 @@ registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) =
}
// Links
const linkColor = theme.getColor(buttonBackground) || theme.getColor(contrastBorder);
const linkColor = theme.getColor(textLinkForeground) || theme.getColor(contrastBorder);
if (linkColor) {
collector.addRule(`.monaco-workbench .feedback-form .content .channels a { color: ${linkColor}; }`);
}

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="3 3 16 16" enable-background="new 3 3 16 16"><polygon fill="#C5C5C5" points="12.597,11.042 15.4,13.845 13.844,15.4 11.042,12.598 8.239,15.4 6.683,13.845 9.485,11.042 6.683,8.239 8.238,6.683 11.042,9.486 13.845,6.683 15.4,8.239"/></svg>

Before

Width:  |  Height:  |  Size: 307 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="3 3 16 16" enable-background="new 3 3 16 16"><polygon fill="#424242" points="12.597,11.042 15.4,13.845 13.844,15.4 11.042,12.598 8.239,15.4 6.683,13.845 9.485,11.042 6.683,8.239 8.238,6.683 11.042,9.486 13.845,6.683 15.4,8.239"/></svg>

Before

Width:  |  Height:  |  Size: 307 B

View File

@@ -91,6 +91,7 @@
padding: .5em;
width: 22px;
height: 22px;
line-height: 22px;
border: none;
cursor: pointer;
}
@@ -119,10 +120,6 @@
border: 1px solid transparent;
}
.vs .monaco-workbench .feedback-form .cancel {
background: url('close.svg') center center no-repeat;
}
.monaco-workbench .feedback-form .form-buttons {
display: flex;
}
@@ -138,15 +135,19 @@
.monaco-workbench .feedback-form .form-buttons .send {
width: auto;
background-image: url('twitter.svg');
background-position: 12px center;
background-size: 20px;
background-repeat: no-repeat;
padding: 8px 12px 8px 38px;
padding: 8px 12px;
margin-left: auto;
display: flex;
align-items: center;
transition: width 200ms ease-out;
}
.monaco-workbench .feedback-form .form-buttons .send .codicon {
color: currentColor;
font-size: 20px;
padding-right: 8px;
}
.monaco-workbench .feedback-form .form-buttons .send.in-progress,
.monaco-workbench .feedback-form .form-buttons .send:hover {
background-color: #006BB3;
@@ -179,11 +180,6 @@
font-family: inherit;
}
.vs-dark .monaco-workbench .feedback-form .cancel,
.hc-black .monaco-workbench .feedback-form .cancel {
background: url('close-dark.svg') center center no-repeat;
}
.monaco-workbench .feedback-form .sentiment.smile {
background-image: url('happy.svg');
background-position: center;
@@ -196,19 +192,6 @@
background-repeat: no-repeat;
}
.monaco-workbench .feedback-form .infotip {
background-image: url('info.svg');
background-position: center;
background-repeat: no-repeat;
height: 16px;
width: 16px;
display: inline-block;
vertical-align: text-bottom;
box-sizing: border-box;
margin-left: 5px;
}
/* High Contrast Theming */
.hc-black .monaco-workbench .feedback-form {
outline: 2px solid #6fc3df;
@@ -235,15 +218,3 @@
.hc-black .monaco-workbench .feedback-form .form-buttons .send:hover {
background-color: #0C141F;
}
.monaco-workbench .feedback-form .infotip {
background: none;
}
.monaco-workbench .feedback-form .infotip:before {
content: url('info.svg');
height: 16px;
width: 16px;
display: inline-block;
}

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M8 1c-3.865 0-7 3.135-7 7s3.135 7 7 7 7-3.135 7-7-3.135-7-7-7zm1 12h-2v-7h2v7zm0-8h-2v-2h2v2z" fill="#1BA1E2"/><path d="M7 6h2v7h-2v-7zm0-1h2v-2h-2v2z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 243 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>BrandTwitter_white_16x</title><path d="M16,16H0V0H16Z" fill="#f6f6f6" opacity="0"/><path d="M14.362,4.737l.01.425A9.276,9.276,0,0,1,5.032,14.5,9.293,9.293,0,0,1,0,13.027a6.67,6.67,0,0,0,.783.046A6.584,6.584,0,0,0,4.86,11.667a3.286,3.286,0,0,1-3.066-2.28,3.284,3.284,0,0,0,1.482-.056A3.284,3.284,0,0,1,.642,6.113V6.071a3.269,3.269,0,0,0,1.487.41A3.285,3.285,0,0,1,1.114,2.1,9.316,9.316,0,0,0,7.88,5.529a3.284,3.284,0,0,1,5.593-2.993,6.577,6.577,0,0,0,2.085-.8,3.292,3.292,0,0,1-1.443,1.816A6.574,6.574,0,0,0,16,3.038a6.685,6.685,0,0,1-1.638,1.7Z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 632 B

View File

@@ -68,6 +68,7 @@ import { IViewDescriptorService } from 'vs/workbench/common/views';
import { OpenSearchEditorAction, createEditorFromSearchResult } from 'vs/workbench/contrib/searchEditor/browser/searchEditorActions';
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { Orientation } from 'vs/base/browser/ui/sash/sash';
const $ = dom.$;
@@ -1181,7 +1182,7 @@ export class SearchView extends ViewPane {
}
if (!skipLayout && this.size) {
this.layout(this.size.height);
this.layout(this._orientation === Orientation.VERTICAL ? this.size.height : this.size.width);
}
}

View File

@@ -33,7 +33,7 @@ import { IOutputService } from 'vs/workbench/contrib/output/common/output';
import { StartStopProblemCollector, WatchingProblemCollector, ProblemCollectorEventKind, ProblemHandlingStrategy } from 'vs/workbench/contrib/tasks/common/problemCollectors';
import {
Task, CustomTask, ContributedTask, RevealKind, CommandOptions, ShellConfiguration, RuntimeType, PanelKind,
TaskEvent, TaskEventKind, ShellQuotingOptions, ShellQuoting, CommandString, CommandConfiguration, ExtensionTaskSource, TaskScope, RevealProblemKind, DependsOrder, TaskSourceKind
TaskEvent, TaskEventKind, ShellQuotingOptions, ShellQuoting, CommandString, CommandConfiguration, ExtensionTaskSource, TaskScope, RevealProblemKind, DependsOrder, TaskSourceKind, InMemoryTask
} from 'vs/workbench/contrib/tasks/common/tasks';
import {
ITaskSystem, ITaskSummary, ITaskExecuteResult, TaskExecuteKind, TaskError, TaskErrors, ITaskResolver,
@@ -250,10 +250,12 @@ export class TerminalTaskSystem implements ITaskSystem {
executeResult.promise.then(summary => {
this.lastTask = this.currentTask;
});
if (!this.instances[commonKey]) {
this.instances[commonKey] = new InstanceManager();
if (InMemoryTask.is(task) || !this.isTaskEmpty(task)) {
if (!this.instances[commonKey]) {
this.instances[commonKey] = new InstanceManager();
}
this.instances[commonKey].addInstance();
}
this.instances[commonKey].addInstance();
return executeResult;
} catch (error) {
if (error instanceof TaskError) {
@@ -606,8 +608,7 @@ export class TerminalTaskSystem implements ITaskSystem {
const resolvedVariables = this.resolveVariablesFromSet(systemInfo, workspaceFolder, task, variables, alreadyResolved);
return resolvedVariables.then((resolvedVariables) => {
const isCustomExecution = (task.command.runtime === RuntimeType.CustomExecution);
if (resolvedVariables && (task.command !== undefined) && task.command.runtime && (isCustomExecution || (task.command.name !== undefined))) {
if (resolvedVariables && !this.isTaskEmpty(task)) {
this.currentTask.resolvedVariables = resolvedVariables;
return this.executeInTerminal(task, trigger, new VariableResolver(workspaceFolder, systemInfo, resolvedVariables.variables, this.configurationResolverService), workspaceFolder);
} else {
@@ -620,6 +621,11 @@ export class TerminalTaskSystem implements ITaskSystem {
});
}
private isTaskEmpty(task: CustomTask | ContributedTask): boolean {
const isCustomExecution = (task.command.runtime === RuntimeType.CustomExecution);
return !((task.command !== undefined) && task.command.runtime && (isCustomExecution || (task.command.name !== undefined)));
}
private reexecuteCommand(task: CustomTask | ContributedTask, trigger: string, alreadyResolved: Map<string, string>): Promise<ITaskSummary> {
const lastTask = this.lastTask;
if (!lastTask) {

View File

@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import { equals } from 'vs/base/common/arrays';
import { CancellationToken } from 'vs/base/common/cancellation';
import { memoize } from 'vs/base/common/decorators';
import { Iterable } from 'vs/base/common/iterator';
import { Lazy } from 'vs/base/common/lazy';
@@ -90,6 +91,7 @@ export interface WebviewResolver {
resolveWebview(
webview: WebviewInput,
cancellation: CancellationToken,
): Promise<void>;
}
@@ -142,12 +144,12 @@ class RevivalPool {
this._awaitingRevival.push({ input, resolve });
}
public reviveFor(reviver: WebviewResolver) {
public reviveFor(reviver: WebviewResolver, cancellation: CancellationToken) {
const toRevive = this._awaitingRevival.filter(({ input }) => canRevive(reviver, input));
this._awaitingRevival = this._awaitingRevival.filter(({ input }) => !canRevive(reviver, input));
for (const { input, resolve } of toRevive) {
reviver.resolveWebview(input).then(resolve);
reviver.resolveWebview(input, cancellation).then(resolve);
}
}
}
@@ -235,7 +237,7 @@ export class WebviewEditorService implements IWebviewWorkbenchService {
reviver: WebviewResolver
): IDisposable {
this._revivers.add(reviver);
this._revivalPool.reviveFor(reviver);
this._revivalPool.reviveFor(reviver, CancellationToken.None);
return toDisposable(() => {
this._revivers.delete(reviver);
@@ -259,7 +261,7 @@ export class WebviewEditorService implements IWebviewWorkbenchService {
): Promise<boolean> {
for (const reviver of this._revivers.values()) {
if (canRevive(reviver, webview)) {
await reviver.resolveWebview(webview);
await reviver.resolveWebview(webview, CancellationToken.None);
return true;
}
}