Merge from vscode 2e5312cd61ff99c570299ecc122c52584265eda2

This commit is contained in:
ADS Merger
2020-04-23 02:50:35 +00:00
committed by Anthony Dresser
parent 3603f55d97
commit 7f1d8fc32f
659 changed files with 22709 additions and 12497 deletions

View File

@@ -12,7 +12,7 @@ import { Delayer } from 'vs/base/common/async';
import { KeyCode } from 'vs/base/common/keyCodes';
import { FindReplaceState, FindReplaceStateChangedEvent } from 'vs/editor/contrib/find/findState';
import { IMessage as InputBoxMessage } from 'vs/base/browser/ui/inputbox/inputBox';
import { SimpleButton } from 'vs/editor/contrib/find/findWidget';
import { SimpleButton, findCloseIcon, findNextMatchIcon, findPreviousMatchIcon, findReplaceIcon, findReplaceAllIcon } from 'vs/editor/contrib/find/findWidget';
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
import { editorWidgetBackground, inputActiveOptionBorder, inputActiveOptionBackground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, widgetShadow, editorWidgetForeground } from 'vs/platform/theme/common/colorRegistry';
@@ -90,8 +90,6 @@ export abstract class SimpleFindReplaceWidget extends Widget {
}
}
}));
this._toggleReplaceBtn.toggleClass('codicon-chevron-down', this._isReplaceVisible);
this._toggleReplaceBtn.toggleClass('codicon-chevron-right', !this._isReplaceVisible);
this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);
this._domNode.appendChild(this._toggleReplaceBtn.domNode);
@@ -147,7 +145,7 @@ export abstract class SimpleFindReplaceWidget extends Widget {
this.prevBtn = this._register(new SimpleButton({
label: NLS_PREVIOUS_MATCH_BTN_LABEL,
className: 'codicon codicon-arrow-up',
className: findPreviousMatchIcon.classNames,
onTrigger: () => {
this.find(true);
}
@@ -155,7 +153,7 @@ export abstract class SimpleFindReplaceWidget extends Widget {
this.nextBtn = this._register(new SimpleButton({
label: NLS_NEXT_MATCH_BTN_LABEL,
className: 'codicon codicon-arrow-down',
className: findNextMatchIcon.classNames,
onTrigger: () => {
this.find(false);
}
@@ -163,7 +161,7 @@ export abstract class SimpleFindReplaceWidget extends Widget {
const closeBtn = this._register(new SimpleButton({
label: NLS_CLOSE_BTN_LABEL,
className: 'codicon codicon-close',
className: findCloseIcon.classNames,
onTrigger: () => {
this.hide();
}
@@ -221,7 +219,7 @@ export abstract class SimpleFindReplaceWidget extends Widget {
this._replaceBtn = this._register(new SimpleButton({
label: NLS_REPLACE_BTN_LABEL,
className: 'codicon codicon-replace',
className: findReplaceIcon.classNames,
onTrigger: () => {
this.replaceOne();
}
@@ -230,7 +228,7 @@ export abstract class SimpleFindReplaceWidget extends Widget {
// Replace all button
this._replaceAllBtn = this._register(new SimpleButton({
label: NLS_REPLACE_ALL_BTN_LABEL,
className: 'codicon codicon-replace-all',
className: findReplaceAllIcon.classNames,
onTrigger: () => {
this.replaceAll();
}
@@ -315,8 +313,6 @@ export abstract class SimpleFindReplaceWidget extends Widget {
this._replaceAllBtn.setEnabled(this._isVisible && this._isReplaceVisible && findInputIsNonEmpty);
dom.toggleClass(this._domNode, 'replaceToggled', this._isReplaceVisible);
this._toggleReplaceBtn.toggleClass('codicon-chevron-right', !this._isReplaceVisible);
this._toggleReplaceBtn.toggleClass('codicon-chevron-down', this._isReplaceVisible);
this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);
}

View File

@@ -12,7 +12,7 @@ import { Delayer } from 'vs/base/common/async';
import { KeyCode } from 'vs/base/common/keyCodes';
import { FindReplaceState } from 'vs/editor/contrib/find/findState';
import { IMessage as InputBoxMessage } from 'vs/base/browser/ui/inputbox/inputBox';
import { SimpleButton } from 'vs/editor/contrib/find/findWidget';
import { SimpleButton, findPreviousMatchIcon, findNextMatchIcon, findCloseIcon } from 'vs/editor/contrib/find/findWidget';
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
import { editorWidgetBackground, inputActiveOptionBorder, inputActiveOptionBackground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, widgetShadow, editorWidgetForeground } from 'vs/platform/theme/common/colorRegistry';
@@ -94,7 +94,7 @@ export abstract class SimpleFindWidget extends Widget {
this.prevBtn = this._register(new SimpleButton({
label: NLS_PREVIOUS_MATCH_BTN_LABEL,
className: 'codicon codicon-arrow-up',
className: findPreviousMatchIcon.classNames,
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: 'codicon codicon-arrow-down',
className: findNextMatchIcon.classNames,
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: 'codicon codicon-close',
className: findCloseIcon.classNames,
onTrigger: () => {
this.hide();
}

View File

@@ -17,7 +17,7 @@ import { Position } from 'vs/editor/common/core/position';
import { Range } from 'vs/editor/common/core/range';
import { IEditorContribution } from 'vs/editor/common/editorCommon';
import { ITextModel } from 'vs/editor/common/model';
import { FontStyle, LanguageIdentifier, StandardTokenType, TokenMetadata, DocumentSemanticTokensProviderRegistry, SemanticTokensLegend, SemanticTokens, LanguageId, ColorId } from 'vs/editor/common/modes';
import { FontStyle, LanguageIdentifier, StandardTokenType, TokenMetadata, DocumentSemanticTokensProviderRegistry, SemanticTokensLegend, SemanticTokens, LanguageId, ColorId, DocumentRangeSemanticTokensProviderRegistry } from 'vs/editor/common/modes';
import { IModeService } from 'vs/editor/common/services/modeService';
import { INotificationService } from 'vs/platform/notification/common/notification';
import { editorHoverBackground, editorHoverBorder } from 'vs/platform/theme/common/colorRegistry';
@@ -240,7 +240,7 @@ class InspectEditorTokensWidget extends Disposable implements IContentWidget {
private _beginCompute(position: Position): void {
const grammar = this._textMateService.createGrammar(this._model.getLanguageIdentifier().language);
const semanticTokens = this._computeSemanticTokens();
const semanticTokens = this._computeSemanticTokens(position);
dom.clearNode(this._domNode);
this._domNode.appendChild(document.createTextNode(nls.localize('inspectTMScopesWidget.loading', "Loading...")));
@@ -307,7 +307,7 @@ class InspectEditorTokensWidget extends Disposable implements IContentWidget {
const properties: (keyof TokenStyleData)[] = ['foreground', 'bold', 'italic', 'underline'];
const propertiesByDefValue: { [rule: string]: string[] } = {};
const allDefValues = []; // remember the order
// first collect to detect when the same rule is used fro multiple properties
// first collect to detect when the same rule is used for multiple properties
for (let property of properties) {
if (semanticTokenInfo.metadata[property] !== undefined) {
const definition = semanticTokenInfo.definitions[property];
@@ -476,7 +476,7 @@ class InspectEditorTokensWidget extends Disposable implements IContentWidget {
return token && token.data;
}
private async _computeSemanticTokens(): Promise<SemanticTokensResult | null> {
private async _computeSemanticTokens(position: Position): Promise<SemanticTokensResult | null> {
if (!this._isSemanticColoringEnabled()) {
return null;
}
@@ -489,6 +489,16 @@ class InspectEditorTokensWidget extends Disposable implements IContentWidget {
return { tokens, legend: provider.getLegend() };
}
}
const rangeTokenProviders = DocumentRangeSemanticTokensProviderRegistry.ordered(this._model);
if (rangeTokenProviders.length) {
const provider = rangeTokenProviders[0];
const lineNumber = position.lineNumber;
const range = new Range(lineNumber, 1, lineNumber, this._model.getLineMaxColumn(lineNumber));
const tokens = await Promise.resolve(provider.provideDocumentRangeSemanticTokens(this._model, range, this._currentRequestCancellationTokenSource.token));
if (this.isSemanticTokens(tokens)) {
return { tokens, legend: provider.getLegend() };
}
}
return null;
}

View File

@@ -53,4 +53,4 @@ class InspectKeyMapJSON extends Action {
}
const registry = Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions);
registry.registerWorkbenchAction(SyncActionDescriptor.create(InspectKeyMapJSON, InspectKeyMapJSON.ID, InspectKeyMapJSON.LABEL), 'Developer: Inspect Key Mappings (JSON)', nls.localize('developer', "Developer"));
registry.registerWorkbenchAction(SyncActionDescriptor.from(InspectKeyMapJSON), 'Developer: Inspect Key Mappings (JSON)', nls.localize('developer', "Developer"));

View File

@@ -84,7 +84,7 @@ export class GotoLineAction extends Action {
}
}
Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions).registerWorkbenchAction(SyncActionDescriptor.create(GotoLineAction, GotoLineAction.ID, GotoLineAction.LABEL, {
Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions).registerWorkbenchAction(SyncActionDescriptor.from(GotoLineAction, {
primary: KeyMod.CtrlCmd | KeyCode.KEY_G,
mac: { primary: KeyMod.WinCtrl | KeyCode.KEY_G }
}), 'Go to Line/Column...');

View File

@@ -129,6 +129,6 @@ export class GotoSymbolAction extends Action {
}
}
Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions).registerWorkbenchAction(SyncActionDescriptor.create(GotoSymbolAction, GotoSymbolAction.ID, GotoSymbolAction.LABEL, {
Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions).registerWorkbenchAction(SyncActionDescriptor.from(GotoSymbolAction, {
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_O
}), 'Go to Symbol in Editor...');

View File

@@ -305,19 +305,19 @@ class CodeActionOnSaveParticipant implements ITextFileSaveParticipant {
private async applyOnSaveActions(model: ITextModel, codeActionsOnSave: readonly CodeActionKind[], excludes: readonly CodeActionKind[], progress: IProgress<IProgressStep>, token: CancellationToken): Promise<void> {
const getActionProgress = new class implements IProgress<CodeActionProvider> {
private _names: string[] = [];
private _names = new Set<string>();
private _report(): void {
progress.report({
message: localize(
'codeaction.get',
"Getting code actions from '{0}' ([configure](command:workbench.action.openSettings?%5B%22editor.codeActionsOnSave%22%5D)).",
this._names.map(name => `'${name}'`).join(', ')
[...this._names].map(name => `'${name}'`).join(', ')
)
});
}
report(provider: CodeActionProvider) {
if (provider.displayName) {
this._names.push(provider.displayName);
if (provider.displayName && !this._names.has(provider.displayName)) {
this._names.add(provider.displayName);
this._report();
}
}

View File

@@ -23,3 +23,8 @@
margin-top: 2px;
margin-left: 1px;
}
.suggest-input-container .monaco-editor,
.suggest-input-container .monaco-editor .lines-content {
background: none;
}

View File

@@ -212,6 +212,10 @@ export class SuggestEnabledInput extends Widget implements IThemable {
}));
}
public updateAriaLabel(label: string): void {
this.inputWidget.updateOptions({ ariaLabel: label });
}
public get onFocus(): Event<void> { return this.inputWidget.onDidFocusEditorText; }
public setValue(val: string) {
@@ -228,8 +232,7 @@ export class SuggestEnabledInput extends Widget implements IThemable {
public style(colors: ISuggestEnabledInputStyles): void {
this.placeholderText.style.backgroundColor =
this.stylingContainer.style.backgroundColor = colors.inputBackground ? colors.inputBackground.toString() : '';
this.stylingContainer.style.backgroundColor = colors.inputBackground ? colors.inputBackground.toString() : '';
this.stylingContainer.style.color = colors.inputForeground ? colors.inputForeground.toString() : '';
this.placeholderText.style.color = colors.inputPlaceholderForeground ? colors.inputPlaceholderForeground.toString() : '';
@@ -295,7 +298,6 @@ registerThemingParticipant((theme, collector) => {
const backgroundColor = theme.getColor(inputBackground);
if (backgroundColor) {
collector.addRule(`.suggest-input-container .monaco-editor-background { background-color: ${backgroundColor}; } `);
collector.addRule(`.suggest-input-container .monaco-editor { background-color: ${backgroundColor}; } `);
}
});

View File

@@ -79,7 +79,7 @@ export class ToggleColumnSelectionAction extends Action {
}
const registry = Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions);
registry.registerWorkbenchAction(SyncActionDescriptor.create(ToggleColumnSelectionAction, ToggleColumnSelectionAction.ID, ToggleColumnSelectionAction.LABEL), 'Toggle Column Selection Mode');
registry.registerWorkbenchAction(SyncActionDescriptor.from(ToggleColumnSelectionAction), 'Toggle Column Selection Mode');
MenuRegistry.appendMenuItem(MenuId.MenubarSelectionMenu, {
group: '4_config',

View File

@@ -30,7 +30,7 @@ export class ToggleMinimapAction extends Action {
}
const registry = Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions);
registry.registerWorkbenchAction(SyncActionDescriptor.create(ToggleMinimapAction, ToggleMinimapAction.ID, ToggleMinimapAction.LABEL), 'View: Toggle Minimap', nls.localize('view', "View"));
registry.registerWorkbenchAction(SyncActionDescriptor.from(ToggleMinimapAction), 'View: Toggle Minimap', nls.localize('view', "View"));
/* {{SQL CARBON EDIT}} - Disable unused menu item
MenuRegistry.appendMenuItem(MenuId.MenubarViewMenu, {

View File

@@ -68,7 +68,7 @@ Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench).regi
const registry = Registry.as<IWorkbenchActionRegistry>(Extensions.WorkbenchActions);
registry.registerWorkbenchAction(SyncActionDescriptor.create(ToggleMultiCursorModifierAction, ToggleMultiCursorModifierAction.ID, ToggleMultiCursorModifierAction.LABEL), 'Toggle Multi-Cursor Modifier');
registry.registerWorkbenchAction(SyncActionDescriptor.from(ToggleMultiCursorModifierAction), 'Toggle Multi-Cursor Modifier');
MenuRegistry.appendMenuItem(MenuId.MenubarSelectionMenu, {
group: '4_config',
command: {

View File

@@ -31,7 +31,7 @@ export class ToggleRenderControlCharacterAction extends Action {
}
const registry = Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions);
registry.registerWorkbenchAction(SyncActionDescriptor.create(ToggleRenderControlCharacterAction, ToggleRenderControlCharacterAction.ID, ToggleRenderControlCharacterAction.LABEL), 'View: Toggle Control Characters', nls.localize('view', "View"));
registry.registerWorkbenchAction(SyncActionDescriptor.from(ToggleRenderControlCharacterAction), 'View: Toggle Control Characters', nls.localize('view', "View"));
/* {{SQL CARBON EDIT}} - Disable unused menu item
MenuRegistry.appendMenuItem(MenuId.MenubarViewMenu, {

View File

@@ -39,7 +39,7 @@ export class ToggleRenderWhitespaceAction extends Action {
}
const registry = Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions);
registry.registerWorkbenchAction(SyncActionDescriptor.create(ToggleRenderWhitespaceAction, ToggleRenderWhitespaceAction.ID, ToggleRenderWhitespaceAction.LABEL), 'View: Toggle Render Whitespace', nls.localize('view', "View"));
registry.registerWorkbenchAction(SyncActionDescriptor.from(ToggleRenderWhitespaceAction), 'View: Toggle Render Whitespace', nls.localize('view', "View"));
/* {{SQL CARBON EDIT}} - Disable unused menu item
MenuRegistry.appendMenuItem(MenuId.MenubarViewMenu, {