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 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 | IList - return platform.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey; + return browser.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey; @@ -556 +556 @@ export class MouseController 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 implements IConfigWatcher, 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..f9de58c 100644 --- a/src/vs/code/electron-browser/issue/issueReporterMain.ts +++ b/src/vs/code/electron-browser/issue/issueReporterMain.ts @@ -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..04c0933 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,8 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I + Promise.all([ // Copied from src/vs/code/electron-main/main.ts + environmentService.extensionsPath, + environmentService.nodeCachedDataDir, + environmentService.logsPath, + environmentService.globalStorageHome, + environmentService.workspaceStorageHome, + environmentService.backupHome + ].map((path): undefined | Promise => path ? mkdirp(path) : undefined)); @@ -119,0 +130,2 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I + const backupMainService = instantiationService.createInstance(BackupMainService) as BackupMainService; + backupMainService.initialize().catch(console.error); @@ -223,0 +236 @@ async function handshake(configuration: ISharedProcessConfiguration): Promise { + const cli = await new Promise((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..0206957 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) { @@ -378 +377 @@ export class Configuration extends CommonEditorConfiguration { - emptySelectionClipboard: browser.isWebKit || browser.isFirefox, + emptySelectionClipboard: false, // browser.isWebKit || browser.isFirefox, 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..8a326c6 100644 --- a/src/vs/editor/contrib/clipboard/clipboard.ts +++ b/src/vs/editor/contrib/clipboard/clipboard.ts @@ -29 +29,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; @@ -176,0 +178 @@ class ExecCommandPasteAction extends ExecCommandAction { + const { workbench } = require('vs/../../../../packages/vscode/src/workbench') as typeof import ('vs/../../../../packages/vscode/src/workbench'); @@ -181 +183 @@ 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 +193,2 @@ class ExecCommandPasteAction extends ExecCommandAction { - order: 3 + order: 3, + when: workbench.clipboardContextKey, @@ -194,0 +198,14 @@ class ExecCommandPasteAction extends ExecCommandAction { + + public async run(accessor, editor: ICodeEditor): Promise { + if (editor instanceof (require('vs/editor/browser/widget/codeEditorWidget') as typeof import('vs/editor/browser/widget/codeEditorWidget')).CodeEditorWidget) { + 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/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(logService: ILogService, modulePath: string, acti - r = require.__$__nodeRequire(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('window.menuBarVisibility') === 'hidden') { + if ((isNative && isMacintosh) || this.configurationService.getValue('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 { + 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(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..03728d0 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 + // }); 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..2dde675 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(); 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 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 => { + 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;