mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-03-30 00:30:29 -04:00
Merge from vscode 2a36b7d0d527bf408bae4f96b8386db9d9455113 (#10237)
This commit is contained in:
@@ -91,7 +91,7 @@ export class NativeBackupTracker extends BackupTracker implements IWorkbenchCont
|
||||
|
||||
// we ran a backup but received an error that we show to the user
|
||||
if (backupError) {
|
||||
this.showErrorDialog(localize('backupTrackerBackupFailed', "One or many editors that are dirty could not be saved to the backup location."), backupError);
|
||||
this.showErrorDialog(localize('backupTrackerBackupFailed', "One or more dirty editors could not be saved to the back up location."), backupError);
|
||||
|
||||
return true; // veto (the backup failed)
|
||||
}
|
||||
@@ -101,7 +101,7 @@ export class NativeBackupTracker extends BackupTracker implements IWorkbenchCont
|
||||
try {
|
||||
return await this.confirmBeforeShutdown(workingCopies.filter(workingCopy => backups.indexOf(workingCopy) === -1));
|
||||
} catch (error) {
|
||||
this.showErrorDialog(localize('backupTrackerConfirmFailed', "One or many editors that are dirty could not be saved or reverted."), error);
|
||||
this.showErrorDialog(localize('backupTrackerConfirmFailed', "One or more dirty editors could not be saved or reverted."), error);
|
||||
|
||||
return true; // veto (save or revert failed)
|
||||
}
|
||||
|
||||
@@ -119,6 +119,10 @@ export class CustomEditorInput extends LazilyResolvedWebviewEditorInput {
|
||||
}
|
||||
|
||||
public isSaving(): boolean {
|
||||
if (this.isUntitled()) {
|
||||
return false; // untitled is never saving automatically
|
||||
}
|
||||
|
||||
if (!this.isDirty()) {
|
||||
return false; // the editor needs to be dirty for being saved
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
// {{SQL CARBON EDIT}}
|
||||
import {
|
||||
IExtensionManagementService, IExtensionGalleryService, ILocalExtension, IGalleryExtension, IQueryOptions,
|
||||
InstallExtensionEvent, DidInstallExtensionEvent, DidUninstallExtensionEvent, IExtensionIdentifier, InstallOperation
|
||||
InstallExtensionEvent, DidInstallExtensionEvent, DidUninstallExtensionEvent, IExtensionIdentifier, InstallOperation, DefaultIconPath
|
||||
} from 'vs/platform/extensionManagement/common/extensionManagement';
|
||||
import { IWorkbenchExtensionEnablementService, EnablementState, IExtensionManagementServerService, IExtensionManagementServer } from 'vs/workbench/services/extensionManagement/common/extensionManagement';
|
||||
import { getGalleryExtensionTelemetryData, getLocalExtensionTelemetryData, areSameExtensions, getMaliciousExtensionsSet, groupByExtension, ExtensionIdentifierWithVersion } from 'vs/platform/extensionManagement/common/extensionManagementUtil';
|
||||
@@ -172,7 +172,7 @@ class Extension implements IExtension {
|
||||
}
|
||||
}
|
||||
}
|
||||
return require.toUrl('./media/defaultIcon.png');
|
||||
return DefaultIconPath;
|
||||
}
|
||||
|
||||
get repository(): string | undefined {
|
||||
|
||||
@@ -205,7 +205,7 @@ configurationRegistry.registerConfiguration({
|
||||
'properties': {
|
||||
[FILES_EXCLUDE_CONFIG]: {
|
||||
'type': 'object',
|
||||
'markdownDescription': nls.localize('exclude', "Configure glob patterns for excluding files and folders. For example, the files explorer decides which files and folders to show or hide based on this setting. Refer to the `#search.exclude#` setting to define search specific excludes. Read more about glob patterns [here](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)."),
|
||||
'markdownDescription': nls.localize('exclude', "Configure glob patterns for excluding files and folders. For example, the file Explorer decides which files and folders to show or hide based on this setting. Refer to the `#search.exclude#` setting to define search specific excludes. Read more about glob patterns [here](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)."),
|
||||
'default': { '**/.git': true, '**/.svn': true, '**/.hg': true, '**/CVS': true, '**/.DS_Store': true },
|
||||
'scope': ConfigurationScope.RESOURCE,
|
||||
'additionalProperties': {
|
||||
@@ -321,10 +321,10 @@ configurationRegistry.registerConfiguration({
|
||||
'markdownDescription': nls.localize('maxMemoryForLargeFilesMB', "Controls the memory available to Azure Data Studio after restart when trying to open large files. Same effect as specifying `--max-memory=NEWSIZE` on the command line."), // {{SQL CARBON EDIT}} Change product name to ADS
|
||||
included: platform.isNative
|
||||
},
|
||||
'files.maxMemoryForClosedFilesUndoStackMB': {
|
||||
'type': 'number',
|
||||
'default': 20,
|
||||
'markdownDescription': nls.localize('maxMemoryForClosedFilesUndoStackMB', "Controls the maximum ammount of memory the undo stack should hold for files that have been closed.")
|
||||
'files.restoreUndoStack': {
|
||||
'type': 'boolean',
|
||||
'description': nls.localize('files.restoreUndoStack', "Restore the undo stack when a file is reopened."),
|
||||
'default': true
|
||||
},
|
||||
'files.saveConflictResolution': {
|
||||
'type': 'string',
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
overflow: visible !important;
|
||||
} */
|
||||
|
||||
.monaco-workbench .part.editor > .content .notebook-editor .cell-list-container .monaco-editor-hover {
|
||||
.monaco-workbench .part.editor > .content .notebook-editor .cell-list-container .overflowingContentWidgets > div {
|
||||
z-index: 600 !important; /* @rebornix: larger than the editor title bar */
|
||||
}
|
||||
|
||||
|
||||
@@ -157,7 +157,15 @@ export class NotebookEditorInput extends EditorInput {
|
||||
return this.textModel?.isDirty() || false;
|
||||
}
|
||||
|
||||
isReadonly() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public isSaving(): boolean {
|
||||
if (this.isUntitled()) {
|
||||
return false; // untitled is never saving automatically
|
||||
}
|
||||
|
||||
if (!this.isDirty()) {
|
||||
return false; // the editor needs to be dirty for being saved
|
||||
}
|
||||
@@ -210,7 +218,7 @@ export class NotebookEditorInput extends EditorInput {
|
||||
}
|
||||
|
||||
async backup(): Promise<IWorkingCopyBackup> {
|
||||
return {};
|
||||
throw new Error();
|
||||
}
|
||||
|
||||
matches(otherInput: unknown): boolean {
|
||||
|
||||
@@ -233,7 +233,7 @@ abstract class AbstractCellRenderer {
|
||||
addMarkdownCell.tabIndex = 0;
|
||||
const insertMarkdownBelow = this.instantiationService.createInstance(InsertMarkdownCellAction);
|
||||
disposables.add(DOM.addDisposableListener(addMarkdownCell, DOM.EventType.CLICK, e => {
|
||||
this.actionRunner.run(insertMarkdownBelow, context);
|
||||
this.actionRunner.run(insertMarkdownBelow, toolbarContext);
|
||||
e.stopPropagation();
|
||||
}));
|
||||
|
||||
@@ -242,7 +242,7 @@ abstract class AbstractCellRenderer {
|
||||
if ((event.equals(KeyCode.Enter) || event.equals(KeyCode.Space))) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
this.actionRunner.run(insertMarkdownBelow, context);
|
||||
this.actionRunner.run(insertMarkdownBelow, toolbarContext);
|
||||
}
|
||||
})));
|
||||
|
||||
|
||||
@@ -40,7 +40,10 @@ export class CodeCell extends Disposable {
|
||||
const width = this.viewCell.layoutInfo.editorWidth;
|
||||
const lineNum = this.viewCell.lineCount;
|
||||
const lineHeight = this.viewCell.layoutInfo.fontInfo?.lineHeight || 17;
|
||||
const totalHeight = lineNum * lineHeight + EDITOR_TOP_PADDING + EDITOR_BOTTOM_PADDING;
|
||||
const totalHeight = this.viewCell.layoutInfo.editorHeight === 0
|
||||
? lineNum * lineHeight + EDITOR_TOP_PADDING + EDITOR_BOTTOM_PADDING
|
||||
: this.viewCell.layoutInfo.editorHeight;
|
||||
|
||||
this.layoutEditor(
|
||||
{
|
||||
width: width,
|
||||
|
||||
@@ -173,8 +173,7 @@ export class CodeCellViewModel extends BaseCellViewModel implements ICellViewMod
|
||||
|
||||
save() {
|
||||
if (this._textModel && !this._textModel.isDisposed() && this.editState === CellEditState.Editing) {
|
||||
let cnt = this._textModel.getLineCount();
|
||||
this.model.source = this._textModel.getLinesContent().map((str, index) => str + (index !== cnt - 1 ? '\n' : ''));
|
||||
this.model.source = this._textModel.getLinesContent();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,6 +184,7 @@ export class CodeCellViewModel extends BaseCellViewModel implements ICellViewMod
|
||||
this._buffer = this._textModel.getTextBuffer();
|
||||
this._register(ref);
|
||||
this._register(this._textModel.onDidChangeContent(() => {
|
||||
this.editState = CellEditState.Editing;
|
||||
this.model.contentChange();
|
||||
this._onDidChangeState.fire({ contentChanged: true });
|
||||
}));
|
||||
|
||||
@@ -808,7 +808,7 @@ configurationRegistry.registerConfiguration({
|
||||
'search.seedOnFocus': {
|
||||
type: 'boolean',
|
||||
default: false,
|
||||
description: nls.localize('search.seedOnFocus', "Update workspace seach query to the editor's selected text when focusing the search view. This happens either on click or when triggering the `workbench.views.search.focus` command.")
|
||||
description: nls.localize('search.seedOnFocus', "Update workspace search query to the editor's selected text when focusing the search view. This happens either on click or when triggering the `workbench.views.search.focus` command.")
|
||||
},
|
||||
'search.searchOnTypeDebouncePeriod': {
|
||||
type: 'number',
|
||||
|
||||
@@ -208,11 +208,11 @@ registry.registerWorkbenchAction(
|
||||
'Search Editor: Open New Search Editor to Side', category);
|
||||
|
||||
registry.registerWorkbenchAction(SyncActionDescriptor.from(RerunSearchEditorSearchAction,
|
||||
{ mac: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_R } }, ContextKeyExpr.and(SearchEditorConstants.InSearchEditor)),
|
||||
{ mac: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_R } }),
|
||||
'Search Editor: Search Again', category, SearchEditorConstants.InSearchEditor);
|
||||
|
||||
registry.registerWorkbenchAction(SyncActionDescriptor.from(FocusQueryEditorWidgetAction,
|
||||
{ primary: KeyCode.Escape }, ContextKeyExpr.and(SearchEditorConstants.InSearchEditor)),
|
||||
{ primary: KeyCode.Escape }),
|
||||
'Search Editor: Focus Query Editor Widget', category, SearchEditorConstants.InSearchEditor);
|
||||
//#endregion
|
||||
|
||||
|
||||
@@ -248,10 +248,7 @@ export class SearchEditor extends BaseTextEditor {
|
||||
}
|
||||
|
||||
focusSearchInput() {
|
||||
const viewState = this.loadViewState();
|
||||
if (viewState && viewState.focused === 'editor') {
|
||||
this.queryEditorWidget.searchInput.focus();
|
||||
}
|
||||
this.queryEditorWidget.searchInput.focus();
|
||||
}
|
||||
|
||||
focusNextInput() {
|
||||
|
||||
@@ -161,7 +161,7 @@ export class RerunSearchEditorSearchAction extends Action {
|
||||
|
||||
export class FocusQueryEditorWidgetAction extends Action {
|
||||
static readonly ID: string = Constants.FocusQueryEditorWidgetCommandId;
|
||||
static readonly LABEL = localize('search.action.focusQueryEditorWidget', "Focus Query Editor Widget");
|
||||
static readonly LABEL = localize('search.action.focusQueryEditorWidget', "Focus Search Editor Input");
|
||||
|
||||
constructor(id: string, label: string,
|
||||
@IEditorService private readonly editorService: IEditorService,
|
||||
|
||||
@@ -10,6 +10,7 @@ import { IWorkbenchContributionsRegistry, IWorkbenchContribution, Extensions as
|
||||
import { Registry } from 'vs/platform/registry/common/platform';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||
import { IStorageKeysSyncRegistryService } from 'vs/platform/userDataSync/common/storageKeys';
|
||||
import { ISurveyData, IProductService } from 'vs/platform/product/common/productService';
|
||||
import { LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle';
|
||||
import { Severity, INotificationService } from 'vs/platform/notification/common/notification';
|
||||
@@ -25,6 +26,7 @@ class LanguageSurvey extends Disposable {
|
||||
constructor(
|
||||
data: ISurveyData,
|
||||
storageService: IStorageService,
|
||||
storageKeysSyncRegistryService: IStorageKeysSyncRegistryService,
|
||||
notificationService: INotificationService,
|
||||
telemetryService: ITelemetryService,
|
||||
modelService: IModelService,
|
||||
@@ -41,6 +43,14 @@ class LanguageSurvey extends Disposable {
|
||||
const EDITED_LANGUAGE_COUNT_KEY = `${data.surveyId}.editedCount`;
|
||||
const EDITED_LANGUAGE_DATE_KEY = `${data.surveyId}.editedDate`;
|
||||
|
||||
// opt-in to syncing
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: SESSION_COUNT_KEY, version: 1 });
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: LAST_SESSION_DATE_KEY, version: 1 });
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: SKIP_VERSION_KEY, version: 1 });
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: IS_CANDIDATE_KEY, version: 1 });
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: EDITED_LANGUAGE_COUNT_KEY, version: 1 });
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: EDITED_LANGUAGE_DATE_KEY, version: 1 });
|
||||
|
||||
const skipVersion = storageService.get(SKIP_VERSION_KEY, StorageScope.GLOBAL, '');
|
||||
if (skipVersion) {
|
||||
return;
|
||||
@@ -131,6 +141,7 @@ class LanguageSurveysContribution implements IWorkbenchContribution {
|
||||
|
||||
constructor(
|
||||
@IStorageService storageService: IStorageService,
|
||||
@IStorageKeysSyncRegistryService storageKeysSyncRegistryService: IStorageKeysSyncRegistryService,
|
||||
@INotificationService notificationService: INotificationService,
|
||||
@ITelemetryService telemetryService: ITelemetryService,
|
||||
@IModelService modelService: IModelService,
|
||||
@@ -144,7 +155,7 @@ class LanguageSurveysContribution implements IWorkbenchContribution {
|
||||
|
||||
productService.surveys
|
||||
.filter(surveyData => surveyData.surveyId && surveyData.editCount && surveyData.languageId && surveyData.surveyUrl && surveyData.userProbability)
|
||||
.map(surveyData => new LanguageSurvey(surveyData, storageService, notificationService, telemetryService, modelService, textFileService, openerService, productService));
|
||||
.map(surveyData => new LanguageSurvey(surveyData, storageService, storageKeysSyncRegistryService, notificationService, telemetryService, modelService, textFileService, openerService, productService));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import { IWorkbenchContributionsRegistry, IWorkbenchContribution, Extensions as
|
||||
import { Registry } from 'vs/platform/registry/common/platform';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||
import { IStorageKeysSyncRegistryService } from 'vs/platform/userDataSync/common/storageKeys';
|
||||
import { IProductService } from 'vs/platform/product/common/productService';
|
||||
import { LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle';
|
||||
import { Severity, INotificationService } from 'vs/platform/notification/common/notification';
|
||||
@@ -26,6 +27,7 @@ class NPSContribution implements IWorkbenchContribution {
|
||||
|
||||
constructor(
|
||||
@IStorageService storageService: IStorageService,
|
||||
@IStorageKeysSyncRegistryService storageKeysSyncRegistryService: IStorageKeysSyncRegistryService,
|
||||
@INotificationService notificationService: INotificationService,
|
||||
@ITelemetryService telemetryService: ITelemetryService,
|
||||
@IOpenerService openerService: IOpenerService,
|
||||
@@ -35,6 +37,12 @@ class NPSContribution implements IWorkbenchContribution {
|
||||
return;
|
||||
}
|
||||
|
||||
// opt-in to syncing
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: SESSION_COUNT_KEY, version: 1 });
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: LAST_SESSION_DATE_KEY, version: 1 });
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: SKIP_VERSION_KEY, version: 1 });
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: IS_CANDIDATE_KEY, version: 1 });
|
||||
|
||||
const skipVersion = storageService.get(SKIP_VERSION_KEY, StorageScope.GLOBAL, '');
|
||||
if (skipVersion) {
|
||||
return;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import { Action, IAction } from 'vs/base/common/actions';
|
||||
import { EndOfLinePreference } from 'vs/editor/common/model';
|
||||
import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService';
|
||||
import { TERMINAL_VIEW_ID, ITerminalConfigHelper, TitleEventSource, TERMINAL_COMMAND_ID, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED, TERMINAL_ACTION_CATEGORY, KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_NOT_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_A11Y_TREE_FOCUS } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { TERMINAL_VIEW_ID, ITerminalConfigHelper, TitleEventSource, TERMINAL_COMMAND_ID, KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED, TERMINAL_ACTION_CATEGORY, KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED, KEYBINDING_CONTEXT_TERMINAL_FIND_NOT_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_A11Y_TREE_FOCUS } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { SelectActionViewItem } from 'vs/base/browser/ui/actionbar/actionbar';
|
||||
import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';
|
||||
import { attachSelectBoxStyler, attachStylerCallback } from 'vs/platform/theme/common/styler';
|
||||
@@ -834,7 +834,7 @@ export function registerTerminalActions() {
|
||||
category,
|
||||
keybinding: {
|
||||
primary: KeyCode.Escape,
|
||||
when: ContextKeyExpr.and(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_NOT_VISIBLE),
|
||||
when: ContextKeyExpr.and(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED, KEYBINDING_CONTEXT_TERMINAL_FIND_NOT_VISIBLE),
|
||||
weight: KeybindingWeight.WorkbenchContrib
|
||||
}
|
||||
});
|
||||
@@ -883,13 +883,13 @@ export function registerTerminalActions() {
|
||||
registerAction2(class extends Action2 {
|
||||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FIND_WIDGET_FOCUS,
|
||||
title: localize('workbench.action.terminal.focusFindWidget', "Focus Find Widget"),
|
||||
id: TERMINAL_COMMAND_ID.FIND_FOCUS,
|
||||
title: localize('workbench.action.terminal.focusFind', "Focus Find"),
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
primary: KeyMod.CtrlCmd | KeyCode.KEY_F,
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED, KEYBINDING_CONTEXT_TERMINAL_FOCUS),
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED, KEYBINDING_CONTEXT_TERMINAL_FOCUS),
|
||||
weight: KeybindingWeight.WorkbenchContrib
|
||||
}
|
||||
});
|
||||
@@ -901,14 +901,14 @@ export function registerTerminalActions() {
|
||||
registerAction2(class extends Action2 {
|
||||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.FIND_WIDGET_HIDE,
|
||||
title: localize('workbench.action.terminal.hideFindWidget', "Hide Find Widget"),
|
||||
id: TERMINAL_COMMAND_ID.FIND_HIDE,
|
||||
title: localize('workbench.action.terminal.hideFind', "Hide Find"),
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
primary: KeyCode.Escape,
|
||||
secondary: [KeyMod.Shift | KeyCode.Escape],
|
||||
when: ContextKeyExpr.and(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_VISIBLE),
|
||||
when: ContextKeyExpr.and(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_VISIBLE),
|
||||
weight: KeybindingWeight.WorkbenchContrib
|
||||
}
|
||||
});
|
||||
@@ -1159,13 +1159,13 @@ export function registerTerminalActions() {
|
||||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.TOGGLE_FIND_REGEX,
|
||||
title: localize('workbench.action.terminal.toggleFindRegex', "Toggle find using regex"),
|
||||
title: localize('workbench.action.terminal.toggleFindRegex', "Toggle Find Using Regex"),
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
primary: KeyMod.Alt | KeyCode.KEY_R,
|
||||
mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_R },
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED),
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED),
|
||||
weight: KeybindingWeight.WorkbenchContrib
|
||||
}
|
||||
});
|
||||
@@ -1179,13 +1179,13 @@ export function registerTerminalActions() {
|
||||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.TOGGLE_FIND_WHOLE_WORD,
|
||||
title: localize('workbench.action.terminal.toggleFindWholeWord', "Toggle find using whole word"),
|
||||
title: localize('workbench.action.terminal.toggleFindWholeWord', "Toggle Find Using Whole Word"),
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
primary: KeyMod.Alt | KeyCode.KEY_W,
|
||||
mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_W },
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED),
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED),
|
||||
weight: KeybindingWeight.WorkbenchContrib
|
||||
},
|
||||
});
|
||||
@@ -1199,13 +1199,13 @@ export function registerTerminalActions() {
|
||||
constructor() {
|
||||
super({
|
||||
id: TERMINAL_COMMAND_ID.TOGGLE_FIND_CASE_SENSITIVE,
|
||||
title: localize('workbench.action.terminal.toggleFindCaseSensitive', "Toggle find using case sensitive"),
|
||||
title: localize('workbench.action.terminal.toggleFindCaseSensitive', "Toggle Find Using Case Sensitive"),
|
||||
f1: true,
|
||||
category,
|
||||
keybinding: {
|
||||
primary: KeyMod.Alt | KeyCode.KEY_C,
|
||||
mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_C },
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED),
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED),
|
||||
weight: KeybindingWeight.WorkbenchContrib
|
||||
}
|
||||
});
|
||||
@@ -1226,12 +1226,12 @@ export function registerTerminalActions() {
|
||||
{
|
||||
primary: KeyCode.F3,
|
||||
mac: { primary: KeyMod.CtrlCmd | KeyCode.KEY_G, secondary: [KeyCode.F3] },
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED),
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED),
|
||||
weight: KeybindingWeight.WorkbenchContrib
|
||||
},
|
||||
{
|
||||
primary: KeyMod.Shift | KeyCode.Enter,
|
||||
when: KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED,
|
||||
when: KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED,
|
||||
weight: KeybindingWeight.WorkbenchContrib
|
||||
}
|
||||
]
|
||||
@@ -1252,12 +1252,12 @@ export function registerTerminalActions() {
|
||||
{
|
||||
primary: KeyMod.Shift | KeyCode.F3,
|
||||
mac: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_G, secondary: [KeyMod.Shift | KeyCode.F3] },
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED),
|
||||
when: ContextKeyExpr.or(KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED),
|
||||
weight: KeybindingWeight.WorkbenchContrib
|
||||
},
|
||||
{
|
||||
primary: KeyCode.Enter,
|
||||
when: KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED,
|
||||
when: KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED,
|
||||
weight: KeybindingWeight.WorkbenchContrib
|
||||
}
|
||||
]
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
import { SimpleFindWidget } from 'vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget';
|
||||
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
|
||||
import { KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_INPUT_FOCUSED, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { KEYBINDING_CONTEXT_TERMINAL_FIND_INPUT_FOCUSED, KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { FindReplaceState } from 'vs/editor/contrib/find/findState';
|
||||
import { ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal';
|
||||
@@ -24,8 +24,8 @@ export class TerminalFindWidget extends SimpleFindWidget {
|
||||
this._register(findState.onFindReplaceStateChange(() => {
|
||||
this.show();
|
||||
}));
|
||||
this._findInputFocused = KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_INPUT_FOCUSED.bindTo(this._contextKeyService);
|
||||
this._findWidgetFocused = KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED.bindTo(this._contextKeyService);
|
||||
this._findInputFocused = KEYBINDING_CONTEXT_TERMINAL_FIND_INPUT_FOCUSED.bindTo(this._contextKeyService);
|
||||
this._findWidgetFocused = KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED.bindTo(this._contextKeyService);
|
||||
}
|
||||
|
||||
public find(previous: boolean) {
|
||||
|
||||
@@ -1079,6 +1079,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
||||
|
||||
// Dispose the environment info widget if it exists
|
||||
this._environmentInfo?.disposable.dispose();
|
||||
this._environmentInfo = undefined;
|
||||
|
||||
if (!reset) {
|
||||
// HACK: Force initialText to be non-falsy for reused terminals such that the
|
||||
@@ -1410,6 +1411,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
||||
if (!info ||
|
||||
this._configHelper.config.environmentChangesIndicator === 'off' ||
|
||||
this._configHelper.config.environmentChangesIndicator === 'warnonly' && !info.requiresAction) {
|
||||
this._environmentInfo = undefined;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -245,12 +245,14 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce
|
||||
const env = terminalEnvironment.createTerminalEnvironment(shellLaunchConfig, lastActiveWorkspace, envFromConfigValue, this._configurationResolverService, isWorkspaceShellAllowed, this._productService.version, this._configHelper.config.detectLocale, baseEnv);
|
||||
|
||||
// Fetch any extension environment additions and apply them
|
||||
this._extEnvironmentVariableCollection = this._environmentVariableService.mergedCollection;
|
||||
this._register(this._environmentVariableService.onDidChangeCollections(newCollection => this._onEnvironmentVariableCollectionChange(newCollection)));
|
||||
this._extEnvironmentVariableCollection.applyToProcessEnvironment(env);
|
||||
if (this._extEnvironmentVariableCollection.map.size > 0) {
|
||||
this._environmentVariableInfo = new EnvironmentVariableInfoChangesActive(this._extEnvironmentVariableCollection);
|
||||
this._onEnvironmentVariableInfoChange.fire(this._environmentVariableInfo);
|
||||
if (!shellLaunchConfig.strictEnv) {
|
||||
this._extEnvironmentVariableCollection = this._environmentVariableService.mergedCollection;
|
||||
this._register(this._environmentVariableService.onDidChangeCollections(newCollection => this._onEnvironmentVariableCollectionChange(newCollection)));
|
||||
this._extEnvironmentVariableCollection.applyToProcessEnvironment(env);
|
||||
if (this._extEnvironmentVariableCollection.map.size > 0) {
|
||||
this._environmentVariableInfo = new EnvironmentVariableInfoChangesActive(this._extEnvironmentVariableCollection);
|
||||
this._onEnvironmentVariableInfoChange.fire(this._environmentVariableInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const useConpty = this._configHelper.config.windowsEnableConpty && !isScreenReaderModeEnabled;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as nls from 'vs/nls';
|
||||
import { TERMINAL_VIEW_ID, IShellLaunchConfig, ITerminalConfigHelper, ITerminalNativeService, ISpawnExtHostProcessRequest, IStartExtensionTerminalRequest, IAvailableShellsRequest, KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_IS_OPEN, ITerminalProcessExtHostProxy, IShellDefinition, LinuxDistro, KEYBINDING_CONTEXT_TERMINAL_SHELL_TYPE } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { TERMINAL_VIEW_ID, IShellLaunchConfig, ITerminalConfigHelper, ITerminalNativeService, ISpawnExtHostProcessRequest, IStartExtensionTerminalRequest, IAvailableShellsRequest, KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_FIND_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_IS_OPEN, ITerminalProcessExtHostProxy, IShellDefinition, LinuxDistro, KEYBINDING_CONTEXT_TERMINAL_SHELL_TYPE } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';
|
||||
import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle';
|
||||
@@ -121,7 +121,7 @@ export class TerminalService implements ITerminalService {
|
||||
}
|
||||
this._terminalFocusContextKey = KEYBINDING_CONTEXT_TERMINAL_FOCUS.bindTo(this._contextKeyService);
|
||||
this._terminalShellTypeContextKey = KEYBINDING_CONTEXT_TERMINAL_SHELL_TYPE.bindTo(this._contextKeyService);
|
||||
this._findWidgetVisible = KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_VISIBLE.bindTo(this._contextKeyService);
|
||||
this._findWidgetVisible = KEYBINDING_CONTEXT_TERMINAL_FIND_VISIBLE.bindTo(this._contextKeyService);
|
||||
this._configHelper = this._instantiationService.createInstance(TerminalConfigHelper, this._terminalNativeService?.linuxDistro || LinuxDistro.Unknown);
|
||||
this.onTabDisposed(tab => this._removeTab(tab));
|
||||
this.onActiveTabChanged(() => {
|
||||
|
||||
@@ -37,15 +37,15 @@ export const KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED = new RawContextKey<boole
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_TEXT_NOT_SELECTED = KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED.toNegated();
|
||||
|
||||
/** A context key that is set when the find widget in integrated terminal is visible. */
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_VISIBLE = new RawContextKey<boolean>('terminalFindWidgetVisible', false);
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_FIND_VISIBLE = new RawContextKey<boolean>('terminalFindVisible', false);
|
||||
/** A context key that is set when the find widget in integrated terminal is not visible. */
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_NOT_VISIBLE = KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_VISIBLE.toNegated();
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_FIND_NOT_VISIBLE = KEYBINDING_CONTEXT_TERMINAL_FIND_VISIBLE.toNegated();
|
||||
/** A context key that is set when the find widget find input in integrated terminal is focused. */
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_INPUT_FOCUSED = new RawContextKey<boolean>('terminalFindWidgetInputFocused', false);
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_FIND_INPUT_FOCUSED = new RawContextKey<boolean>('terminalFindInputFocused', false);
|
||||
/** A context key that is set when the find widget in integrated terminal is focused. */
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED = new RawContextKey<boolean>('terminalFindWidgetFocused', false);
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_FIND_FOCUSED = new RawContextKey<boolean>('terminalFindFocused', false);
|
||||
/** A context key that is set when the find widget find input in integrated terminal is not focused. */
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_INPUT_NOT_FOCUSED = KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_INPUT_FOCUSED.toNegated();
|
||||
export const KEYBINDING_CONTEXT_TERMINAL_FIND_INPUT_NOT_FOCUSED = KEYBINDING_CONTEXT_TERMINAL_FIND_INPUT_FOCUSED.toNegated();
|
||||
|
||||
export const IS_WORKSPACE_SHELL_ALLOWED_STORAGE_KEY = 'terminal.integrated.isWorkspaceShellAllowed';
|
||||
export const NEVER_MEASURE_RENDER_TIME_STORAGE_KEY = 'terminal.integrated.neverMeasureRenderTime';
|
||||
@@ -474,8 +474,8 @@ export const enum TERMINAL_COMMAND_ID {
|
||||
MANAGE_WORKSPACE_SHELL_PERMISSIONS = 'workbench.action.terminal.manageWorkspaceShellPermissions',
|
||||
RENAME = 'workbench.action.terminal.rename',
|
||||
RENAME_WITH_ARG = 'workbench.action.terminal.renameWithArg',
|
||||
FIND_WIDGET_FOCUS = 'workbench.action.terminal.focusFindWidget',
|
||||
FIND_WIDGET_HIDE = 'workbench.action.terminal.hideFindWidget',
|
||||
FIND_FOCUS = 'workbench.action.terminal.focusFind',
|
||||
FIND_HIDE = 'workbench.action.terminal.hideFind',
|
||||
QUICK_OPEN_TERM = 'workbench.action.quickOpenTerm',
|
||||
SCROLL_TO_PREVIOUS_COMMAND = 'workbench.action.terminal.scrollToPreviousCommand',
|
||||
SCROLL_TO_NEXT_COMMAND = 'workbench.action.terminal.scrollToNextCommand',
|
||||
@@ -501,8 +501,8 @@ export const DEFAULT_COMMANDS_TO_SKIP_SHELL: string[] = [
|
||||
TERMINAL_COMMAND_ID.DELETE_TO_LINE_START,
|
||||
TERMINAL_COMMAND_ID.DELETE_WORD_LEFT,
|
||||
TERMINAL_COMMAND_ID.DELETE_WORD_RIGHT,
|
||||
TERMINAL_COMMAND_ID.FIND_WIDGET_FOCUS,
|
||||
TERMINAL_COMMAND_ID.FIND_WIDGET_HIDE,
|
||||
TERMINAL_COMMAND_ID.FIND_FOCUS,
|
||||
TERMINAL_COMMAND_ID.FIND_HIDE,
|
||||
TERMINAL_COMMAND_ID.FIND_NEXT,
|
||||
TERMINAL_COMMAND_ID.FIND_PREVIOUS,
|
||||
TERMINAL_COMMAND_ID.TOGGLE_FIND_REGEX,
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
|
||||
<path d="M1024,1024H0V0H1024Z" fill="#f6f6f6" fill-opacity="0"/>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M582.813,821.171,558.39,811.078h-218.7L281.039,972.344,175.172,681.078l-47.313,130H42.7V874.61c0,82.436,133.634,149.265,298.65,149.265,98.328,0,185.57-23.688,239.93-60.453l-5.922-14.8-16.094-39.672-15.829-39.391,39.344-16.048,14.829-6.046c-.2-3.423-.282-6.751-.282-10.125s.078-6.8.282-10.125Z" fill="#008575"/>
|
||||
<path d="M469.32,469.266A209.424,209.424,0,0,1,386.164,452.5a210.842,210.842,0,0,1-92.828-75.656H42.7V768.437H98.016L175.172,556.2,281.039,847.469l28.805-79.032h248.5l1.046-2.749,16.047-39.672,16.094-39.859L631.25,702.5l8.718,3.624V469.266Z" fill="#008575"/>
|
||||
</g>
|
||||
<g opacity="0.25">
|
||||
<path d="M175.172,556.2,281.039,847.469l28.805-79.032h31.508V426.906a209.408,209.408,0,0,1-23.008-19.89,212.537,212.537,0,0,1-25.008-30.172H42.7V768.437H98.016Z" fill="#fff"/>
|
||||
<path d="M339.688,811.078,281.039,972.344,175.172,681.078l-47.313,130H42.7V874.61c0,82.436,133.634,149.265,298.65,149.265v-212.8Z" fill="#fff"/>
|
||||
</g>
|
||||
<path d="M469.32,469.266A209.424,209.424,0,0,1,386.164,452.5a212.329,212.329,0,0,1-67.82-45.484,215.513,215.513,0,0,1-45.555-67.7,210.416,210.416,0,0,1-16.8-83.375,221.318,221.318,0,0,1,1.125-22.359C133.234,251.8,42.7,309.031,42.7,376.844c0,82.484,133.673,149.359,298.65,149.359,95.164,0,179.859-22.3,234.507-56.937Z" fill="#b8d432"/>
|
||||
<path d="M469.32,469.266A209.424,209.424,0,0,1,386.164,452.5a212.329,212.329,0,0,1-67.82-45.484,215.513,215.513,0,0,1-45.555-67.7,210.416,210.416,0,0,1-16.8-83.375,221.318,221.318,0,0,1,1.125-22.359C133.234,251.8,42.7,309.031,42.7,376.844c0,82.484,133.673,149.359,298.65,149.359,95.164,0,179.859-22.3,234.507-56.937Z" fill="#008575"/>
|
||||
<path d="M852.3,170.625a126.119,126.119,0,0,1,50.139,10,132.135,132.135,0,0,1,41.048,27.156,126.539,126.539,0,0,1,27.64,40.516,129.321,129.321,0,0,1,.173,100.14,128.033,128.033,0,0,1-27.517,40.657,130.32,130.32,0,0,1-40.765,27.515,123.843,123.843,0,0,1-49.688,9.985H469.32a166.759,166.759,0,0,1-66.484-13.344,170.1,170.1,0,0,1-54.352-36.406,172.108,172.108,0,0,1-36.476-54.313,172.741,172.741,0,0,1,0-133.109,171.229,171.229,0,0,1,36.429-54.3A173.023,173.023,0,0,1,402.8,98.61,167.87,167.87,0,0,1,469.32,85.282,164.541,164.541,0,0,1,500.328,88.3a200.977,200.977,0,0,1,30.8-37.157,189.149,189.149,0,0,1,38.312-27.829A189.23,189.23,0,0,1,661.344,0a187.037,187.037,0,0,1,69.813,12.984,191.558,191.558,0,0,1,58.155,35.8,194.176,194.176,0,0,1,41.845,54.265A200.919,200.919,0,0,1,852.3,170.625Z" fill="#008575"/>
|
||||
<path d="M386.289,399.328a191.554,191.554,0,0,1,0-147.047A188.377,188.377,0,0,1,486.821,151.8a186.583,186.583,0,0,1,107.913-11.423A222.149,222.149,0,0,1,628.75,99.3a203.4,203.4,0,0,1,42.312-30.813,205.773,205.773,0,0,1,48.594-19.157,212.357,212.357,0,0,1,53.11-6.672c3.3,0,6.2.734,9.5.8a191.241,191.241,0,0,0-51.109-30.469A187.037,187.037,0,0,0,661.344,0a192.068,192.068,0,0,0-48.016,5.954,194.156,194.156,0,0,0-44.016,17.358,189.427,189.427,0,0,0-38.218,27.829A197.207,197.207,0,0,0,500.328,88.3a164.541,164.541,0,0,0-31.008-3.016A167.543,167.543,0,0,0,402.836,98.61a169.992,169.992,0,0,0-90.828,90.765,171.365,171.365,0,0,0,36.429,187.406c12.172,12.172,26.391,21.563,41.766,29.656C389.039,404.016,387.414,401.953,386.289,399.328Z" fill="#fff" opacity="0.2" style="isolation: isolate"/>
|
||||
<path d="M938.647,833.672a152.447,152.447,0,0,1-4.672,37.016l45.61,18.624L963.617,929l-46.063-19.016a149.169,149.169,0,0,1-51.891,52.062l19,45.564L844.991,1024l-18.766-45.656a149.9,149.9,0,0,1-74.015,0L733.569,1024l-39.64-16.39L712.9,962.046a144.7,144.7,0,0,1-52.015-52.062L614.866,929l-15.921-39.688,45.64-18.624a152.468,152.468,0,0,1-4.626-37.016,147.047,147.047,0,0,1,4.751-36.97l-45.735-18.718,15.97-39.64,46.062,18.922A148.589,148.589,0,0,1,712.975,705.3l-19-46.016,39.719-16.016,18.641,45.64a150.28,150.28,0,0,1,73.984,0l18.7-45.64,39.687,16.016L865.742,705.3a154.853,154.853,0,0,1,51.937,51.968l46.015-18.922,15.969,39.64L934.07,796.7A157.427,157.427,0,0,1,938.647,833.672ZM789.3,940.344A103.068,103.068,0,0,0,830.647,932a107.121,107.121,0,0,0,33.813-22.843,109.322,109.322,0,0,0,23-34.016,105.036,105.036,0,0,0,0-82.781,109.269,109.269,0,0,0-56.813-56.845,101.608,101.608,0,0,0-41.344-8.5,102.956,102.956,0,0,0-41.515,8.5,110.282,110.282,0,0,0-34.016,23,106.128,106.128,0,0,0-22.8,33.845,106.831,106.831,0,0,0,0,82.781A105.967,105.967,0,0,0,747.788,932,104.438,104.438,0,0,0,789.3,940.344Z" fill="#008575"/>
|
||||
<path d="M469.32,469.266A209.424,209.424,0,0,1,386.164,452.5a212.329,212.329,0,0,1-67.82-45.484,215.513,215.513,0,0,1-45.555-67.7,210.416,210.416,0,0,1-16.8-83.375,221.318,221.318,0,0,1,1.125-22.359C133.234,251.8,42.7,309.031,42.7,376.844c0,82.484,133.673,149.359,298.65,149.359,95.164,0,179.859-22.3,234.507-56.937Z" fill="#fff" opacity="0.55"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.8 KiB |
@@ -88,7 +88,7 @@ export class ReleaseNotesManager {
|
||||
this._currentReleaseNotes.webview.onDidClickLink(uri => this.onDidClickLink(URI.parse(uri)));
|
||||
this._currentReleaseNotes.onDispose(() => { this._currentReleaseNotes = undefined; });
|
||||
|
||||
const iconPath = URI.parse(require.toUrl('./media/code-icon.svg'));
|
||||
const iconPath = URI.parse(require.toUrl('vs/workbench/browser/media/code-icon.svg'));
|
||||
this._currentReleaseNotes.iconPath = {
|
||||
light: iconPath,
|
||||
dark: iconPath
|
||||
|
||||
@@ -136,8 +136,8 @@ export class ProductContribution implements IWorkbenchContribution {
|
||||
|
||||
// was there an update? if so, open release notes
|
||||
const releaseNotesUrl = productService.releaseNotesUrl;
|
||||
if (shouldShowReleaseNotes && releaseNotesUrl && lastVersion && productService.version !== lastVersion && productService.quality === 'stable') { // {{SQL CARBON EDIT}} Only show release notes for stable build) {
|
||||
/*showReleaseNotes(instantiationService, productService.version) {{SQL CARBON EDIT}} Prompt user to open release notes in browser until we can get ADS release notes from the web
|
||||
if (shouldShowReleaseNotes && !environmentService.skipReleaseNotes && releaseNotesUrl && lastVersion && productService.version !== lastVersion && productService.quality === 'stable') { // {{SQL CARBON EDIT}} Only show release notes for stable build) {
|
||||
/*showReleaseNotes(instantiationService, productService.version)
|
||||
.then(undefined, () => {*/
|
||||
notificationService.prompt(
|
||||
severity.Info,
|
||||
|
||||
@@ -102,8 +102,8 @@ export class DynamicWebviewEditorOverlay extends Disposable implements WebviewOv
|
||||
this.container.style.position = 'absolute';
|
||||
this.container.style.top = `${frameRect.top - containerRect.top}px`;
|
||||
this.container.style.left = `${frameRect.left - containerRect.left}px`;
|
||||
this.container.style.width = `${dimension ? dimension.width : frameRect.width}px`;
|
||||
this.container.style.height = `${dimension ? dimension.height : frameRect.height}px`;
|
||||
this.container.style.width = `${dimension && frameRect.width > 0 ? dimension.width : frameRect.width}px`;
|
||||
this.container.style.height = `${dimension && frameRect.height > 0 ? dimension.height : frameRect.height}px`;
|
||||
}
|
||||
|
||||
private show() {
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
|
||||
<path d="M1024,1024H0V0H1024Z" fill="#f6f6f6" fill-opacity="0"/>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M582.813,821.171,558.39,811.078h-218.7L281.039,972.344,175.172,681.078l-47.313,130H42.7V874.61c0,82.436,133.634,149.265,298.65,149.265,98.328,0,185.57-23.688,239.93-60.453l-5.922-14.8-16.094-39.672-15.829-39.391,39.344-16.048,14.829-6.046c-.2-3.423-.282-6.751-.282-10.125s.078-6.8.282-10.125Z" fill="#008575"/>
|
||||
<path d="M469.32,469.266A209.424,209.424,0,0,1,386.164,452.5a210.842,210.842,0,0,1-92.828-75.656H42.7V768.437H98.016L175.172,556.2,281.039,847.469l28.805-79.032h248.5l1.046-2.749,16.047-39.672,16.094-39.859L631.25,702.5l8.718,3.624V469.266Z" fill="#008575"/>
|
||||
</g>
|
||||
<g opacity="0.25">
|
||||
<path d="M175.172,556.2,281.039,847.469l28.805-79.032h31.508V426.906a209.408,209.408,0,0,1-23.008-19.89,212.537,212.537,0,0,1-25.008-30.172H42.7V768.437H98.016Z" fill="#fff"/>
|
||||
<path d="M339.688,811.078,281.039,972.344,175.172,681.078l-47.313,130H42.7V874.61c0,82.436,133.634,149.265,298.65,149.265v-212.8Z" fill="#fff"/>
|
||||
</g>
|
||||
<path d="M469.32,469.266A209.424,209.424,0,0,1,386.164,452.5a212.329,212.329,0,0,1-67.82-45.484,215.513,215.513,0,0,1-45.555-67.7,210.416,210.416,0,0,1-16.8-83.375,221.318,221.318,0,0,1,1.125-22.359C133.234,251.8,42.7,309.031,42.7,376.844c0,82.484,133.673,149.359,298.65,149.359,95.164,0,179.859-22.3,234.507-56.937Z" fill="#b8d432"/>
|
||||
<path d="M469.32,469.266A209.424,209.424,0,0,1,386.164,452.5a212.329,212.329,0,0,1-67.82-45.484,215.513,215.513,0,0,1-45.555-67.7,210.416,210.416,0,0,1-16.8-83.375,221.318,221.318,0,0,1,1.125-22.359C133.234,251.8,42.7,309.031,42.7,376.844c0,82.484,133.673,149.359,298.65,149.359,95.164,0,179.859-22.3,234.507-56.937Z" fill="#008575"/>
|
||||
<path d="M852.3,170.625a126.119,126.119,0,0,1,50.139,10,132.135,132.135,0,0,1,41.048,27.156,126.539,126.539,0,0,1,27.64,40.516,129.321,129.321,0,0,1,.173,100.14,128.033,128.033,0,0,1-27.517,40.657,130.32,130.32,0,0,1-40.765,27.515,123.843,123.843,0,0,1-49.688,9.985H469.32a166.759,166.759,0,0,1-66.484-13.344,170.1,170.1,0,0,1-54.352-36.406,172.108,172.108,0,0,1-36.476-54.313,172.741,172.741,0,0,1,0-133.109,171.229,171.229,0,0,1,36.429-54.3A173.023,173.023,0,0,1,402.8,98.61,167.87,167.87,0,0,1,469.32,85.282,164.541,164.541,0,0,1,500.328,88.3a200.977,200.977,0,0,1,30.8-37.157,189.149,189.149,0,0,1,38.312-27.829A189.23,189.23,0,0,1,661.344,0a187.037,187.037,0,0,1,69.813,12.984,191.558,191.558,0,0,1,58.155,35.8,194.176,194.176,0,0,1,41.845,54.265A200.919,200.919,0,0,1,852.3,170.625Z" fill="#008575"/>
|
||||
<path d="M386.289,399.328a191.554,191.554,0,0,1,0-147.047A188.377,188.377,0,0,1,486.821,151.8a186.583,186.583,0,0,1,107.913-11.423A222.149,222.149,0,0,1,628.75,99.3a203.4,203.4,0,0,1,42.312-30.813,205.773,205.773,0,0,1,48.594-19.157,212.357,212.357,0,0,1,53.11-6.672c3.3,0,6.2.734,9.5.8a191.241,191.241,0,0,0-51.109-30.469A187.037,187.037,0,0,0,661.344,0a192.068,192.068,0,0,0-48.016,5.954,194.156,194.156,0,0,0-44.016,17.358,189.427,189.427,0,0,0-38.218,27.829A197.207,197.207,0,0,0,500.328,88.3a164.541,164.541,0,0,0-31.008-3.016A167.543,167.543,0,0,0,402.836,98.61a169.992,169.992,0,0,0-90.828,90.765,171.365,171.365,0,0,0,36.429,187.406c12.172,12.172,26.391,21.563,41.766,29.656C389.039,404.016,387.414,401.953,386.289,399.328Z" fill="#fff" opacity="0.2" style="isolation: isolate"/>
|
||||
<path d="M938.647,833.672a152.447,152.447,0,0,1-4.672,37.016l45.61,18.624L963.617,929l-46.063-19.016a149.169,149.169,0,0,1-51.891,52.062l19,45.564L844.991,1024l-18.766-45.656a149.9,149.9,0,0,1-74.015,0L733.569,1024l-39.64-16.39L712.9,962.046a144.7,144.7,0,0,1-52.015-52.062L614.866,929l-15.921-39.688,45.64-18.624a152.468,152.468,0,0,1-4.626-37.016,147.047,147.047,0,0,1,4.751-36.97l-45.735-18.718,15.97-39.64,46.062,18.922A148.589,148.589,0,0,1,712.975,705.3l-19-46.016,39.719-16.016,18.641,45.64a150.28,150.28,0,0,1,73.984,0l18.7-45.64,39.687,16.016L865.742,705.3a154.853,154.853,0,0,1,51.937,51.968l46.015-18.922,15.969,39.64L934.07,796.7A157.427,157.427,0,0,1,938.647,833.672ZM789.3,940.344A103.068,103.068,0,0,0,830.647,932a107.121,107.121,0,0,0,33.813-22.843,109.322,109.322,0,0,0,23-34.016,105.036,105.036,0,0,0,0-82.781,109.269,109.269,0,0,0-56.813-56.845,101.608,101.608,0,0,0-41.344-8.5,102.956,102.956,0,0,0-41.515,8.5,110.282,110.282,0,0,0-34.016,23,106.128,106.128,0,0,0-22.8,33.845,106.831,106.831,0,0,0,0,82.781A105.967,105.967,0,0,0,747.788,932,104.438,104.438,0,0,0,789.3,940.344Z" fill="#008575"/>
|
||||
<path d="M469.32,469.266A209.424,209.424,0,0,1,386.164,452.5a212.329,212.329,0,0,1-67.82-45.484,215.513,215.513,0,0,1-45.555-67.7,210.416,210.416,0,0,1-16.8-83.375,221.318,221.318,0,0,1,1.125-22.359C133.234,251.8,42.7,309.031,42.7,376.844c0,82.484,133.673,149.359,298.65,149.359,95.164,0,179.859-22.3,234.507-56.937Z" fill="#fff" opacity="0.55"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.8 KiB |
@@ -220,7 +220,7 @@
|
||||
|
||||
.file-icons-enabled .show-file-icons .az_data_welcome_page-name-file-icon.file-icon::before { /* {{SQL CARBON EDIT}} We use azdata welcome page */
|
||||
content: ' ';
|
||||
background-image: url('../../code-icon.svg');
|
||||
background-image: url('../../../../browser/media/code-icon.svg');
|
||||
}
|
||||
|
||||
.monaco-workbench .part.editor > .content .welcomePage .mac-only,
|
||||
|
||||
@@ -45,8 +45,8 @@ import { CancellationToken } from 'vs/base/common/cancellation';
|
||||
import 'sql/workbench/contrib/welcome/page/browser/az_data_welcome_page'; // {{SQL CARBON EDIT}}
|
||||
import { IHostService } from 'vs/workbench/services/host/browser/host';
|
||||
import { IProductService } from 'vs/platform/product/common/productService';
|
||||
import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
|
||||
import { IEditorOptions } from 'vs/platform/editor/common/editor';
|
||||
import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';
|
||||
|
||||
const configurationKey = 'workbench.startupEditor';
|
||||
const oldConfigurationKey = 'workbench.welcome.enabled';
|
||||
@@ -62,13 +62,14 @@ export class WelcomePageContribution implements IWorkbenchContribution {
|
||||
@IFileService fileService: IFileService,
|
||||
@IWorkspaceContextService contextService: IWorkspaceContextService,
|
||||
@ILifecycleService lifecycleService: ILifecycleService,
|
||||
@IEditorService editorGroupsService: IEditorGroupsService,
|
||||
@IWorkbenchLayoutService layoutService: IWorkbenchLayoutService,
|
||||
@ICommandService private readonly commandService: ICommandService,
|
||||
) {
|
||||
const enabled = isWelcomePageEnabled(configurationService, contextService);
|
||||
if (enabled && lifecycleService.startupKind !== StartupKind.ReloadedWindow) {
|
||||
backupFileService.hasBackups().then(hasBackups => {
|
||||
if (!editorGroupsService.willRestoreEditors && !hasBackups) {
|
||||
// Open the welcome even if we opened a set of default editors
|
||||
if ((!editorService.activeEditor || layoutService.openedDefaultEditors) && !hasBackups) {
|
||||
const openWithReadme = configurationService.getValue(configurationKey) === 'readme';
|
||||
if (openWithReadme) {
|
||||
return Promise.all(contextService.getWorkspace().folders.map(folder => {
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
|
||||
.file-icons-enabled .show-file-icons .vs_code_editor_walkthrough\.md-name-file-icon.md-ext-file-icon.ext-file-icon.markdown-lang-file-icon.file-icon::before {
|
||||
content: ' ';
|
||||
background-image: url('../../code-icon.svg');
|
||||
background-image: url('../../../../browser/media/code-icon.svg');
|
||||
}
|
||||
|
||||
.monaco-workbench .part.editor > .content .walkThroughContent .mac-only,
|
||||
|
||||
Reference in New Issue
Block a user