aa1474b675
* Allow setting paths for builtin exts and extra dirs The extra directories aren't used yet, just available from the environment service and to the shared process. * Utilize extra builtin extensions path * Utilize extra extensions directory * Fix cached mtimes for extra extension dirs * Simplify extension cache equality check
1270 lines
81 KiB
Diff
1270 lines
81 KiB
Diff
diff --git a/src/vs/base/browser/browser.ts b/src/vs/base/browser/browser.ts
|
|
index 16414ef..3006e05 100644
|
|
--- a/src/vs/base/browser/browser.ts
|
|
+++ b/src/vs/base/browser/browser.ts
|
|
@@ -125,0 +126,4 @@ export const isEdgeWebView = isEdge && (userAgent.indexOf('WebView/') >= 0);
|
|
+export const isMacintosh = userAgent.indexOf("Macintosh") >= 0;
|
|
+export const isWindows = userAgent.indexOf("Windows") >= 0;
|
|
+export const isLinux = userAgent.indexOf("Linux") >= 0;
|
|
+
|
|
diff --git a/src/vs/base/browser/keyboardEvent.ts b/src/vs/base/browser/keyboardEvent.ts
|
|
index 03bdffc..d72c168 100644
|
|
--- a/src/vs/base/browser/keyboardEvent.ts
|
|
+++ b/src/vs/base/browser/keyboardEvent.ts
|
|
@@ -154 +154 @@ let INVERSE_KEY_CODE_MAP: KeyCode[] = new Array(KeyCode.MAX_VALUE);
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
@@ -159 +159 @@ let INVERSE_KEY_CODE_MAP: KeyCode[] = new Array(KeyCode.MAX_VALUE);
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
@@ -205 +205 @@ export interface IKeyboardEvent {
|
|
-const ctrlKeyMod = (platform.isMacintosh ? KeyMod.WinCtrl : KeyMod.CtrlCmd);
|
|
+const ctrlKeyMod = (browser.isMacintosh ? KeyMod.WinCtrl : KeyMod.CtrlCmd);
|
|
@@ -208 +208 @@ const shiftKeyMod = KeyMod.Shift;
|
|
-const metaKeyMod = (platform.isMacintosh ? KeyMod.CtrlCmd : KeyMod.WinCtrl);
|
|
+const metaKeyMod = (browser.isMacintosh ? KeyMod.CtrlCmd : KeyMod.WinCtrl);
|
|
diff --git a/src/vs/base/browser/ui/aria/aria.ts b/src/vs/base/browser/ui/aria/aria.ts
|
|
index fc71827..c8ed796 100644
|
|
--- a/src/vs/base/browser/ui/aria/aria.ts
|
|
+++ b/src/vs/base/browser/ui/aria/aria.ts
|
|
@@ -8 +8 @@ import * as nls from 'vs/nls';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/base/browser/ui/list/listWidget.ts b/src/vs/base/browser/ui/list/listWidget.ts
|
|
index 0869c52..4bd0813 100644
|
|
--- a/src/vs/base/browser/ui/list/listWidget.ts
|
|
+++ b/src/vs/base/browser/ui/list/listWidget.ts
|
|
@@ -13 +13 @@ import * as DOM from 'vs/base/browser/dom';
|
|
-import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -256 +256 @@ class KeyboardController<T> implements IDisposable {
|
|
- onKeyDown.filter(e => (platform.isMacintosh ? e.metaKey : e.ctrlKey) && e.keyCode === KeyCode.KEY_A).on(this.onCtrlA, this, this.disposables);
|
|
+ onKeyDown.filter(e => (browser.isMacintosh ? e.metaKey : e.ctrlKey) && e.keyCode === KeyCode.KEY_A).on(this.onCtrlA, this, this.disposables);
|
|
@@ -494 +494 @@ export function isSelectionSingleChangeEvent(event: IListMouseEvent<any> | IList
|
|
- return platform.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey;
|
|
+ return browser.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey;
|
|
@@ -556 +556 @@ export class MouseController<T> implements IDisposable {
|
|
- return platform.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey;
|
|
+ return browser.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey;
|
|
diff --git a/src/vs/base/browser/ui/sash/sash.ts b/src/vs/base/browser/ui/sash/sash.ts
|
|
index 8c7168b..6b34122 100644
|
|
--- a/src/vs/base/browser/ui/sash/sash.ts
|
|
+++ b/src/vs/base/browser/ui/sash/sash.ts
|
|
@@ -8,2 +8 @@ import { IDisposable, dispose, Disposable } from 'vs/base/common/lifecycle';
|
|
-import { isIPad } from 'vs/base/browser/browser';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isIPad, isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/base/browser/ui/scrollbar/scrollableElement.ts b/src/vs/base/browser/ui/scrollbar/scrollableElement.ts
|
|
index 9b31c84..51de0ea 100644
|
|
--- a/src/vs/base/browser/ui/scrollbar/scrollableElement.ts
|
|
+++ b/src/vs/base/browser/ui/scrollbar/scrollableElement.ts
|
|
@@ -18 +18 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle';
|
|
-import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -269 +269 @@ export abstract class AbstractScrollableElement extends Widget {
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
@@ -338 +338 @@ export abstract class AbstractScrollableElement extends Widget {
|
|
- const shiftConvert = !platform.isMacintosh && e.browserEvent && e.browserEvent.shiftKey;
|
|
+ const shiftConvert = !browser.isMacintosh && e.browserEvent && e.browserEvent.shiftKey;
|
|
@@ -571 +571 @@ function resolveOptions(opts: ScrollableElementCreationOptions): ScrollableEleme
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
diff --git a/src/vs/base/browser/ui/selectBox/selectBox.ts b/src/vs/base/browser/ui/selectBox/selectBox.ts
|
|
index d74c30c..ac39ce3 100644
|
|
--- a/src/vs/base/browser/ui/selectBox/selectBox.ts
|
|
+++ b/src/vs/base/browser/ui/selectBox/selectBox.ts
|
|
@@ -16 +16 @@ import { SelectBoxList } from 'vs/base/browser/ui/selectBox/selectBoxCustom';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts b/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts
|
|
index 8908d68..35dae2d 100644
|
|
--- a/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts
|
|
+++ b/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts
|
|
@@ -20 +20 @@ import { ISelectBoxDelegate, ISelectOptionItem, ISelectBoxOptions, ISelectBoxSty
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/base/browser/ui/selectBox/selectBoxNative.ts b/src/vs/base/browser/ui/selectBox/selectBoxNative.ts
|
|
index 98dee79..09c0467 100644
|
|
--- a/src/vs/base/browser/ui/selectBox/selectBoxNative.ts
|
|
+++ b/src/vs/base/browser/ui/selectBox/selectBoxNative.ts
|
|
@@ -12 +12 @@ import { ISelectBoxDelegate, ISelectOptionItem, ISelectBoxOptions, ISelectBoxSty
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/base/browser/ui/tree/abstractTree.ts b/src/vs/base/browser/ui/tree/abstractTree.ts
|
|
index f68ae90..d6b9ea7 100644
|
|
--- a/src/vs/base/browser/ui/tree/abstractTree.ts
|
|
+++ b/src/vs/base/browser/ui/tree/abstractTree.ts
|
|
@@ -24 +24 @@ import { disposableTimeout } from 'vs/base/common/async';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/base/node/config.ts b/src/vs/base/node/config.ts
|
|
index 5ef2193..a232b6c 100644
|
|
--- a/src/vs/base/node/config.ts
|
|
+++ b/src/vs/base/node/config.ts
|
|
@@ -79,0 +80,3 @@ export class ConfigWatcher<T> implements IConfigWatcher<T>, IDisposable {
|
|
+ } else {
|
|
+ this.cache = config; // update config
|
|
+ this._onDidUpdateConfiguration.fire({ config });
|
|
diff --git a/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts b/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts
|
|
index 74148e4..041205b 100644
|
|
--- a/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts
|
|
+++ b/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts
|
|
@@ -8 +8 @@ import * as nls from 'vs/nls';
|
|
-import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -66 +66 @@ export class QuickOpenController extends DefaultController {
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
diff --git a/src/vs/base/parts/tree/browser/treeDefaults.ts b/src/vs/base/parts/tree/browser/treeDefaults.ts
|
|
index f91ca2b..ef6fce9 100644
|
|
--- a/src/vs/base/parts/tree/browser/treeDefaults.ts
|
|
+++ b/src/vs/base/parts/tree/browser/treeDefaults.ts
|
|
@@ -8,0 +9 @@ import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -113 +114 @@ export class DefaultController implements _.IController {
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
@@ -155 +156 @@ export class DefaultController implements _.IController {
|
|
- const isMac = platform.isMacintosh;
|
|
+ const isMac = browser.isMacintosh;
|
|
diff --git a/src/vs/code/electron-browser/issue/issueReporterMain.ts b/src/vs/code/electron-browser/issue/issueReporterMain.ts
|
|
index f08c996..7db13fa 100644
|
|
--- a/src/vs/code/electron-browser/issue/issueReporterMain.ts
|
|
+++ b/src/vs/code/electron-browser/issue/issueReporterMain.ts
|
|
@@ -296 +296 @@ export class IssueReporter extends Disposable {
|
|
- const piiPaths = [this.environmentService.appRoot, this.environmentService.extensionsPath];
|
|
+ const piiPaths = [this.environmentService.appRoot, this.environmentService.extensionsPath, ...this.environmentService.extraExtensionPaths];
|
|
@@ -425 +425 @@ export class IssueReporter extends Disposable {
|
|
- const cmdOrCtrlKey = platform.isMacintosh ? e.metaKey : e.ctrlKey;
|
|
+ const cmdOrCtrlKey = browser.isMacintosh ? e.metaKey : e.ctrlKey;
|
|
@@ -459 +459 @@ export class IssueReporter extends Disposable {
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
diff --git a/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts b/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts
|
|
index e0ff793..885de12 100644
|
|
--- a/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts
|
|
+++ b/src/vs/code/electron-browser/processExplorer/processExplorerMain.ts
|
|
@@ -304 +304 @@ export function startup(data: ProcessExplorerData): void {
|
|
- const cmdOrCtrlKey = platform.isMacintosh ? e.metaKey : e.ctrlKey;
|
|
+ const cmdOrCtrlKey = browser.isMacintosh ? e.metaKey : e.ctrlKey;
|
|
diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts
|
|
index 6fd8249..1101558 100644
|
|
--- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts
|
|
+++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts
|
|
@@ -50,0 +51,2 @@ import { ServiceIdentifier } from 'vs/platform/instantiation/common/instantiatio
|
|
+import { BackupMainService } from 'vs/platform/backup/electron-main/backupMainService';
|
|
+import { mkdirp } from 'vs/base/node/pfs';
|
|
@@ -93,0 +96,11 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I
|
|
+ Promise.all<boolean | undefined>([ // Copied from src/vs/code/electron-main/main.ts
|
|
+ environmentService.extensionsPath,
|
|
+ environmentService.nodeCachedDataDir,
|
|
+ environmentService.logsPath,
|
|
+ environmentService.globalStorageHome,
|
|
+ environmentService.workspaceStorageHome,
|
|
+ environmentService.backupHome,
|
|
+ environmentService.builtinExtensionsPath,
|
|
+ ...environmentService.extraExtensionPaths,
|
|
+ ...environmentService.extraBuiltinExtensionPaths,
|
|
+ ].map((path): undefined | Promise<boolean> => path ? mkdirp(path) : undefined));
|
|
@@ -119,0 +133,2 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I
|
|
+ const backupMainService = instantiationService.createInstance(BackupMainService) as BackupMainService;
|
|
+ backupMainService.initialize().catch(console.error);
|
|
@@ -124 +139 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I
|
|
- const { appRoot, extensionsPath, extensionDevelopmentLocationURI, isBuilt, installSourcePath } = environmentService;
|
|
+ const { appRoot, extensionsPath, extraExtensionPaths, extensionDevelopmentLocationURI, isBuilt, installSourcePath } = environmentService;
|
|
@@ -138 +153 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I
|
|
- piiPaths: [appRoot, extensionsPath]
|
|
+ piiPaths: [appRoot, extensionsPath, ...extraExtensionPaths]
|
|
@@ -223,0 +239 @@ async function handshake(configuration: ISharedProcessConfiguration): Promise<vo
|
|
+startup({ machineId: "1" });
|
|
diff --git a/src/vs/code/node/cli.ts b/src/vs/code/node/cli.ts
|
|
index 1f8b17a..2a875f9 100644
|
|
--- a/src/vs/code/node/cli.ts
|
|
+++ b/src/vs/code/node/cli.ts
|
|
@@ -43,0 +44,3 @@ export async function main(argv: string[]): Promise<any> {
|
|
+ const cli = await new Promise<IMainCli>((c, e) => require(['vs/code/node/cliProcessMain'], c, e));
|
|
+ await cli.main(args);
|
|
+ return; // Always just do this for now.
|
|
diff --git a/src/vs/editor/browser/config/configuration.ts b/src/vs/editor/browser/config/configuration.ts
|
|
index f97a692..8059a67 100644
|
|
--- a/src/vs/editor/browser/config/configuration.ts
|
|
+++ b/src/vs/editor/browser/config/configuration.ts
|
|
@@ -10 +9,0 @@ import { Disposable } from 'vs/base/common/lifecycle';
|
|
-import * as platform from 'vs/base/common/platform';
|
|
@@ -17 +15,0 @@ import { IDimension } from 'vs/editor/common/editorCommon';
|
|
-import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
|
@@ -18,0 +17 @@ import { IAccessibilityService } from 'vs/platform/accessibility/common/accessib
|
|
+import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
|
@@ -367 +366 @@ export class Configuration extends CommonEditorConfiguration {
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
diff --git a/src/vs/editor/browser/controller/mouseHandler.ts b/src/vs/editor/browser/controller/mouseHandler.ts
|
|
index b3b4472..f888d63 100644
|
|
--- a/src/vs/editor/browser/controller/mouseHandler.ts
|
|
+++ b/src/vs/editor/browser/controller/mouseHandler.ts
|
|
@@ -222 +222 @@ export class MouseHandler extends ViewEventHandler {
|
|
- if (platform.isMacintosh && e.leftButton && e.ctrlKey) {
|
|
+ if (browser.isMacintosh && e.leftButton && e.ctrlKey) {
|
|
diff --git a/src/vs/editor/browser/controller/textAreaHandler.ts b/src/vs/editor/browser/controller/textAreaHandler.ts
|
|
index be5583d..c0e4f2e 100644
|
|
--- a/src/vs/editor/browser/controller/textAreaHandler.ts
|
|
+++ b/src/vs/editor/browser/controller/textAreaHandler.ts
|
|
@@ -214 +214 @@ export class TextAreaHandler extends ViewPart {
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
diff --git a/src/vs/editor/browser/controller/textAreaInput.ts b/src/vs/editor/browser/controller/textAreaInput.ts
|
|
index bc986fa..63c6d79 100644
|
|
--- a/src/vs/editor/browser/controller/textAreaInput.ts
|
|
+++ b/src/vs/editor/browser/controller/textAreaInput.ts
|
|
@@ -263 +263 @@ export class TextAreaInput extends Disposable {
|
|
- const [newState, typeInput] = deduceInputFromTextAreaValue(/*couldBeEmojiInput*/platform.isMacintosh, /*couldBeTypingAtOffset0*/previousEventWasFocus && platform.isMacintosh);
|
|
+ const [newState, typeInput] = deduceInputFromTextAreaValue(/*couldBeEmojiInput*/browser.isMacintosh, /*couldBeTypingAtOffset0*/previousEventWasFocus && browser.isMacintosh);
|
|
diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts
|
|
index 7571c59..7f5689a 100644
|
|
--- a/src/vs/editor/common/config/commonEditorConfig.ts
|
|
+++ b/src/vs/editor/common/config/commonEditorConfig.ts
|
|
@@ -395 +395 @@ const editorConfiguration: IConfigurationNode = {
|
|
- 'included': platform.isMacintosh
|
|
+ 'included': platform.isNative && platform.isMacintosh
|
|
diff --git a/src/vs/editor/common/config/editorOptions.ts b/src/vs/editor/common/config/editorOptions.ts
|
|
index 85b823f..7da04c6 100644
|
|
--- a/src/vs/editor/common/config/editorOptions.ts
|
|
+++ b/src/vs/editor/common/config/editorOptions.ts
|
|
@@ -6 +6 @@
|
|
-import * as nls from 'vs/nls';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -13,0 +14 @@ import { USUAL_WORD_SEPARATORS } from 'vs/editor/common/model/wordHelper';
|
|
+import * as nls from 'vs/nls';
|
|
@@ -1803 +1804 @@ export class EditorOptionsValidator {
|
|
- configuredMulticursorModifier = platform.isMacintosh ? 'metaKey' : 'ctrlKey';
|
|
+ configuredMulticursorModifier = browser.isMacintosh ? 'metaKey' : 'ctrlKey';
|
|
@@ -2578 +2579 @@ export const EDITOR_FONT_DEFAULTS = {
|
|
- platform.isMacintosh ? DEFAULT_MAC_FONT_FAMILY : (platform.isLinux ? DEFAULT_LINUX_FONT_FAMILY : DEFAULT_WINDOWS_FONT_FAMILY)
|
|
+ browser.isMacintosh ? DEFAULT_MAC_FONT_FAMILY : (platform.isLinux ? DEFAULT_LINUX_FONT_FAMILY : DEFAULT_WINDOWS_FONT_FAMILY)
|
|
@@ -2582 +2583 @@ export const EDITOR_FONT_DEFAULTS = {
|
|
- platform.isMacintosh ? 12 : 14
|
|
+ browser.isMacintosh ? 12 : 14
|
|
@@ -2688 +2689 @@ export const EDITOR_DEFAULTS: IValidatedEditorOptions = {
|
|
- selectionClipboard: true,
|
|
+ selectionClipboard: false,
|
|
diff --git a/src/vs/editor/common/config/fontInfo.ts b/src/vs/editor/common/config/fontInfo.ts
|
|
index c69ea3f..b8d87f7 100644
|
|
--- a/src/vs/editor/common/config/fontInfo.ts
|
|
+++ b/src/vs/editor/common/config/fontInfo.ts
|
|
@@ -6 +6 @@
|
|
-import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -14 +14 @@ import { EditorZoom } from 'vs/editor/common/config/editorZoom';
|
|
-const GOLDEN_LINE_HEIGHT_RATIO = platform.isMacintosh ? 1.5 : 1.35;
|
|
+const GOLDEN_LINE_HEIGHT_RATIO = browser.isMacintosh ? 1.5 : 1.35;
|
|
diff --git a/src/vs/editor/contrib/clipboard/clipboard.ts b/src/vs/editor/contrib/clipboard/clipboard.ts
|
|
index 990be3a..18ae0d5 100644
|
|
--- a/src/vs/editor/contrib/clipboard/clipboard.ts
|
|
+++ b/src/vs/editor/contrib/clipboard/clipboard.ts
|
|
@@ -18,0 +19 @@ import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegis
|
|
+import { clipboard } from 'electron';
|
|
@@ -29 +30,2 @@ const supportsCopyWithSyntaxHighlighting = (supportsCopy && !browser.isEdgeOrIE)
|
|
-const supportsPaste = (platform.isNative || (!browser.isChrome && document.queryCommandSupported('paste')));
|
|
+// const supportsPaste = (platform.isNative || (!browser.isChrome && document.queryCommandSupported('paste')));
|
|
+const supportsPaste = true;
|
|
@@ -71 +73 @@ class ExecCommandCutAction extends ExecCommandAction {
|
|
- kbOpts = null;
|
|
+ // kbOpts = null;
|
|
@@ -119 +121 @@ class ExecCommandCopyAction extends ExecCommandAction {
|
|
- kbOpts = null;
|
|
+ // kbOpts = null;
|
|
@@ -174 +176 @@ class ExecCommandPasteAction extends ExecCommandAction {
|
|
- kbOpts = null;
|
|
+ // kbOpts = null;
|
|
@@ -176,0 +179 @@ class ExecCommandPasteAction extends ExecCommandAction {
|
|
+ const { workbench } = require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench');
|
|
@@ -181 +184 @@ class ExecCommandPasteAction extends ExecCommandAction {
|
|
- precondition: EditorContextKeys.writable,
|
|
+ precondition: (require('vs/platform/contextkey/common/contextkey') as typeof import('vs/platform/contextkey/common/contextkey')).ContextKeyExpr.and(EditorContextKeys.writable, workbench.clipboardContextKey),
|
|
@@ -191 +194,2 @@ class ExecCommandPasteAction extends ExecCommandAction {
|
|
- order: 3
|
|
+ order: 3,
|
|
+ when: workbench.clipboardContextKey,
|
|
@@ -194,0 +199,26 @@ class ExecCommandPasteAction extends ExecCommandAction {
|
|
+
|
|
+ public async run(accessor, editor: ICodeEditor): Promise<void> {
|
|
+ if (editor instanceof (require('vs/editor/browser/widget/codeEditorWidget') as typeof import('vs/editor/browser/widget/codeEditorWidget')).CodeEditorWidget) {
|
|
+ try {
|
|
+ editor.focus();
|
|
+ const textInput = document.activeElement! as HTMLTextAreaElement;
|
|
+ const dataTransfer = new DataTransfer();
|
|
+ const value = await clipboard.readText();
|
|
+ dataTransfer.setData("text/plain", value);
|
|
+ const pasteEvent = new ClipboardEvent("paste", {
|
|
+ clipboardData: dataTransfer,
|
|
+ });
|
|
+ textInput.dispatchEvent(pasteEvent);
|
|
+ } catch (ex) {
|
|
+ try {
|
|
+ editor.trigger('', (require('vs/editor/common/editorCommon') as typeof import ('vs/editor/common/editorCommon')).Handler.Paste, {
|
|
+ text: await (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.clipboardText,
|
|
+ });
|
|
+ } catch (ex) {
|
|
+ super.run(accessor, editor);
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ super.run(accessor, editor);
|
|
+ }
|
|
+ }
|
|
diff --git a/src/vs/editor/contrib/dnd/dnd.ts b/src/vs/editor/contrib/dnd/dnd.ts
|
|
index 44a5dd5..9083efb 100644
|
|
--- a/src/vs/editor/contrib/dnd/dnd.ts
|
|
+++ b/src/vs/editor/contrib/dnd/dnd.ts
|
|
@@ -9 +9 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/editor/contrib/goToDefinition/clickLinkGesture.ts b/src/vs/editor/contrib/goToDefinition/clickLinkGesture.ts
|
|
index 3b72a01..0d723f5 100644
|
|
--- a/src/vs/editor/contrib/goToDefinition/clickLinkGesture.ts
|
|
+++ b/src/vs/editor/contrib/goToDefinition/clickLinkGesture.ts
|
|
@@ -86 +86 @@ function createOptions(multiCursorModifier: 'altKey' | 'ctrlKey' | 'metaKey'): C
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
@@ -92 +92 @@ function createOptions(multiCursorModifier: 'altKey' | 'ctrlKey' | 'metaKey'): C
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
diff --git a/src/vs/editor/contrib/links/links.ts b/src/vs/editor/contrib/links/links.ts
|
|
index b3c5f8d..db4a359 100644
|
|
--- a/src/vs/editor/contrib/links/links.ts
|
|
+++ b/src/vs/editor/contrib/links/links.ts
|
|
@@ -13 +13 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle';
|
|
-import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -29 +29 @@ const HOVER_MESSAGE_GENERAL_META = new MarkdownString().appendText(
|
|
- platform.isMacintosh
|
|
+ browser.isMacintosh
|
|
@@ -35 +35 @@ const HOVER_MESSAGE_COMMAND_META = new MarkdownString().appendText(
|
|
- platform.isMacintosh
|
|
+ browser.isMacintosh
|
|
@@ -41 +41 @@ const HOVER_MESSAGE_GENERAL_ALT = new MarkdownString().appendText(
|
|
- platform.isMacintosh
|
|
+ browser.isMacintosh
|
|
@@ -47 +47 @@ const HOVER_MESSAGE_COMMAND_ALT = new MarkdownString().appendText(
|
|
- platform.isMacintosh
|
|
+ browser.isMacintosh
|
|
diff --git a/src/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.ts b/src/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.ts
|
|
index 4bde524..0b18c35 100644
|
|
--- a/src/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.ts
|
|
+++ b/src/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.ts
|
|
@@ -257 +257 @@ class AccessibilityHelpWidget extends Widget implements IOverlayWidget {
|
|
- platform.isMacintosh
|
|
+ browser.isMacintosh
|
|
@@ -282 +282 @@ class AccessibilityHelpWidget extends Widget implements IOverlayWidget {
|
|
- platform.isMacintosh
|
|
+ browser.isMacintosh
|
|
diff --git a/src/vs/loader.js b/src/vs/loader.js
|
|
index 4eddcab..2badfc3 100644
|
|
--- a/src/vs/loader.js
|
|
+++ b/src/vs/loader.js
|
|
@@ -671,4 +671,4 @@ var AMDLoader;
|
|
- this._fs = nodeRequire('fs');
|
|
- this._vm = nodeRequire('vm');
|
|
- this._path = nodeRequire('path');
|
|
- this._crypto = nodeRequire('crypto');
|
|
+ this._fs = require('fs');
|
|
+ this._vm = require('vm');
|
|
+ this._path = require('path');
|
|
+ this._crypto = require('crypto');
|
|
@@ -736,0 +737,12 @@ var AMDLoader;
|
|
+ const context = require.context("../", true, /.*/);
|
|
+ if (scriptSrc.indexOf("file:///") !== -1) {
|
|
+ let vsSrc = scriptSrc.split("file:///")[1].split(".js")[0];
|
|
+ if (this._env.isWindows) {
|
|
+ const vsSrcSplit = vsSrc.split(":/");
|
|
+ vsSrcSplit.shift();
|
|
+ vsSrc = vsSrcSplit.join(":/");
|
|
+ }
|
|
+ if (vsSrc && vsSrc.startsWith("vs/")) {
|
|
+ scriptSrc = `node|./${vsSrc}`;
|
|
+ }
|
|
+ }
|
|
@@ -741 +753 @@ var AMDLoader;
|
|
- moduleExports_1 = nodeRequire(pieces[1]);
|
|
+ moduleExports_1 = context(pieces[1]);
|
|
diff --git a/src/vs/platform/clipboard/electron-browser/clipboardService.ts b/src/vs/platform/clipboard/electron-browser/clipboardService.ts
|
|
index 9952574..908a9ae 100644
|
|
--- a/src/vs/platform/clipboard/electron-browser/clipboardService.ts
|
|
+++ b/src/vs/platform/clipboard/electron-browser/clipboardService.ts
|
|
@@ -9 +9 @@ import { URI } from 'vs/base/common/uri';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts
|
|
index eb1873c..dbbacd0 100644
|
|
--- a/src/vs/platform/environment/common/environment.ts
|
|
+++ b/src/vs/platform/environment/common/environment.ts
|
|
@@ -120,0 +121,2 @@ export interface IEnvironmentService {
|
|
+ extraExtensionPaths: string[];
|
|
+ extraBuiltinExtensionPaths: string[];
|
|
diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts
|
|
index 43866f8..e69b513 100644
|
|
--- a/src/vs/platform/environment/node/environmentService.ts
|
|
+++ b/src/vs/platform/environment/node/environmentService.ts
|
|
@@ -172,0 +173,8 @@ export class EnvironmentService implements IEnvironmentService {
|
|
+ @memoize
|
|
+ get extraExtensionPaths(): string[] {
|
|
+ return this._args['extra-extension-dirs'] || [];
|
|
+ }
|
|
+ @memoize
|
|
+ get extraBuiltinExtensionPaths(): string[] {
|
|
+ return this._args['extra-builtin-extension-dirs'] || [];
|
|
+ }
|
|
diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts
|
|
index c897029..f84d9b6 100644
|
|
--- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts
|
|
+++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts
|
|
@@ -733,5 +733,9 @@ export class ExtensionManagementService extends Disposable implements IExtension
|
|
- const systemExtensionsPromise = this.scanExtensions(this.systemExtensionsPath, ExtensionType.System)
|
|
- .then(result => {
|
|
- this.logService.info('Scanned system extensions:', result.length);
|
|
- return result;
|
|
- });
|
|
+ const systemExtensionsPromise = Promise.all([
|
|
+ this.scanExtensions(this.systemExtensionsPath, ExtensionType.System),
|
|
+ ...this.environmentService.extraBuiltinExtensionPaths
|
|
+ .map((path) => this.scanExtensions(path, ExtensionType.System))
|
|
+ ]).then((results) => {
|
|
+ const result = results.reduce((flat, current) => flat.concat(current), []);
|
|
+ this.logService.info('Scanned system extensions:', result.length);
|
|
+ return result;
|
|
+ });
|
|
@@ -761 +765 @@ export class ExtensionManagementService extends Disposable implements IExtension
|
|
- return Promise.all([this.getUninstalledExtensions(), this.scanExtensions(this.extensionsPath, ExtensionType.User)])
|
|
+ return Promise.all([this.getUninstalledExtensions(), this.scanAllUserExtensions(this.extensionsPath, ExtensionType.User)])
|
|
@@ -772,0 +777,7 @@ export class ExtensionManagementService extends Disposable implements IExtension
|
|
+ private scanAllUserExtensions(folderName: string, type: ExtensionType): Promise<ILocalExtension[]> {
|
|
+ return Promise.all([
|
|
+ this.scanExtensions(folderName, type),
|
|
+ ...this.environmentService.extraExtensionPaths.map((p) => this.scanExtensions(p, ExtensionType.User))
|
|
+ ]).then((results) => results.reduce((flat, current) => flat.concat(current), []));
|
|
+ }
|
|
+
|
|
@@ -805 +816 @@ export class ExtensionManagementService extends Disposable implements IExtension
|
|
- .then(uninstalled => this.scanExtensions(this.extensionsPath, ExtensionType.User) // All user extensions
|
|
+ .then(uninstalled => this.scanAllUserExtensions(this.extensionsPath, ExtensionType.User) // All user extensions
|
|
@@ -814 +825 @@ export class ExtensionManagementService extends Disposable implements IExtension
|
|
- return this.scanExtensions(this.extensionsPath, ExtensionType.User) // All user extensions
|
|
+ return this.scanAllUserExtensions(this.extensionsPath, ExtensionType.User) // All user extensions
|
|
diff --git a/src/vs/platform/storage/node/storageMainService.ts b/src/vs/platform/storage/node/storageMainService.ts
|
|
index 9845da1..567c195 100644
|
|
--- a/src/vs/platform/storage/node/storageMainService.ts
|
|
+++ b/src/vs/platform/storage/node/storageMainService.ts
|
|
@@ -169 +169,6 @@ export class StorageMainService extends Disposable implements IStorageMainServic
|
|
- return readdir(this.environmentService.extensionsPath).then(extensions => {
|
|
+ return Promise.all([
|
|
+ this.environmentService.extensionsPath,
|
|
+ ...this.environmentService.extraExtensionPaths,
|
|
+ ].map((p) => readdir(p)))
|
|
+ .then((results) => results.reduce((flat, current) => flat.concat(current), []))
|
|
+ .then(extensions => {
|
|
diff --git a/src/vs/platform/telemetry/electron-browser/telemetryService.ts b/src/vs/platform/telemetry/electron-browser/telemetryService.ts
|
|
index 31d0309..5b166af 100644
|
|
--- a/src/vs/platform/telemetry/electron-browser/telemetryService.ts
|
|
+++ b/src/vs/platform/telemetry/electron-browser/telemetryService.ts
|
|
@@ -42 +42 @@ export class TelemetryService extends Disposable implements ITelemetryService {
|
|
- piiPaths: [environmentService.appRoot, environmentService.extensionsPath]
|
|
+ piiPaths: [environmentService.appRoot, environmentService.extensionsPath, ...environmentService.extraExtensionPaths]
|
|
diff --git a/src/vs/platform/windows/common/windows.ts b/src/vs/platform/windows/common/windows.ts
|
|
index cbc55b3..9d27c01 100644
|
|
--- a/src/vs/platform/windows/common/windows.ts
|
|
+++ b/src/vs/platform/windows/common/windows.ts
|
|
@@ -9 +9 @@ import { ITelemetryData } from 'vs/platform/telemetry/common/telemetry';
|
|
-import { IProcessEnvironment, isMacintosh, isLinux } from 'vs/base/common/platform';
|
|
+import { IProcessEnvironment, isMacintosh, isLinux, isWeb } from 'vs/base/common/platform';
|
|
@@ -262,0 +263 @@ export function getTitleBarStyle(configurationService: IConfigurationService, en
|
|
+ if (isWeb) { return 'custom'; }
|
|
diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts
|
|
index 25e74c8..0bed89e 100644
|
|
--- a/src/vs/workbench/api/node/extHostExtensionService.ts
|
|
+++ b/src/vs/workbench/api/node/extHostExtensionService.ts
|
|
@@ -769 +769 @@ function loadCommonJSModule<T>(logService: ILogService, modulePath: string, acti
|
|
- r = require.__$__nodeRequire<T>(modulePath);
|
|
+ r = (global as any).nativeNodeRequire(modulePath);
|
|
diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts
|
|
index 84406b8..cffd952 100644
|
|
--- a/src/vs/workbench/api/node/extHostTypeConverters.ts
|
|
+++ b/src/vs/workbench/api/node/extHostTypeConverters.ts
|
|
@@ -26 +25,0 @@ import { ExtHostDocumentsAndEditors } from 'vs/workbench/api/node/extHostDocumen
|
|
-import { isString, isNumber } from 'vs/base/common/types';
|
|
@@ -31 +29,0 @@ import { LogLevel as _MainLogLevel } from 'vs/platform/log/common/log';
|
|
-import { coalesce } from 'vs/base/common/arrays';
|
|
@@ -117,0 +116,2 @@ export namespace Diagnostic {
|
|
+ const { isString, isNumber } = require('vs/base/common/types');
|
|
+ const { coalesce } = require('vs/base/common/arrays');
|
|
diff --git a/src/vs/workbench/browser/dnd.ts b/src/vs/workbench/browser/dnd.ts
|
|
index 7b6ad89..3190356 100644
|
|
--- a/src/vs/workbench/browser/dnd.ts
|
|
+++ b/src/vs/workbench/browser/dnd.ts
|
|
@@ -170 +170 @@ export class ResourcesDropHandler {
|
|
- return;
|
|
+ return (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.handleDrop(event, resolveTargetGroup, afterDrop, targetIndex);
|
|
diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts
|
|
index c25c940..f2004f8 100644
|
|
--- a/src/vs/workbench/browser/layout.ts
|
|
+++ b/src/vs/workbench/browser/layout.ts
|
|
@@ -12 +12 @@ import { Registry } from 'vs/platform/registry/common/platform';
|
|
-import { isWindows, isLinux, isMacintosh } from 'vs/base/common/platform';
|
|
+import { isWindows, isLinux, isMacintosh, isNative } from 'vs/base/common/platform';
|
|
@@ -210 +210 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
|
|
- if ((isWindows || isLinux) && getTitleBarStyle(this.configurationService, this.environmentService) === 'custom') {
|
|
+ // if ((isWeb || isWindows || isLinux) && getTitleBarStyle(this.configurationService, this.environmentService) === 'custom') {
|
|
@@ -212 +212 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
|
|
- }
|
|
+ // }
|
|
@@ -219 +219 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
|
|
- if (this.state.fullscreen && (this.state.menuBar.visibility === 'toggle' || this.state.menuBar.visibility === 'default')) {
|
|
+ if ((this.state.menuBar.visibility === 'toggle' || this.state.menuBar.visibility === 'default')) {
|
|
@@ -531 +531,5 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
|
|
- if (getTitleBarStyle(this.configurationService, this.environmentService) === 'native') {
|
|
+ if (this.state.menuBar.visibility === 'hidden') {
|
|
+ return false;
|
|
+ } else if (this.state.menuBar.visibility === 'toggle') {
|
|
+ return this.state.menuBar.toggled;
|
|
+ } else if (getTitleBarStyle(this.configurationService, this.environmentService) === 'native') {
|
|
@@ -535 +539 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
|
|
- } else if (isMacintosh) {
|
|
+ } else if (isNative && isMacintosh) {
|
|
@@ -539,2 +542,0 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
|
|
- } else if (this.state.menuBar.visibility === 'toggle' || this.state.menuBar.visibility === 'default') {
|
|
- return this.state.menuBar.toggled;
|
|
@@ -567 +569 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
|
|
- if (isMacintosh || this.state.menuBar.visibility === 'hidden') {
|
|
+ if ((isNative && isMacintosh) || this.state.menuBar.visibility === 'hidden') {
|
|
diff --git a/src/vs/workbench/browser/legacyLayout.ts b/src/vs/workbench/browser/legacyLayout.ts
|
|
index 53e73ac..0e24627 100644
|
|
--- a/src/vs/workbench/browser/legacyLayout.ts
|
|
+++ b/src/vs/workbench/browser/legacyLayout.ts
|
|
@@ -13 +13 @@ import { IThemeService } from 'vs/platform/theme/common/themeService';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh, isNative } from 'vs/base/common/platform';
|
|
@@ -20 +20 @@ import { Part } from 'vs/workbench/browser/part';
|
|
-const TITLE_BAR_HEIGHT = isMacintosh ? 22 : 30;
|
|
+const TITLE_BAR_HEIGHT = isNative && isMacintosh ? 22 : 30;
|
|
@@ -413 +413 @@ export class WorkbenchLegacyLayout extends Disposable implements IVerticalSashLa
|
|
- this.titlebarHeight = isTitlebarHidden ? 0 : this.partLayoutInfo.titlebar.height / (isMacintosh || !menubarVisibility || menubarVisibility === 'hidden' ? getZoomFactor() : 1); // adjust for zoom prevention
|
|
+ this.titlebarHeight = isTitlebarHidden ? 0 : this.partLayoutInfo.titlebar.height / ((isNative && isMacintosh) || !menubarVisibility || menubarVisibility === 'hidden' ? getZoomFactor() : 1); // adjust for zoom prevention
|
|
diff --git a/src/vs/workbench/browser/parts/editor/editor.contribution.ts b/src/vs/workbench/browser/parts/editor/editor.contribution.ts
|
|
index df1ac8e..b86ab6a 100644
|
|
--- a/src/vs/workbench/browser/parts/editor/editor.contribution.ts
|
|
+++ b/src/vs/workbench/browser/parts/editor/editor.contribution.ts
|
|
@@ -48 +48 @@ import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/browser/parts/editor/editorDropTarget.ts b/src/vs/workbench/browser/parts/editor/editorDropTarget.ts
|
|
index acf2522..feebe63 100644
|
|
--- a/src/vs/workbench/browser/parts/editor/editorDropTarget.ts
|
|
+++ b/src/vs/workbench/browser/parts/editor/editorDropTarget.ts
|
|
@@ -14 +14 @@ import { IEditorIdentifier, EditorInput, EditorOptions } from 'vs/workbench/comm
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/browser/parts/editor/editorGroupView.ts b/src/vs/workbench/browser/parts/editor/editorGroupView.ts
|
|
index 50977a6..81e4fc0 100644
|
|
--- a/src/vs/workbench/browser/parts/editor/editorGroupView.ts
|
|
+++ b/src/vs/workbench/browser/parts/editor/editorGroupView.ts
|
|
@@ -1499 +1499 @@ registerThemingParticipant((theme, collector, environment) => {
|
|
- const letterpress = `./media/letterpress${theme.type === 'dark' ? '-dark' : theme.type === 'hc' ? '-hc' : ''}.svg`;
|
|
+ const letterpress = theme.type === 'dark' ? require.toUrl('./media/letterpress-dark.svg') : theme.type === 'hc' ? require.toUrl('./media/letterpress-hc.svg') : require.toUrl('./media/letterpress.svg');
|
|
@@ -1502 +1502 @@ registerThemingParticipant((theme, collector, environment) => {
|
|
- background-image: url('${require.toUrl(letterpress)}')
|
|
+ background-image: url('${letterpress}')
|
|
diff --git a/src/vs/workbench/browser/parts/editor/resourceViewer.ts b/src/vs/workbench/browser/parts/editor/resourceViewer.ts
|
|
index 98a67c2..67d5248 100644
|
|
--- a/src/vs/workbench/browser/parts/editor/resourceViewer.ts
|
|
+++ b/src/vs/workbench/browser/parts/editor/resourceViewer.ts
|
|
@@ -23 +23 @@ import { memoize } from 'vs/base/common/decorators';
|
|
-import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -444 +444 @@ class InlineImageView {
|
|
- if (platform.isMacintosh ? altPressed : ctrlPressed) {
|
|
+ if (browser.isMacintosh ? altPressed : ctrlPressed) {
|
|
@@ -458 +458 @@ class InlineImageView {
|
|
- if (!(platform.isMacintosh ? altPressed : ctrlPressed)) {
|
|
+ if (!(browser.isMacintosh ? altPressed : ctrlPressed)) {
|
|
@@ -478 +478 @@ class InlineImageView {
|
|
- if (!(platform.isMacintosh ? altPressed : ctrlPressed)) { // zoom in
|
|
+ if (!(browser.isMacintosh ? altPressed : ctrlPressed)) { // zoom in
|
|
@@ -502 +502 @@ class InlineImageView {
|
|
- const isScrollWhellKeyPressed = platform.isMacintosh ? altPressed : ctrlPressed;
|
|
+ const isScrollWhellKeyPressed = browser.isMacintosh ? altPressed : ctrlPressed;
|
|
diff --git a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts
|
|
index 8b40624..43df4de 100644
|
|
--- a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts
|
|
+++ b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts
|
|
@@ -7 +7 @@ import 'vs/css!./media/tabstitlecontrol';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/browser/parts/quickinput/quickInputList.ts b/src/vs/workbench/browser/parts/quickinput/quickInputList.ts
|
|
index 78c0846..f20462f 100644
|
|
--- a/src/vs/workbench/browser/parts/quickinput/quickInputList.ts
|
|
+++ b/src/vs/workbench/browser/parts/quickinput/quickInputList.ts
|
|
@@ -24 +24 @@ import { range } from 'vs/base/common/arrays';
|
|
-import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -265 +265 @@ export class QuickInputList {
|
|
- if (platform.isMacintosh ? e.metaKey : e.ctrlKey) {
|
|
+ if (browser.isMacintosh ? e.metaKey : e.ctrlKey) {
|
|
diff --git a/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css b/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css
|
|
index a215bde..df7562b 100644
|
|
--- a/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css
|
|
+++ b/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css
|
|
@@ -44,0 +45 @@
|
|
+.web > .monaco-workbench .part.titlebar,
|
|
diff --git a/src/vs/workbench/browser/parts/titlebar/menubarControl.ts b/src/vs/workbench/browser/parts/titlebar/menubarControl.ts
|
|
index a822341..43b882a 100644
|
|
--- a/src/vs/workbench/browser/parts/titlebar/menubarControl.ts
|
|
+++ b/src/vs/workbench/browser/parts/titlebar/menubarControl.ts
|
|
@@ -16 +16,2 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
|
|
-import { isMacintosh, isLinux } from 'vs/base/common/platform';
|
|
+import { isNative } from 'vs/base/common/platform';
|
|
+import { isMacintosh, isLinux } from 'vs/base/browser/browser';
|
|
@@ -117 +118 @@ export class MenubarControl extends Disposable {
|
|
- if (isMacintosh) {
|
|
+ if (isNative && isMacintosh) {
|
|
@@ -126 +127 @@ export class MenubarControl extends Disposable {
|
|
- if (isMacintosh || this.currentTitlebarStyleSetting !== 'custom') {
|
|
+ if ((isNative && isMacintosh) || this.currentTitlebarStyleSetting !== 'custom') {
|
|
@@ -138 +139 @@ export class MenubarControl extends Disposable {
|
|
- if (isMacintosh || this.currentTitlebarStyleSetting !== 'custom') {
|
|
+ if ((isNative && isMacintosh) || this.currentTitlebarStyleSetting !== 'custom') {
|
|
@@ -288 +289 @@ export class MenubarControl extends Disposable {
|
|
- if (!isMacintosh && this.currentTitlebarStyleSetting === 'custom') {
|
|
+ if (!(isNative && isMacintosh) && this.currentTitlebarStyleSetting === 'custom') {
|
|
@@ -304 +305 @@ export class MenubarControl extends Disposable {
|
|
- if (!isMacintosh && this.currentTitlebarStyleSetting === 'custom') {
|
|
+ if (!(isNative && isMacintosh) && this.currentTitlebarStyleSetting === 'custom') {
|
|
@@ -473 +474 @@ export class MenubarControl extends Disposable {
|
|
- if (!isMacintosh) {
|
|
+ if (!(isNative && isMacintosh)) {
|
|
@@ -699 +700 @@ export class MenubarControl extends Disposable {
|
|
- if (!isMacintosh && this.currentTitlebarStyleSetting === 'custom') {
|
|
+ if (!(isNative && isMacintosh) && this.currentTitlebarStyleSetting === 'custom') {
|
|
diff --git a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts
|
|
index 028f375..f740471 100644
|
|
--- a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts
|
|
+++ b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts
|
|
@@ -11 +11 @@ import { ITitleService, ITitleProperties } from 'vs/workbench/services/title/com
|
|
-import { getZoomFactor } from 'vs/base/browser/browser';
|
|
+import { getZoomFactor, isMacintosh, isWindows, isLinux } from 'vs/base/browser/browser';
|
|
@@ -25 +25 @@ import { TITLE_BAR_ACTIVE_BACKGROUND, TITLE_BAR_ACTIVE_FOREGROUND, TITLE_BAR_INA
|
|
-import { isMacintosh, isWindows, isLinux } from 'vs/base/common/platform';
|
|
+import { isNative } from 'vs/base/common/platform';
|
|
@@ -327 +327 @@ export class TitlebarPart extends Part implements ITitleService {
|
|
- if (!isMacintosh) {
|
|
+ if (!(isNative && isMacintosh)) {
|
|
@@ -343 +343 @@ export class TitlebarPart extends Part implements ITitleService {
|
|
- if (!isMacintosh) {
|
|
+ // if (!(isNative && isMacintosh)) {
|
|
@@ -346 +346 @@ export class TitlebarPart extends Part implements ITitleService {
|
|
- }
|
|
+ // }
|
|
@@ -549 +549 @@ export class TitlebarPart extends Part implements ITitleService {
|
|
- if (!isMacintosh &&
|
|
+ if (!(isNative && isMacintosh) &&
|
|
@@ -567 +567 @@ export class TitlebarPart extends Part implements ITitleService {
|
|
- if (isMacintosh || this.configurationService.getValue<MenuBarVisibility>('window.menuBarVisibility') === 'hidden') {
|
|
+ if ((isNative && isMacintosh) || this.configurationService.getValue<MenuBarVisibility>('window.menuBarVisibility') === 'hidden') {
|
|
diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts
|
|
index 696f351..47af9f7 100644
|
|
--- a/src/vs/workbench/browser/workbench.contribution.ts
|
|
+++ b/src/vs/workbench/browser/workbench.contribution.ts
|
|
@@ -9 +9 @@ import { IConfigurationRegistry, Extensions as ConfigurationExtensions, Configur
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/browser/workbench.ts b/src/vs/workbench/browser/workbench.ts
|
|
index c69d1ab..a34dd7e 100644
|
|
--- a/src/vs/workbench/browser/workbench.ts
|
|
+++ b/src/vs/workbench/browser/workbench.ts
|
|
@@ -13 +13 @@ import { runWhenIdle, IdleValue } from 'vs/base/common/async';
|
|
-import { getZoomLevel } from 'vs/base/browser/browser';
|
|
+import { getZoomLevel, isWindows, isLinux } from 'vs/base/browser/browser';
|
|
@@ -17 +17 @@ import { Registry } from 'vs/platform/registry/common/platform';
|
|
-import { isWindows, isLinux } from 'vs/base/common/platform';
|
|
+import { isWeb } from 'vs/base/common/platform';
|
|
@@ -83 +83 @@ export class Workbench extends Layout {
|
|
- // Inform user about loading issues from the loader
|
|
+ /*// Inform user about loading issues from the loader
|
|
@@ -90 +90 @@ export class Workbench extends Layout {
|
|
- });
|
|
+ });*/
|
|
@@ -272 +272 @@ export class Workbench extends Layout {
|
|
- addClasses(document.body, platformClass); // used by our fonts
|
|
+ addClasses(document.body, platformClass, isWeb ? 'web' : 'native'); // used by our fonts
|
|
diff --git a/src/vs/workbench/common/contextkeys.ts b/src/vs/workbench/common/contextkeys.ts
|
|
index e5b4a41..e623101 100644
|
|
--- a/src/vs/workbench/common/contextkeys.ts
|
|
+++ b/src/vs/workbench/common/contextkeys.ts
|
|
@@ -7 +7 @@ import { RawContextKey } from 'vs/platform/contextkey/common/contextkey';
|
|
-import { isMacintosh, isLinux, isWindows } from 'vs/base/common/platform';
|
|
+import { isMacintosh, isLinux, isWindows } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.ts b/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.ts
|
|
index 787c9ef..bd50c14 100644
|
|
--- a/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.ts
|
|
+++ b/src/vs/workbench/contrib/codeEditor/browser/accessibility/accessibility.ts
|
|
@@ -15 +15 @@ import { Disposable } from 'vs/base/common/lifecycle';
|
|
-import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -197 +197 @@ class AccessibilityHelpWidget extends Widget implements IOverlayWidget {
|
|
- platform.isMacintosh
|
|
+ browser.isMacintosh
|
|
@@ -239 +239 @@ class AccessibilityHelpWidget extends Widget implements IOverlayWidget {
|
|
- platform.isMacintosh
|
|
+ browser.isMacintosh
|
|
diff --git a/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts b/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts
|
|
index b949e00..8a9005c 100644
|
|
--- a/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts
|
|
+++ b/src/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.ts
|
|
@@ -14 +14 @@ import { mixin } from 'vs/base/common/objects';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.ts b/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.ts
|
|
index 5e1b6da..f8643d2 100644
|
|
--- a/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.ts
|
|
+++ b/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.ts
|
|
@@ -8 +8 @@ import { Action } from 'vs/base/common/actions';
|
|
-import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -84 +84 @@ MenuRegistry.appendMenuItem(MenuId.MenubarSelectionMenu, {
|
|
- platform.isMacintosh
|
|
+ browser.isMacintosh
|
|
diff --git a/src/vs/workbench/contrib/debug/browser/debugEditorContribution.ts b/src/vs/workbench/contrib/debug/browser/debugEditorContribution.ts
|
|
index de8fe1e..e8749fa 100644
|
|
--- a/src/vs/workbench/contrib/debug/browser/debugEditorContribution.ts
|
|
+++ b/src/vs/workbench/contrib/debug/browser/debugEditorContribution.ts
|
|
@@ -9,0 +10 @@ import * as env from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -181 +182 @@ export class DebugEditorContribution implements IDebugEditorContribution {
|
|
- if (e.event.rightButton || (env.isMacintosh && e.event.leftButton && e.event.ctrlKey)) {
|
|
+ if (e.event.rightButton || (browser.isMacintosh && e.event.leftButton && e.event.ctrlKey)) {
|
|
@@ -200 +201 @@ export class DebugEditorContribution implements IDebugEditorContribution {
|
|
- if (!env.isLinux && breakpoints.some(bp => !!bp.condition || !!bp.logMessage || !!bp.hitCondition)) {
|
|
+ if (!(env.isNative && env.isLinux) && breakpoints.some(bp => !!bp.condition || !!bp.logMessage || !!bp.hitCondition)) {
|
|
@@ -435 +436 @@ export class DebugEditorContribution implements IDebugEditorContribution {
|
|
- const stopKey = env.isMacintosh ? 'metaKey' : 'ctrlKey';
|
|
+ const stopKey = browser.isMacintosh ? 'metaKey' : 'ctrlKey';
|
|
@@ -453 +454 @@ export class DebugEditorContribution implements IDebugEditorContribution {
|
|
- const stopKey = env.isMacintosh ? KeyCode.Meta : KeyCode.Ctrl;
|
|
+ const stopKey = browser.isMacintosh ? KeyCode.Meta : KeyCode.Ctrl;
|
|
diff --git a/src/vs/workbench/contrib/debug/browser/linkDetector.ts b/src/vs/workbench/contrib/debug/browser/linkDetector.ts
|
|
index 1b6f41c..0c9bf68 100644
|
|
--- a/src/vs/workbench/contrib/debug/browser/linkDetector.ts
|
|
+++ b/src/vs/workbench/contrib/debug/browser/linkDetector.ts
|
|
@@ -9 +9 @@ import { URI as uri } from 'vs/base/common/uri';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/contrib/debug/electron-browser/debug.contribution.ts b/src/vs/workbench/contrib/debug/electron-browser/debug.contribution.ts
|
|
index 5ed1eda..60d3815 100644
|
|
--- a/src/vs/workbench/contrib/debug/electron-browser/debug.contribution.ts
|
|
+++ b/src/vs/workbench/contrib/debug/electron-browser/debug.contribution.ts
|
|
@@ -38 +38 @@ import { IViewsRegistry, Extensions as ViewExtensions } from 'vs/workbench/commo
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/contrib/extensions/node/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/node/extensionsWorkbenchService.ts
|
|
index 7c58491..63ac200 100644
|
|
--- a/src/vs/workbench/contrib/extensions/node/extensionsWorkbenchService.ts
|
|
+++ b/src/vs/workbench/contrib/extensions/node/extensionsWorkbenchService.ts
|
|
@@ -118 +118 @@ class Extension implements IExtension {
|
|
- return `${product.extensionsGallery.itemUrl}?itemName=${this.publisher}.${this.name}`;
|
|
+ return undefined; // `${product.extensionsGallery.itemUrl}?itemName=${this.publisher}.${this.name}`;
|
|
diff --git a/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts b/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts
|
|
index a9f017e..75fe519 100644
|
|
--- a/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts
|
|
+++ b/src/vs/workbench/contrib/files/browser/fileActions.contribution.ts
|
|
@@ -17 +17 @@ import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/co
|
|
-import { isWindows, isMacintosh } from 'vs/base/common/platform';
|
|
+import { isWindows, isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/contrib/files/browser/fileCommands.ts b/src/vs/workbench/contrib/files/browser/fileCommands.ts
|
|
index 59922c1..62d4d5b 100644
|
|
--- a/src/vs/workbench/contrib/files/browser/fileCommands.ts
|
|
+++ b/src/vs/workbench/contrib/files/browser/fileCommands.ts
|
|
@@ -28 +28 @@ import { KeyMod, KeyCode, KeyChord } from 'vs/base/common/keyCodes';
|
|
-import { isWindows, isMacintosh } from 'vs/base/common/platform';
|
|
+import { isWindows, isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/contrib/files/browser/views/emptyView.ts b/src/vs/workbench/contrib/files/browser/views/emptyView.ts
|
|
index 89e2def..9005795 100644
|
|
--- a/src/vs/workbench/contrib/files/browser/views/emptyView.ts
|
|
+++ b/src/vs/workbench/contrib/files/browser/views/emptyView.ts
|
|
@@ -7,0 +8 @@ import * as errors from 'vs/base/common/errors';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -76 +77 @@ export class EmptyView extends ViewletPanel {
|
|
- const actionClass = this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE ? AddRootFolderAction : env.isMacintosh ? OpenFileFolderAction : OpenFolderAction;
|
|
+ const actionClass = this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE ? AddRootFolderAction : browser.isMacintosh ? OpenFileFolderAction : OpenFolderAction;
|
|
diff --git a/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts b/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts
|
|
index b3c2d15..067215e 100644
|
|
--- a/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts
|
|
+++ b/src/vs/workbench/contrib/files/browser/views/explorerViewer.ts
|
|
@@ -38 +38 @@ import { DesktopDragAndDropData, ExternalElementsDragAndDropData, ElementsDragAn
|
|
-import { isMacintosh, isLinux } from 'vs/base/common/platform';
|
|
+import { isMacintosh, isLinux } from 'vs/base/browser/browser';
|
|
@@ -606,0 +607 @@ export class FileDragAndDrop implements ITreeDragAndDrop<ExplorerItem> {
|
|
+ return (require('vs/../../../../packages/vscode/src/workbench') as typeof import('vs/../../../../packages/vscode/src/workbench')).workbench.handleExternalDrop(target, originalEvent);
|
|
diff --git a/src/vs/workbench/contrib/files/common/explorerModel.ts b/src/vs/workbench/contrib/files/common/explorerModel.ts
|
|
index a5cd043..0569a5f 100644
|
|
--- a/src/vs/workbench/contrib/files/common/explorerModel.ts
|
|
+++ b/src/vs/workbench/contrib/files/common/explorerModel.ts
|
|
@@ -77,0 +78 @@ export class ExplorerItem {
|
|
+ private forgotChildren: boolean = false;
|
|
@@ -248 +249,2 @@ export class ExplorerItem {
|
|
- if (!this._isDirectoryResolved) {
|
|
+ if (!this._isDirectoryResolved || this.forgotChildren) {
|
|
+ this.forgotChildren = false;
|
|
@@ -277,0 +280 @@ export class ExplorerItem {
|
|
+ this.forgotChildren = true;
|
|
diff --git a/src/vs/workbench/contrib/files/common/explorerService.ts b/src/vs/workbench/contrib/files/common/explorerService.ts
|
|
index 46d87e4..fd3f927 100644
|
|
--- a/src/vs/workbench/contrib/files/common/explorerService.ts
|
|
+++ b/src/vs/workbench/contrib/files/common/explorerService.ts
|
|
@@ -333 +333 @@ export class ExplorerService implements IExplorerService {
|
|
- if (shouldRefresh()) {
|
|
+ if (true || shouldRefresh()) {
|
|
diff --git a/src/vs/workbench/contrib/logs/common/logs.contribution.ts b/src/vs/workbench/contrib/logs/common/logs.contribution.ts
|
|
index 25df212..6c40c9d 100644
|
|
--- a/src/vs/workbench/contrib/logs/common/logs.contribution.ts
|
|
+++ b/src/vs/workbench/contrib/logs/common/logs.contribution.ts
|
|
@@ -31 +31,2 @@ class LogOutputChannels extends Disposable implements IWorkbenchContribution {
|
|
- outputChannelRegistry.registerChannel({ id: Constants.mainLogChannelId, label: nls.localize('mainLog', "Main"), file: URI.file(join(environmentService.logsPath, `main.log`)), log: true });
|
|
+ // This channel only seems to be used when loading the app and we skip all of that, so it is never actually created or written to.
|
|
+ // outputChannelRegistry.registerChannel({ id: Constants.mainLogChannelId, label: nls.localize('mainLog', "Main"), file: URI.file(join(environmentService.logsPath, `main.log`)), log: true });
|
|
diff --git a/src/vs/workbench/contrib/output/common/outputLinkProvider.ts b/src/vs/workbench/contrib/output/common/outputLinkProvider.ts
|
|
index efa955e..e72f41d 100644
|
|
--- a/src/vs/workbench/contrib/output/common/outputLinkProvider.ts
|
|
+++ b/src/vs/workbench/contrib/output/common/outputLinkProvider.ts
|
|
@@ -77,0 +78 @@ export class OutputLinkProvider {
|
|
+ return Promise.resolve([]);
|
|
diff --git a/src/vs/workbench/contrib/quickopen/browser/quickopen.contribution.ts b/src/vs/workbench/contrib/quickopen/browser/quickopen.contribution.ts
|
|
index 92f9b7c..b8300c6 100644
|
|
--- a/src/vs/workbench/contrib/quickopen/browser/quickopen.contribution.ts
|
|
+++ b/src/vs/workbench/contrib/quickopen/browser/quickopen.contribution.ts
|
|
@@ -6 +6 @@
|
|
-import * as env from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -94 +94 @@ Registry.as<IQuickOpenRegistry>(QuickOpenExtensions.Quickopen).registerQuickOpen
|
|
- description: env.isMacintosh ? nls.localize('gotoLineDescriptionMac', "Go to Line") : nls.localize('gotoLineDescriptionWin', "Go to Line")
|
|
+ description: browser.isMacintosh ? nls.localize('gotoLineDescriptionMac', "Go to Line") : nls.localize('gotoLineDescriptionWin', "Go to Line")
|
|
diff --git a/src/vs/workbench/contrib/relauncher/electron-browser/relauncher.contribution.ts b/src/vs/workbench/contrib/relauncher/electron-browser/relauncher.contribution.ts
|
|
index e3c9552..a64fda2 100644
|
|
--- a/src/vs/workbench/contrib/relauncher/electron-browser/relauncher.contribution.ts
|
|
+++ b/src/vs/workbench/contrib/relauncher/electron-browser/relauncher.contribution.ts
|
|
@@ -18 +18,2 @@ import { isEqual } from 'vs/base/common/resources';
|
|
-import { isLinux, isMacintosh } from 'vs/base/common/platform';
|
|
+import { isNative, isLinux } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
@@ -69 +70 @@ export class SettingsChangeRelauncher extends Disposable implements IWorkbenchCo
|
|
- if (isMacintosh && config.window && typeof config.window.nativeTabs === 'boolean' && config.window.nativeTabs !== this.nativeTabs) {
|
|
+ if (isNative && isMacintosh && config.window && typeof config.window.nativeTabs === 'boolean' && config.window.nativeTabs !== this.nativeTabs) {
|
|
@@ -75 +76 @@ export class SettingsChangeRelauncher extends Disposable implements IWorkbenchCo
|
|
- if (isMacintosh && config.window && typeof config.window.nativeFullScreen === 'boolean' && config.window.nativeFullScreen !== this.nativeFullScreen) {
|
|
+ if (isNative && isMacintosh && config.window && typeof config.window.nativeFullScreen === 'boolean' && config.window.nativeFullScreen !== this.nativeFullScreen) {
|
|
diff --git a/src/vs/workbench/contrib/scm/browser/scmViewlet.ts b/src/vs/workbench/contrib/scm/browser/scmViewlet.ts
|
|
index b8db2f2..be84602 100644
|
|
--- a/src/vs/workbench/contrib/scm/browser/scmViewlet.ts
|
|
+++ b/src/vs/workbench/contrib/scm/browser/scmViewlet.ts
|
|
@@ -46 +46 @@ import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/la
|
|
-import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -769 +769 @@ export class RepositoryPanel extends ViewletPanel {
|
|
- const label = binding ? binding.getLabel() : (platform.isMacintosh ? 'Cmd+Enter' : 'Ctrl+Enter');
|
|
+ const label = binding ? binding.getLabel() : (browser.isMacintosh ? 'Cmd+Enter' : 'Ctrl+Enter');
|
|
diff --git a/src/vs/workbench/contrib/search/browser/search.contribution.ts b/src/vs/workbench/contrib/search/browser/search.contribution.ts
|
|
index 1f8088e..f5b0551 100644
|
|
--- a/src/vs/workbench/contrib/search/browser/search.contribution.ts
|
|
+++ b/src/vs/workbench/contrib/search/browser/search.contribution.ts
|
|
@@ -686 +686 @@ configurationRegistry.registerConfiguration({
|
|
- included: platform.isMacintosh
|
|
+ included: platform.isNative && platform.isMacintosh
|
|
diff --git a/src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts b/src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts
|
|
index 24ba122..3ab8804 100644
|
|
--- a/src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts
|
|
+++ b/src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts
|
|
@@ -12,0 +13 @@ import * as nls from 'vs/nls';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -185 +186 @@ configurationRegistry.registerConfiguration({
|
|
- default: 'auto',
|
|
+ default: browser.isSafari ? 'dom' : 'auto',
|
|
@@ -196 +197 @@ configurationRegistry.registerConfiguration({
|
|
- default: platform.isMacintosh ? 'selectWord' : platform.isWindows ? 'copyPaste' : 'default',
|
|
+ default: browser.isMacintosh ? 'selectWord' : browser.isWindows ? 'copyPaste' : 'default',
|
|
diff --git a/src/vs/workbench/contrib/terminal/browser/terminalLinkHandler.ts b/src/vs/workbench/contrib/terminal/browser/terminalLinkHandler.ts
|
|
index 933e4ea..b661a7e 100644
|
|
--- a/src/vs/workbench/contrib/terminal/browser/terminalLinkHandler.ts
|
|
+++ b/src/vs/workbench/contrib/terminal/browser/terminalLinkHandler.ts
|
|
@@ -7,0 +8 @@ import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -234 +235 @@ export class TerminalLinkHandler {
|
|
- return platform.isMacintosh ? event.metaKey : event.ctrlKey;
|
|
+ return browser.isMacintosh ? event.metaKey : event.ctrlKey;
|
|
@@ -242 +243 @@ export class TerminalLinkHandler {
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
diff --git a/src/vs/workbench/contrib/terminal/browser/terminalPanel.ts b/src/vs/workbench/contrib/terminal/browser/terminalPanel.ts
|
|
index 780147c..2e8c9af 100644
|
|
--- a/src/vs/workbench/contrib/terminal/browser/terminalPanel.ts
|
|
+++ b/src/vs/workbench/contrib/terminal/browser/terminalPanel.ts
|
|
@@ -8,0 +9 @@ import * as platform from 'vs/base/common/platform';
|
|
+import * as browser from 'vs/base/browser/browser';
|
|
@@ -211 +212 @@ export class TerminalPanel extends Panel {
|
|
- if (event.which === 2 && platform.isLinux) {
|
|
+ if (event.which === 2 && browser.isLinux) {
|
|
@@ -234 +235 @@ export class TerminalPanel extends Panel {
|
|
- if (platform.isMacintosh) {
|
|
+ if (browser.isMacintosh) {
|
|
diff --git a/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js b/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js
|
|
index 74fc798..0b6b5eb 100644
|
|
--- a/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js
|
|
+++ b/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js
|
|
@@ -10 +10,19 @@
|
|
- const ipcRenderer = require('electron').ipcRenderer;
|
|
+ const ipcRenderer = {
|
|
+ on: (channel, callback) => {
|
|
+ window.addEventListener("message", (event) => {
|
|
+ if (event.data.channel === channel) {
|
|
+ callback(event.data.channel, ...event.data.data);
|
|
+ }
|
|
+ });
|
|
+ },
|
|
+ sendToHost: (channel, ...args) => {
|
|
+ window.parent.postMessage({
|
|
+ channel,
|
|
+ data: args,
|
|
+ id: document.body.id,
|
|
+ }, "*");
|
|
+ },
|
|
+ };
|
|
+ const process = {
|
|
+ pid: undefined,
|
|
+ };
|
|
@@ -22,7 +40,7 @@
|
|
- require('electron').webFrame.registerURLSchemeAsPrivileged('vscode-resource', {
|
|
- secure: true,
|
|
- bypassCSP: false,
|
|
- allowServiceWorkers: false,
|
|
- supportFetchAPI: true,
|
|
- corsEnabled: true
|
|
- });
|
|
+ // require('electron').webFrame.registerURLSchemeAsPrivileged('vscode-resource', {
|
|
+ // secure: true,
|
|
+ // bypassCSP: false,
|
|
+ // allowServiceWorkers: false,
|
|
+ // supportFetchAPI: true,
|
|
+ // corsEnabled: true
|
|
+ // });
|
|
@@ -328 +346,3 @@
|
|
- newFrame.contentWindow.focus();
|
|
+ if (document.hasFocus()) {
|
|
+ newFrame.contentWindow.focus();
|
|
+ }
|
|
diff --git a/src/vs/workbench/contrib/webview/electron-browser/webview.contribution.ts b/src/vs/workbench/contrib/webview/electron-browser/webview.contribution.ts
|
|
index 484ff86..f3f57cb 100644
|
|
--- a/src/vs/workbench/contrib/webview/electron-browser/webview.contribution.ts
|
|
+++ b/src/vs/workbench/contrib/webview/electron-browser/webview.contribution.ts
|
|
@@ -23 +23 @@ import { InputFocusedContextKey } from 'vs/platform/contextkey/common/contextkey
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts b/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts
|
|
index 3e56ee1..3880c57 100644
|
|
--- a/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts
|
|
+++ b/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts
|
|
@@ -11 +11 @@ import { Disposable } from 'vs/base/common/lifecycle';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isMacintosh } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/contrib/welcome/walkThrough/common/walkThroughContentProvider.ts b/src/vs/workbench/contrib/welcome/walkThrough/common/walkThroughContentProvider.ts
|
|
index 147f05b..6bc9061 100644
|
|
--- a/src/vs/workbench/contrib/welcome/walkThrough/common/walkThroughContentProvider.ts
|
|
+++ b/src/vs/workbench/contrib/welcome/walkThrough/common/walkThroughContentProvider.ts
|
|
@@ -30,0 +31 @@ export class WalkThroughContentProvider implements ITextModelContentProvider, IW
|
|
+ /*
|
|
@@ -38 +39,11 @@ export class WalkThroughContentProvider implements ITextModelContentProvider, IW
|
|
- }) : this.textFileService.resolveTextContent(URI.file(resource.fsPath)).then(content => content.value));
|
|
+ */
|
|
+ // This works because the only walkthrough that is a module is the welcome page.
|
|
+ // We have to explicitly import it or Webpack won't pick it up.
|
|
+ import("vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page").then((content) => {
|
|
+ resolve(content.default());
|
|
+ }).catch((err) => {
|
|
+ reject(err);
|
|
+ });
|
|
+ }) : (resource.scheme !== "file"
|
|
+ ? fetch(resource.path).then((res) => res.text())
|
|
+ : this.textFileService.resolveTextContent(URI.file(resource.fsPath)).then(content => content.value)));
|
|
@@ -64 +75 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi
|
|
- return this.textFileService.resolveTextContent(URI.file(resource.fsPath)).then(content => {
|
|
+ return fetch(resource.path).then((res) => res.text()).then((content) => {
|
|
@@ -80,0 +92 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi
|
|
+ /*
|
|
@@ -85 +97,2 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi
|
|
- marked(markdown, { renderer });
|
|
+ */
|
|
+ marked(content, { renderer });
|
|
@@ -91 +104 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi
|
|
- this.modelService.updateModel(codeEditorModel, content.value);
|
|
+ this.modelService.updateModel(codeEditorModel, content);
|
|
diff --git a/src/vs/workbench/electron-browser/actions/helpActions.ts b/src/vs/workbench/electron-browser/actions/helpActions.ts
|
|
index 79e2ba2..8c1b21b 100644
|
|
--- a/src/vs/workbench/electron-browser/actions/helpActions.ts
|
|
+++ b/src/vs/workbench/electron-browser/actions/helpActions.ts
|
|
@@ -9 +9,2 @@ import product from 'vs/platform/product/node/product';
|
|
-import { isMacintosh, isLinux, language } from 'vs/base/common/platform';
|
|
+import { language } from 'vs/base/common/platform';
|
|
+import { isMacintosh, isLinux } from 'vs/base/browser/browser';
|
|
diff --git a/src/vs/workbench/electron-browser/actions/windowActions.ts b/src/vs/workbench/electron-browser/actions/windowActions.ts
|
|
index 48ef482..dc47f81 100644
|
|
--- a/src/vs/workbench/electron-browser/actions/windowActions.ts
|
|
+++ b/src/vs/workbench/electron-browser/actions/windowActions.ts
|
|
@@ -388 +388 @@ export abstract class BaseOpenRecentAction extends Action {
|
|
- placeHolder: isMacintosh ? nls.localize('openRecentPlaceHolderMac', "Select to open (hold Cmd-key to open in new window)") : nls.localize('openRecentPlaceHolder', "Select to open (hold Ctrl-key to open in new window)"),
|
|
+ placeHolder: browser.isMacintosh ? nls.localize('openRecentPlaceHolderMac', "Select to open (hold Cmd-key to open in new window)") : nls.localize('openRecentPlaceHolder', "Select to open (hold Ctrl-key to open in new window)"),
|
|
diff --git a/src/vs/workbench/electron-browser/main.contribution.ts b/src/vs/workbench/electron-browser/main.contribution.ts
|
|
index 71bc992..a76dad4 100644
|
|
--- a/src/vs/workbench/electron-browser/main.contribution.ts
|
|
+++ b/src/vs/workbench/electron-browser/main.contribution.ts
|
|
@@ -13 +13,2 @@ import { KeyMod, KeyChord, KeyCode } from 'vs/base/common/keyCodes';
|
|
-import { isWindows, isLinux, isMacintosh } from 'vs/base/common/platform';
|
|
+import { isNative, isWeb } from 'vs/base/common/platform';
|
|
+import { isMacintosh, isWindows, isLinux } from 'vs/base/browser/browser';
|
|
@@ -37 +38 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService';
|
|
- if (isMacintosh) {
|
|
+ if (isNative && isMacintosh) {
|
|
@@ -225 +226 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService';
|
|
- if (isMacintosh) {
|
|
+ if (isNative && isMacintosh) {
|
|
@@ -306 +307 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService';
|
|
- when: IsMacContext.toNegated()
|
|
+ // when: IsMacContext.toNegated()
|
|
@@ -538 +539 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService';
|
|
- isMacintosh ?
|
|
+ isNative && isMacintosh ?
|
|
@@ -545 +546 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService';
|
|
- isMacintosh ?
|
|
+ isNative && isMacintosh ?
|
|
@@ -626 +627 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService';
|
|
- 'included': isWindows || isLinux
|
|
+ 'included': isWeb || isWindows || isLinux
|
|
@@ -633 +634 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService';
|
|
- 'included': isWindows || isLinux
|
|
+ 'included': isWeb || isWindows || isLinux
|
|
@@ -649,2 +650,2 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService';
|
|
- 'enum': ['native', 'custom'],
|
|
- 'default': isLinux ? 'native' : 'custom',
|
|
+ 'enum': ['custom'],
|
|
+ 'default': isNative && isLinux ? 'native' : 'custom',
|
|
@@ -659 +660 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService';
|
|
- 'included': isMacintosh && parseFloat(os.release()) >= 16 // Minimum: macOS Sierra (10.12.x = darwin 16.x)
|
|
+ 'included': isNative && isMacintosh && parseFloat(os.release()) >= 16 // Minimum: macOS Sierra (10.12.x = darwin 16.x)
|
|
@@ -665 +666 @@ import { LogStorageAction } from 'vs/platform/storage/node/storageService';
|
|
- 'included': isMacintosh
|
|
+ 'included': isNative && isMacintosh
|
|
diff --git a/src/vs/workbench/electron-browser/main.ts b/src/vs/workbench/electron-browser/main.ts
|
|
index b94daa8..5963023 100644
|
|
--- a/src/vs/workbench/electron-browser/main.ts
|
|
+++ b/src/vs/workbench/electron-browser/main.ts
|
|
@@ -140,0 +141,2 @@ class CodeRendererMain extends Disposable {
|
|
+
|
|
+ (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.serviceCollection = services.serviceCollection;
|
|
diff --git a/src/vs/workbench/electron-browser/window.ts b/src/vs/workbench/electron-browser/window.ts
|
|
index 111982b..73d83a4 100644
|
|
--- a/src/vs/workbench/electron-browser/window.ts
|
|
+++ b/src/vs/workbench/electron-browser/window.ts
|
|
@@ -53 +53 @@ const TextInputActions: IAction[] = [
|
|
- new Action('editor.action.clipboardPasteAction', nls.localize('paste', "Paste"), undefined, true, () => Promise.resolve(document.execCommand('paste'))),
|
|
+ (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.pasteAction,
|
|
@@ -361 +361 @@ export class ElectronWindow extends Disposable {
|
|
- !isMacintosh || // macOS only
|
|
+ !browser.isMacintosh || // macOS only
|
|
diff --git a/src/vs/workbench/services/contextmenu/electron-browser/contextmenuService.ts b/src/vs/workbench/services/contextmenu/electron-browser/contextmenuService.ts
|
|
index 75f0026..2e94683 100644
|
|
--- a/src/vs/workbench/services/contextmenu/electron-browser/contextmenuService.ts
|
|
+++ b/src/vs/workbench/services/contextmenu/electron-browser/contextmenuService.ts
|
|
@@ -22 +22 @@ import { getTitleBarStyle } from 'vs/platform/windows/common/windows';
|
|
-import { isMacintosh } from 'vs/base/common/platform';
|
|
+import { isNative, isMacintosh } from 'vs/base/common/platform';
|
|
@@ -49 +49 @@ export class ContextMenuService extends Disposable implements IContextMenuServic
|
|
- if (!isMacintosh && getTitleBarStyle(configurationService, environmentService) === 'custom') {
|
|
+ if (!(isNative && isMacintosh) && getTitleBarStyle(configurationService, environmentService) === 'custom') {
|
|
diff --git a/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts b/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts
|
|
index 059f821..b19f292 100644
|
|
--- a/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts
|
|
+++ b/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts
|
|
@@ -32,0 +33 @@ function getSystemExtensionsRoot(): string {
|
|
+ return (require('vs/../../../../packages/vscode/src/fill/paths') as typeof import ('vs/../../../../packages/vscode/src/fill/paths')).getBuiltInExtensionsDirectory();
|
|
@@ -191,2 +192,3 @@ export class CachedExtensionScanner {
|
|
- const folderStat = await pfs.stat(input.absoluteFolderPath);
|
|
- input.mtime = folderStat.mtime.getTime();
|
|
+ const folderStats = await Promise.all([pfs.stat(input.absoluteFolderPath), ...input.extraFolderPaths.map((p) => pfs.stat(p))]);
|
|
+ input.mtime = folderStats[0].mtime.getTime();
|
|
+ input.extraMtimes = folderStats.slice(1).map((s) => s.mtime.getTime());
|
|
@@ -259 +261 @@ export class CachedExtensionScanner {
|
|
- new ExtensionScannerInput(version, commit, locale, devMode, getSystemExtensionsRoot(), true, false, translations),
|
|
+ new ExtensionScannerInput(version, commit, locale, devMode, getSystemExtensionsRoot(), true, false, translations, environmentService.extraBuiltinExtensionPaths),
|
|
@@ -290 +292 @@ export class CachedExtensionScanner {
|
|
- new ExtensionScannerInput(version, commit, locale, devMode, environmentService.extensionsPath, false, false, translations),
|
|
+ new ExtensionScannerInput(version, commit, locale, devMode, environmentService.extensionsPath, false, false, translations, environmentService.extraExtensionPaths),
|
|
diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts
|
|
index b337206..0477464 100644
|
|
--- a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts
|
|
+++ b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts
|
|
@@ -96,0 +97 @@ export class ExtensionService extends Disposable implements IExtensionService {
|
|
+ private readonly retry = (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.retry.register('Extension Host', () => this.startExtensionHost());
|
|
@@ -442,0 +444 @@ export class ExtensionService extends Disposable implements IExtensionService {
|
|
+ extHostProcessWorker.start()!.then(() => this.retry.recover());
|
|
@@ -449,0 +452 @@ export class ExtensionService extends Disposable implements IExtensionService {
|
|
+ return this.retry.run();
|
|
diff --git a/src/vs/workbench/services/extensions/node/extensionHostProcess.ts b/src/vs/workbench/services/extensions/node/extensionHostProcess.ts
|
|
index 838a9c7..2308cee 100644
|
|
--- a/src/vs/workbench/services/extensions/node/extensionHostProcess.ts
|
|
+++ b/src/vs/workbench/services/extensions/node/extensionHostProcess.ts
|
|
@@ -192 +192 @@ function connectToRenderer(protocol: IMessagePassingProtocol): Promise<IRenderer
|
|
- process.kill(initData.parentPid, 0); // throws an exception if the main process doesn't exist anymore.
|
|
+ // process.kill(initData.parentPid, 0); // throws an exception if the main process doesn't exist anymore.
|
|
diff --git a/src/vs/workbench/services/extensions/node/extensionPoints.ts b/src/vs/workbench/services/extensions/node/extensionPoints.ts
|
|
index 6e2179d..e6f38c9 100644
|
|
--- a/src/vs/workbench/services/extensions/node/extensionPoints.ts
|
|
+++ b/src/vs/workbench/services/extensions/node/extensionPoints.ts
|
|
@@ -445,0 +446 @@ export class ExtensionScannerInput {
|
|
+ public extraMtimes: number[] = [];
|
|
@@ -455 +456,2 @@ export class ExtensionScannerInput {
|
|
- public readonly tanslations: Translations
|
|
+ public readonly tanslations: Translations,
|
|
+ public readonly extraFolderPaths: string[] = [],
|
|
@@ -469,0 +472,16 @@ export class ExtensionScannerInput {
|
|
+ // Allow extra folder paths in any order. Doesn't account for duplicates though.
|
|
+ const eq = (a: string[] = [], b: string[] = [], atimes: number[] = [], btimes: number[] = []): boolean => {
|
|
+ if (a.length !== b.length || atimes.length !== btimes.length) {
|
|
+ return false;
|
|
+ }
|
|
+ for (let i = 0; i < a.length; ++i) {
|
|
+ const index = b.indexOf(a[i]);
|
|
+ if (index === -1) {
|
|
+ return false;
|
|
+ }
|
|
+ if (atimes[i] !== btimes[index]) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+ return true;
|
|
+ };
|
|
@@ -479,0 +498 @@ export class ExtensionScannerInput {
|
|
+ && eq(a.extraFolderPaths, b.extraFolderPaths, a.extraMtimes, b.extraMtimes)
|
|
@@ -530 +549 @@ export class ExtensionScanner {
|
|
- * Scan a list of extensions defined in `absoluteFolderPath`
|
|
+ * Scan a list of extensions defined in `absoluteFolderPath` and `extraFolderPaths`
|
|
@@ -532 +551 @@ export class ExtensionScanner {
|
|
- public static async scanExtensions(input: ExtensionScannerInput, log: ILog, resolver: IExtensionResolver | null = null): Promise<IExtensionDescription[]> {
|
|
+ public static async scanExtensions(input: ExtensionScannerInput, log: ILog, resolvers: IExtensionResolver | IExtensionResolver[] | null = null): Promise<IExtensionDescription[]> {
|
|
@@ -533,0 +553 @@ export class ExtensionScanner {
|
|
+ const extraFolderPaths = input.extraFolderPaths;
|
|
@@ -537,2 +557,4 @@ export class ExtensionScanner {
|
|
- if (!resolver) {
|
|
- resolver = new DefaultExtensionResolver(absoluteFolderPath);
|
|
+ if (!resolvers) {
|
|
+ resolvers = [absoluteFolderPath, ...extraFolderPaths].map((p) => new DefaultExtensionResolver(p));
|
|
+ } else if (!Array.isArray(resolvers)) {
|
|
+ resolvers = [resolvers];
|
|
@@ -552 +574,2 @@ export class ExtensionScanner {
|
|
- let refs = await resolver.resolveExtensions();
|
|
+ let refs = await Promise.all(resolvers.map((resolver) => resolver.resolveExtensions()))
|
|
+ .then((results) => results.reduce((flat, current) => flat.concat(current), []));
|
|
diff --git a/src/vs/workbench/services/files/node/watcher/nsfw/watcherService.ts b/src/vs/workbench/services/files/node/watcher/nsfw/watcherService.ts
|
|
index 33d3697..af71b01 100644
|
|
--- a/src/vs/workbench/services/files/node/watcher/nsfw/watcherService.ts
|
|
+++ b/src/vs/workbench/services/files/node/watcher/nsfw/watcherService.ts
|
|
@@ -26,0 +27 @@ export class FileWatcher {
|
|
+ private readonly retry = (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.retry.register('Watcher', () => this.startWatching());
|
|
@@ -56,0 +58,2 @@ export class FileWatcher {
|
|
+ this.toDispose = dispose(this.toDispose);
|
|
+ return this.retry.run();
|
|
@@ -113 +116 @@ export class FileWatcher {
|
|
- }));
|
|
+ })).then(() => this.retry.recover());
|
|
diff --git a/src/vs/workbench/services/files/node/watcher/unix/watcherService.ts b/src/vs/workbench/services/files/node/watcher/unix/watcherService.ts
|
|
index 8059d2c..b5a3d68 100644
|
|
--- a/src/vs/workbench/services/files/node/watcher/unix/watcherService.ts
|
|
+++ b/src/vs/workbench/services/files/node/watcher/unix/watcherService.ts
|
|
@@ -26,0 +27 @@ export class FileWatcher {
|
|
+ private readonly retry = (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.retry.register('Watcher', () => this.startWatching());
|
|
@@ -59,0 +61,2 @@ export class FileWatcher {
|
|
+ this.toDispose = dispose(this.toDispose);
|
|
+ return this.retry.run();
|
|
@@ -116 +119 @@ export class FileWatcher {
|
|
- }));
|
|
+ })).then(() => this.retry.recover());
|
|
diff --git a/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts b/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts
|
|
index 74dad64..7bc591a 100644
|
|
--- a/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts
|
|
+++ b/src/vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts
|
|
@@ -25,0 +26 @@ export class OutOfProcessWin32FolderWatcher {
|
|
+ private readonly retry = (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.retry.register('Watcher', () => this.startWatcher());
|
|
@@ -52,0 +54 @@ export class OutOfProcessWin32FolderWatcher {
|
|
+ this.handle.stdout.once('data', () => this.retry.recover());
|
|
@@ -110,0 +113 @@ export class OutOfProcessWin32FolderWatcher {
|
|
+ return this.retry.run();
|
|
diff --git a/src/vs/workbench/services/files2/node/diskFileSystemProvider.ts b/src/vs/workbench/services/files2/node/diskFileSystemProvider.ts
|
|
index 18edf56..8e5b395 100644
|
|
--- a/src/vs/workbench/services/files2/node/diskFileSystemProvider.ts
|
|
+++ b/src/vs/workbench/services/files2/node/diskFileSystemProvider.ts
|
|
@@ -79,2 +79,2 @@ export class DiskFileSystemProvider extends Disposable implements IFileSystemPro
|
|
- for (let i = 0; i < children.length; i++) {
|
|
- const child = children[i];
|
|
+ await Promise.all(children.map(async (child) => { // for (let i = 0; i < children.length; i++) {
|
|
+ // const child = children[i];
|
|
@@ -88 +88 @@ export class DiskFileSystemProvider extends Disposable implements IFileSystemPro
|
|
- }
|
|
+ })); // }
|
|
diff --git a/src/vs/workbench/services/heap/node/heap.ts b/src/vs/workbench/services/heap/node/heap.ts
|
|
index 8f627ba..9a795eb 100644
|
|
--- a/src/vs/workbench/services/heap/node/heap.ts
|
|
+++ b/src/vs/workbench/services/heap/node/heap.ts
|
|
@@ -33,0 +34 @@ export class HeapService implements IHeapService {
|
|
+ if (typeof process === 'undefined' || typeof process.stdout === 'undefined') { return; } // Doesn't work in the browser (for running the extension host in worker).
|
|
diff --git a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts
|
|
index 0c3d16f..e27e98c 100644
|
|
--- a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts
|
|
+++ b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts
|
|
@@ -16 +16 @@ import { KeybindingParser } from 'vs/base/common/keybindingParser';
|
|
-import { OS, OperatingSystem } from 'vs/base/common/platform';
|
|
+import { OS, OperatingSystem, isNative } from 'vs/base/common/platform';
|
|
@@ -131 +131 @@ export class KeyboardMapperFactory {
|
|
- if (OS === OperatingSystem.Windows) {
|
|
+ if (isNative && OS === OperatingSystem.Windows) {
|
|
diff --git a/src/vs/workbench/services/search/node/searchService.ts b/src/vs/workbench/services/search/node/searchService.ts
|
|
index fcef06a..80f6800 100644
|
|
--- a/src/vs/workbench/services/search/node/searchService.ts
|
|
+++ b/src/vs/workbench/services/search/node/searchService.ts
|
|
@@ -11 +11 @@ import { Event } from 'vs/base/common/event';
|
|
-import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
|
|
+import { Disposable, IDisposable, toDisposable, dispose } from 'vs/base/common/lifecycle';
|
|
@@ -422,0 +423 @@ export class DiskSearch implements ISearchResultProvider {
|
|
+ private toDispose: IDisposable[] = [];
|
|
@@ -458,6 +459,15 @@ export class DiskSearch implements ISearchResultProvider {
|
|
- const client = new Client(
|
|
- getPathFromAmdModule(require, 'bootstrap-fork'),
|
|
- opts);
|
|
-
|
|
- const channel = getNextTickChannel(client.getChannel('search'));
|
|
- this.raw = new SearchChannelClient(channel);
|
|
+ const connect = (): Promise<void> => {
|
|
+ const client = new Client(
|
|
+ getPathFromAmdModule(require, 'bootstrap-fork'),
|
|
+ opts);
|
|
+ client.onDidProcessExit(() => {
|
|
+ this.toDispose = dispose(this.toDispose);
|
|
+ retry.run();
|
|
+ }, null, this.toDispose);
|
|
+ this.toDispose.push(client);
|
|
+ const channel = getNextTickChannel(client.getChannel('search'));
|
|
+ this.raw = new SearchChannelClient(channel);
|
|
+ return this.raw.clearCache('test-connectivity');
|
|
+ };
|
|
+ const retry = (require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench')).workbench.retry.register('Searcher', connect);
|
|
+ retry.run();
|
|
diff --git a/src/vs/workbench/services/timer/electron-browser/timerService.ts b/src/vs/workbench/services/timer/electron-browser/timerService.ts
|
|
index 6e6fbcc..645bd72 100644
|
|
--- a/src/vs/workbench/services/timer/electron-browser/timerService.ts
|
|
+++ b/src/vs/workbench/services/timer/electron-browser/timerService.ts
|
|
@@ -426,0 +427 @@ export function didUseCachedData(): boolean {
|
|
+ return false;
|