mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-10 18:22:34 -05:00
Merge from vscode 2e5312cd61ff99c570299ecc122c52584265eda2
This commit is contained in:
committed by
Anthony Dresser
parent
3603f55d97
commit
7f1d8fc32f
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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...');
|
||||
|
||||
@@ -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...');
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,3 +23,8 @@
|
||||
margin-top: 2px;
|
||||
margin-left: 1px;
|
||||
}
|
||||
|
||||
.suggest-input-container .monaco-editor,
|
||||
.suggest-input-container .monaco-editor .lines-content {
|
||||
background: none;
|
||||
}
|
||||
|
||||
@@ -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}; } `);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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, {
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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, {
|
||||
|
||||
@@ -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, {
|
||||
|
||||
Reference in New Issue
Block a user