mirror of
https://github.com/Microsoft/vscode
synced 2024-08-28 05:19:39 +00:00
debt - introduce and adopt FileAccess
deprecate amd.ts and require.toUrl methods
This commit is contained in:
parent
5d8c90cdb3
commit
7f035b4be7
2
src/bootstrap-amd.js
vendored
2
src/bootstrap-amd.js
vendored
|
@ -14,7 +14,7 @@ const nlsConfig = bootstrap.setupNLS();
|
||||||
|
|
||||||
// Bootstrap: Loader
|
// Bootstrap: Loader
|
||||||
loader.config({
|
loader.config({
|
||||||
baseUrl: bootstrap.fileUriFromPath(__dirname, process.platform === 'win32'),
|
baseUrl: bootstrap.fileUriFromPath(__dirname, { isWindows: process.platform === 'win32' }),
|
||||||
catchError: true,
|
catchError: true,
|
||||||
nodeRequire: require,
|
nodeRequire: require,
|
||||||
nodeMain: __filename,
|
nodeMain: __filename,
|
||||||
|
|
4
src/bootstrap-window.js
vendored
4
src/bootstrap-window.js
vendored
|
@ -103,7 +103,7 @@
|
||||||
window['MonacoEnvironment'] = {};
|
window['MonacoEnvironment'] = {};
|
||||||
|
|
||||||
const loaderConfig = {
|
const loaderConfig = {
|
||||||
baseUrl: `${bootstrapLib.fileUriFromPath(configuration.appRoot, safeProcess.platform === 'win32')}/out`,
|
baseUrl: `${bootstrapLib.fileUriFromPath(configuration.appRoot, { isWindows: safeProcess.platform === 'win32' })}/out`,
|
||||||
'vs/nls': nlsConfig
|
'vs/nls': nlsConfig
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -241,7 +241,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {{ fileUriFromPath: (path: string, isWindows: boolean) => string; }}
|
* @return {{ fileUriFromPath: (path: string, config: { isWindows?: boolean, scheme?: string, fallbackAuthority?: string }) => string; }}
|
||||||
*/
|
*/
|
||||||
function bootstrap() {
|
function bootstrap() {
|
||||||
// @ts-ignore (defined in bootstrap.js)
|
// @ts-ignore (defined in bootstrap.js)
|
||||||
|
|
22
src/bootstrap.js
vendored
22
src/bootstrap.js
vendored
|
@ -88,10 +88,13 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} path
|
* @param {string} path
|
||||||
* @param {boolean} isWindows
|
* @param {{ isWindows?: boolean, scheme?: string, fallbackAuthority?: string }} config
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
function fileUriFromPath(path, isWindows) {
|
function fileUriFromPath(path, config) {
|
||||||
|
|
||||||
|
// Since we are building a URI, we normalize any backlsash
|
||||||
|
// to slashes and we ensure that the path begins with a '/'.
|
||||||
let pathName = path.replace(/\\/g, '/');
|
let pathName = path.replace(/\\/g, '/');
|
||||||
if (pathName.length > 0 && pathName.charAt(0) !== '/') {
|
if (pathName.length > 0 && pathName.charAt(0) !== '/') {
|
||||||
pathName = `/${pathName}`;
|
pathName = `/${pathName}`;
|
||||||
|
@ -99,10 +102,17 @@
|
||||||
|
|
||||||
/** @type {string} */
|
/** @type {string} */
|
||||||
let uri;
|
let uri;
|
||||||
if (isWindows && pathName.startsWith('//')) { // specially handle Windows UNC paths
|
|
||||||
uri = encodeURI(`file:${pathName}`);
|
// Windows: in order to support UNC paths (which start with '//')
|
||||||
} else {
|
// that have their own authority, we do not use the provided authority
|
||||||
uri = encodeURI(`file://${pathName}`);
|
// but rather preserve it.
|
||||||
|
if (config.isWindows && pathName.startsWith('//')) {
|
||||||
|
uri = encodeURI(`${config.scheme || 'file'}:${pathName}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise we optionally add the provided authority if specified
|
||||||
|
else {
|
||||||
|
uri = encodeURI(`${config.scheme || 'file'}://${config.fallbackAuthority || ''}${pathName}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return uri.replace(/#/g, '%23');
|
return uri.replace(/#/g, '%23');
|
||||||
|
|
3
src/typings/require.d.ts
vendored
3
src/typings/require.d.ts
vendored
|
@ -41,6 +41,9 @@ declare const define: {
|
||||||
};
|
};
|
||||||
|
|
||||||
interface NodeRequire {
|
interface NodeRequire {
|
||||||
|
/**
|
||||||
|
* @deprecated use `FileAccess.asFileUri()` for node.js contexts or `FileAccess.asBrowserUri` for browser contexts.
|
||||||
|
*/
|
||||||
toUrl(path: string): string;
|
toUrl(path: string): string;
|
||||||
(dependencies: string[], callback: (...args: any[]) => any, errorback?: (err: any) => void): any;
|
(dependencies: string[], callback: (...args: any[]) => any, errorback?: (err: any) => void): any;
|
||||||
config(data: any): any;
|
config(data: any): any;
|
||||||
|
|
|
@ -13,7 +13,7 @@ import { Emitter, Event } from 'vs/base/common/event';
|
||||||
import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
|
import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
|
||||||
import * as platform from 'vs/base/common/platform';
|
import * as platform from 'vs/base/common/platform';
|
||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
import { Schemas, RemoteAuthorities } from 'vs/base/common/network';
|
import { Schemas, FileAccess, RemoteAuthorities } from 'vs/base/common/network';
|
||||||
import { BrowserFeatures } from 'vs/base/browser/canIUse';
|
import { BrowserFeatures } from 'vs/base/browser/canIUse';
|
||||||
|
|
||||||
export function clearNode(node: HTMLElement): void {
|
export function clearNode(node: HTMLElement): void {
|
||||||
|
@ -1223,10 +1223,12 @@ export function asDomUri(uri: URI): URI {
|
||||||
if (!uri) {
|
if (!uri) {
|
||||||
return uri;
|
return uri;
|
||||||
}
|
}
|
||||||
if (Schemas.vscodeRemote === uri.scheme) {
|
|
||||||
|
if (uri.scheme === Schemas.vscodeRemote) {
|
||||||
return RemoteAuthorities.rewrite(uri);
|
return RemoteAuthorities.rewrite(uri);
|
||||||
}
|
}
|
||||||
return uri;
|
|
||||||
|
return FileAccess.asBrowserUri(uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -5,10 +5,16 @@
|
||||||
|
|
||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use `FileAccess.asFileUri(relativePath, requireFn).fsPath`
|
||||||
|
*/
|
||||||
export function getPathFromAmdModule(requirefn: typeof require, relativePath: string): string {
|
export function getPathFromAmdModule(requirefn: typeof require, relativePath: string): string {
|
||||||
return getUriFromAmdModule(requirefn, relativePath).fsPath;
|
return getUriFromAmdModule(requirefn, relativePath).fsPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use `FileAccess.asFileUri()` for node.js contexts or `FileAccess.asBrowserUri` for browser contexts.
|
||||||
|
*/
|
||||||
export function getUriFromAmdModule(requirefn: typeof require, relativePath: string): URI {
|
export function getUriFromAmdModule(requirefn: typeof require, relativePath: string): URI {
|
||||||
return URI.parse(requirefn.toUrl(relativePath));
|
return URI.parse(requirefn.toUrl(relativePath));
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,3 +129,40 @@ class RemoteAuthoritiesImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const RemoteAuthorities = new RemoteAuthoritiesImpl();
|
export const RemoteAuthorities = new RemoteAuthoritiesImpl();
|
||||||
|
|
||||||
|
class FileAccessImpl {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a URI to use in contexts where the browser is responsible
|
||||||
|
* for loading (e.g. fetch()) or when used within the DOM.
|
||||||
|
*/
|
||||||
|
asBrowserUri(uri: URI): URI;
|
||||||
|
asBrowserUri(moduleId: string, moduleIdToUrl: { toUrl(moduleId: string): string }): URI;
|
||||||
|
asBrowserUri(uriOrModule: URI | string, moduleIdToUrl?: { toUrl(moduleId: string): string }): URI {
|
||||||
|
const uri = this.toUri(uriOrModule, moduleIdToUrl);
|
||||||
|
|
||||||
|
return uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the `file` URI to use in contexts where node.js
|
||||||
|
* is responsible for loading.
|
||||||
|
*/
|
||||||
|
asFileUri(uri: URI): URI;
|
||||||
|
asFileUri(moduleId: string, moduleIdToUrl: { toUrl(moduleId: string): string }): URI;
|
||||||
|
asFileUri(uriOrModule: URI | string, moduleIdToUrl?: { toUrl(moduleId: string): string }): URI {
|
||||||
|
const uri = this.toUri(uriOrModule, moduleIdToUrl);
|
||||||
|
|
||||||
|
return uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
private toUri(uriOrModule: URI | string, moduleIdToUrl?: { toUrl(moduleId: string): string }): URI {
|
||||||
|
if (URI.isUri(uriOrModule)) {
|
||||||
|
return uriOrModule;
|
||||||
|
}
|
||||||
|
|
||||||
|
return URI.parse(moduleIdToUrl!.toUrl(uriOrModule));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const FileAccess = new FileAccessImpl();
|
||||||
|
|
|
@ -3,14 +3,14 @@
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
interface IPaths {
|
interface IPaths {
|
||||||
getAppDataPath(platform: string): string;
|
getAppDataPath(platform: string): string;
|
||||||
getDefaultUserDataPath(platform: string): string;
|
getDefaultUserDataPath(platform: string): string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const pathsPath = getPathFromAmdModule(require, 'paths');
|
const pathsPath = FileAccess.asFileUri('paths', require).fsPath;
|
||||||
const paths = require.__$__nodeRequire<IPaths>(pathsPath);
|
const paths = require.__$__nodeRequire<IPaths>(pathsPath);
|
||||||
export const getAppDataPath = paths.getAppDataPath;
|
export const getAppDataPath = paths.getAppDataPath;
|
||||||
export const getDefaultUserDataPath = paths.getDefaultUserDataPath;
|
export const getDefaultUserDataPath = paths.getDefaultUserDataPath;
|
||||||
|
|
|
@ -15,7 +15,7 @@ import * as extpath from 'vs/base/common/extpath';
|
||||||
import * as Platform from 'vs/base/common/platform';
|
import * as Platform from 'vs/base/common/platform';
|
||||||
import { LineDecoder } from 'vs/base/node/decoder';
|
import { LineDecoder } from 'vs/base/node/decoder';
|
||||||
import { CommandOptions, ForkOptions, SuccessData, Source, TerminateResponse, TerminateResponseCode, Executable } from 'vs/base/common/processes';
|
import { CommandOptions, ForkOptions, SuccessData, Source, TerminateResponse, TerminateResponseCode, Executable } from 'vs/base/common/processes';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
export { CommandOptions, ForkOptions, SuccessData, Source, TerminateResponse, TerminateResponseCode };
|
export { CommandOptions, ForkOptions, SuccessData, Source, TerminateResponse, TerminateResponseCode };
|
||||||
|
|
||||||
export type ValueCallback<T> = (value: T | Promise<T>) => void;
|
export type ValueCallback<T> = (value: T | Promise<T>) => void;
|
||||||
|
@ -67,7 +67,7 @@ function terminateProcess(process: cp.ChildProcess, cwd?: string): Promise<Termi
|
||||||
}
|
}
|
||||||
} else if (Platform.isLinux || Platform.isMacintosh) {
|
} else if (Platform.isLinux || Platform.isMacintosh) {
|
||||||
try {
|
try {
|
||||||
const cmd = getPathFromAmdModule(require, 'vs/base/node/terminateProcess.sh');
|
const cmd = FileAccess.asFileUri('vs/base/node/terminateProcess.sh', require).fsPath;
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
cp.execFile(cmd, [process.pid.toString()], { encoding: 'utf8', shell: true } as cp.ExecFileOptions, (err, stdout, stderr) => {
|
cp.execFile(cmd, [process.pid.toString()], { encoding: 'utf8', shell: true } as cp.ExecFileOptions, (err, stdout, stderr) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
import { exec } from 'child_process';
|
import { exec } from 'child_process';
|
||||||
import { ProcessItem } from 'vs/base/common/processes';
|
import { ProcessItem } from 'vs/base/common/processes';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
export function listProcesses(rootPid: number): Promise<ProcessItem> {
|
export function listProcesses(rootPid: number): Promise<ProcessItem> {
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ export function listProcesses(rootPid: number): Promise<ProcessItem> {
|
||||||
// The cpu usage value reported on Linux is the average over the process lifetime,
|
// The cpu usage value reported on Linux is the average over the process lifetime,
|
||||||
// recalculate the usage over a one second interval
|
// recalculate the usage over a one second interval
|
||||||
// JSON.stringify is needed to escape spaces, https://github.com/nodejs/node/issues/6803
|
// JSON.stringify is needed to escape spaces, https://github.com/nodejs/node/issues/6803
|
||||||
let cmd = JSON.stringify(getPathFromAmdModule(require, 'vs/base/node/cpuUsage.sh'));
|
let cmd = JSON.stringify(FileAccess.asFileUri('vs/base/node/cpuUsage.sh', require).fsPath);
|
||||||
cmd += ' ' + pids.join(' ');
|
cmd += ' ' + pids.join(' ');
|
||||||
|
|
||||||
exec(cmd, {}, (err, stdout, stderr) => {
|
exec(cmd, {}, (err, stdout, stderr) => {
|
||||||
|
@ -208,7 +208,7 @@ export function listProcesses(rootPid: number): Promise<ProcessItem> {
|
||||||
if (process.platform !== 'linux') {
|
if (process.platform !== 'linux') {
|
||||||
reject(err || new Error(stderr.toString()));
|
reject(err || new Error(stderr.toString()));
|
||||||
} else {
|
} else {
|
||||||
const cmd = JSON.stringify(getPathFromAmdModule(require, 'vs/base/node/ps.sh'));
|
const cmd = JSON.stringify(FileAccess.asFileUri('vs/base/node/ps.sh', require).fsPath);
|
||||||
exec(cmd, {}, (err, stdout, stderr) => {
|
exec(cmd, {}, (err, stdout, stderr) => {
|
||||||
if (err || stderr) {
|
if (err || stderr) {
|
||||||
reject(err || new Error(stderr.toString()));
|
reject(err || new Error(stderr.toString()));
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { Disposable } from 'vs/base/common/lifecycle';
|
import { Disposable } from 'vs/base/common/lifecycle';
|
||||||
import { Event } from 'vs/base/common/event';
|
import { Event } from 'vs/base/common/event';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
import { BrowserWindow, BrowserWindowConstructorOptions, app, AuthInfo, WebContents, Event as ElectronEvent } from 'electron';
|
import { BrowserWindow, BrowserWindowConstructorOptions, app, AuthInfo, WebContents, Event as ElectronEvent } from 'electron';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
|
|
||||||
type LoginEvent = {
|
type LoginEvent = {
|
||||||
event: ElectronEvent;
|
event: ElectronEvent;
|
||||||
|
@ -59,7 +59,7 @@ export class ProxyAuthHandler extends Disposable {
|
||||||
show: true,
|
show: true,
|
||||||
title: 'VS Code',
|
title: 'VS Code',
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
preload: getPathFromAmdModule(require, 'vs/base/parts/sandbox/electron-browser/preload.js'),
|
preload: FileAccess.asFileUri('vs/base/parts/sandbox/electron-browser/preload.js', require).fsPath,
|
||||||
sandbox: true,
|
sandbox: true,
|
||||||
contextIsolation: true,
|
contextIsolation: true,
|
||||||
enableWebSQL: false,
|
enableWebSQL: false,
|
||||||
|
@ -76,7 +76,7 @@ export class ProxyAuthHandler extends Disposable {
|
||||||
}
|
}
|
||||||
|
|
||||||
const win = new BrowserWindow(opts);
|
const win = new BrowserWindow(opts);
|
||||||
const url = require.toUrl('vs/code/electron-sandbox/proxy/auth.html');
|
const windowUrl = FileAccess.asBrowserUri('vs/code/electron-sandbox/proxy/auth.html', require);
|
||||||
const proxyUrl = `${authInfo.host}:${authInfo.port}`;
|
const proxyUrl = `${authInfo.host}:${authInfo.port}`;
|
||||||
const title = localize('authRequire', "Proxy Authentication Required");
|
const title = localize('authRequire', "Proxy Authentication Required");
|
||||||
const message = localize('proxyauth', "The proxy {0} requires authentication.", proxyUrl);
|
const message = localize('proxyauth', "The proxy {0} requires authentication.", proxyUrl);
|
||||||
|
@ -97,6 +97,6 @@ export class ProxyAuthHandler extends Disposable {
|
||||||
win.close();
|
win.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
win.loadURL(url);
|
win.loadURL(windowUrl.toString(true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifec
|
||||||
import { IThemeMainService } from 'vs/platform/theme/electron-main/themeMainService';
|
import { IThemeMainService } from 'vs/platform/theme/electron-main/themeMainService';
|
||||||
import { toDisposable, DisposableStore } from 'vs/base/common/lifecycle';
|
import { toDisposable, DisposableStore } from 'vs/base/common/lifecycle';
|
||||||
import { Event } from 'vs/base/common/event';
|
import { Event } from 'vs/base/common/event';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
export class SharedProcess implements ISharedProcess {
|
export class SharedProcess implements ISharedProcess {
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ export class SharedProcess implements ISharedProcess {
|
||||||
show: false,
|
show: false,
|
||||||
backgroundColor: this.themeMainService.getBackgroundColor(),
|
backgroundColor: this.themeMainService.getBackgroundColor(),
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
preload: getPathFromAmdModule(require, 'vs/base/parts/sandbox/electron-browser/preload.js'),
|
preload: FileAccess.asFileUri('vs/base/parts/sandbox/electron-browser/preload.js', require).fsPath,
|
||||||
nodeIntegration: true,
|
nodeIntegration: true,
|
||||||
enableWebSQL: false,
|
enableWebSQL: false,
|
||||||
enableRemoteModule: false,
|
enableRemoteModule: false,
|
||||||
|
@ -60,8 +60,10 @@ export class SharedProcess implements ISharedProcess {
|
||||||
windowId: this.window.id
|
windowId: this.window.id
|
||||||
};
|
};
|
||||||
|
|
||||||
const url = `${require.toUrl('vs/code/electron-browser/sharedProcess/sharedProcess.html')}?config=${encodeURIComponent(JSON.stringify(config))}`;
|
const windowUrl = FileAccess
|
||||||
this.window.loadURL(url);
|
.asBrowserUri('vs/code/electron-browser/sharedProcess/sharedProcess.html', require)
|
||||||
|
.with({ query: `config=${encodeURIComponent(JSON.stringify(config))}` });
|
||||||
|
this.window.loadURL(windowUrl.toString(true));
|
||||||
|
|
||||||
// Prevent the window from dying
|
// Prevent the window from dying
|
||||||
const onClose = (e: ElectronEvent) => {
|
const onClose = (e: ElectronEvent) => {
|
||||||
|
|
|
@ -34,9 +34,8 @@ import { ThemeIcon } from 'vs/platform/theme/common/themeService';
|
||||||
import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService';
|
import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService';
|
||||||
import { IStorageMainService } from 'vs/platform/storage/node/storageMainService';
|
import { IStorageMainService } from 'vs/platform/storage/node/storageMainService';
|
||||||
import { IFileService } from 'vs/platform/files/common/files';
|
import { IFileService } from 'vs/platform/files/common/files';
|
||||||
|
import { FileAccess, Schemas } from 'vs/base/common/network';
|
||||||
import { ColorScheme } from 'vs/platform/theme/common/theme';
|
import { ColorScheme } from 'vs/platform/theme/common/theme';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
import { Schemas } from 'vs/base/common/network';
|
|
||||||
|
|
||||||
export interface IWindowCreationOptions {
|
export interface IWindowCreationOptions {
|
||||||
state: IWindowState;
|
state: IWindowState;
|
||||||
|
@ -168,7 +167,7 @@ export class CodeWindow extends Disposable implements ICodeWindow {
|
||||||
show: !isFullscreenOrMaximized,
|
show: !isFullscreenOrMaximized,
|
||||||
title: product.nameLong,
|
title: product.nameLong,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
preload: getPathFromAmdModule(require, 'vs/base/parts/sandbox/electron-browser/preload.js'),
|
preload: FileAccess.asFileUri('vs/base/parts/sandbox/electron-browser/preload.js', require).fsPath,
|
||||||
enableWebSQL: false,
|
enableWebSQL: false,
|
||||||
enableRemoteModule: false,
|
enableRemoteModule: false,
|
||||||
spellcheck: false,
|
spellcheck: false,
|
||||||
|
@ -837,7 +836,10 @@ export class CodeWindow extends Disposable implements ICodeWindow {
|
||||||
workbench = 'vs/code/electron-browser/workbench/workbench.html';
|
workbench = 'vs/code/electron-browser/workbench/workbench.html';
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${require.toUrl(workbench)}?config=${encodeURIComponent(JSON.stringify(config))}`;
|
return FileAccess
|
||||||
|
.asBrowserUri(workbench, require)
|
||||||
|
.with({ query: `config=${encodeURIComponent(JSON.stringify(config))}` })
|
||||||
|
.toString(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
serializeWindowState(): IWindowState {
|
serializeWindowState(): IWindowState {
|
||||||
|
|
|
@ -10,6 +10,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'
|
||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
import { CancellationToken } from 'vs/base/common/cancellation';
|
import { CancellationToken } from 'vs/base/common/cancellation';
|
||||||
import { IExtensionManifest, IExtension, ExtensionType } from 'vs/platform/extensions/common/extensions';
|
import { IExtensionManifest, IExtension, ExtensionType } from 'vs/platform/extensions/common/extensions';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
export const EXTENSION_IDENTIFIER_PATTERN = '^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$';
|
export const EXTENSION_IDENTIFIER_PATTERN = '^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$';
|
||||||
export const EXTENSION_IDENTIFIER_REGEX = new RegExp(EXTENSION_IDENTIFIER_PATTERN);
|
export const EXTENSION_IDENTIFIER_REGEX = new RegExp(EXTENSION_IDENTIFIER_PATTERN);
|
||||||
|
@ -260,7 +261,7 @@ export interface IExtensionTipsService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export const DefaultIconPath = require.toUrl('./media/defaultIcon.png');
|
export const DefaultIconPath = FileAccess.asBrowserUri('./media/defaultIcon.png', require).toString(true);
|
||||||
export const ExtensionsLabel = localize('extensions', "Extensions");
|
export const ExtensionsLabel = localize('extensions', "Extensions");
|
||||||
export const ExtensionsLocalizedLabel = { value: ExtensionsLabel, original: 'Extensions' };
|
export const ExtensionsLocalizedLabel = { value: ExtensionsLabel, original: 'Extensions' };
|
||||||
export const ExtensionsChannelId = 'extensions';
|
export const ExtensionsChannelId = 'extensions';
|
||||||
|
|
|
@ -14,7 +14,6 @@ import { areSameExtensions, ExtensionIdentifierWithVersion, groupByExtension, ge
|
||||||
import { Limiter, Queue } from 'vs/base/common/async';
|
import { Limiter, Queue } from 'vs/base/common/async';
|
||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
import { INativeEnvironmentService } from 'vs/platform/environment/common/environment';
|
import { INativeEnvironmentService } from 'vs/platform/environment/common/environment';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
import { localizeManifest } from 'vs/platform/extensionManagement/common/extensionNls';
|
import { localizeManifest } from 'vs/platform/extensionManagement/common/extensionNls';
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { IProductService } from 'vs/platform/product/common/productService';
|
import { IProductService } from 'vs/platform/product/common/productService';
|
||||||
|
@ -23,6 +22,7 @@ import { extract, ExtractError } from 'vs/base/node/zip';
|
||||||
import { isWindows } from 'vs/base/common/platform';
|
import { isWindows } from 'vs/base/common/platform';
|
||||||
import { flatten } from 'vs/base/common/arrays';
|
import { flatten } from 'vs/base/common/arrays';
|
||||||
import { IStringDictionary } from 'vs/base/common/collections';
|
import { IStringDictionary } from 'vs/base/common/collections';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
const ERROR_SCANNING_SYS_EXTENSIONS = 'scanningSystem';
|
const ERROR_SCANNING_SYS_EXTENSIONS = 'scanningSystem';
|
||||||
const ERROR_SCANNING_USER_EXTENSIONS = 'scanningUser';
|
const ERROR_SCANNING_USER_EXTENSIONS = 'scanningUser';
|
||||||
|
@ -336,7 +336,7 @@ export class ExtensionsScanner extends Disposable {
|
||||||
private _devSystemExtensionsPath: string | null = null;
|
private _devSystemExtensionsPath: string | null = null;
|
||||||
private get devSystemExtensionsPath(): string {
|
private get devSystemExtensionsPath(): string {
|
||||||
if (!this._devSystemExtensionsPath) {
|
if (!this._devSystemExtensionsPath) {
|
||||||
this._devSystemExtensionsPath = path.normalize(path.join(getPathFromAmdModule(require, ''), '..', '.build', 'builtInExtensions'));
|
this._devSystemExtensionsPath = path.normalize(path.join(FileAccess.asFileUri('', require).fsPath, '..', '.build', 'builtInExtensions'));
|
||||||
}
|
}
|
||||||
return this._devSystemExtensionsPath;
|
return this._devSystemExtensionsPath;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import { Client } from 'vs/base/parts/ipc/node/ipc.cp';
|
||||||
import { IDiskFileChange, ILogMessage } from 'vs/platform/files/node/watcher/watcher';
|
import { IDiskFileChange, ILogMessage } from 'vs/platform/files/node/watcher/watcher';
|
||||||
import { Disposable } from 'vs/base/common/lifecycle';
|
import { Disposable } from 'vs/base/common/lifecycle';
|
||||||
import { IWatcherRequest, IWatcherService } from 'vs/platform/files/node/watcher/nsfw/watcher';
|
import { IWatcherRequest, IWatcherService } from 'vs/platform/files/node/watcher/nsfw/watcher';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
export class FileWatcher extends Disposable {
|
export class FileWatcher extends Disposable {
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ export class FileWatcher extends Disposable {
|
||||||
|
|
||||||
private startWatching(): void {
|
private startWatching(): void {
|
||||||
const client = this._register(new Client(
|
const client = this._register(new Client(
|
||||||
getPathFromAmdModule(require, 'bootstrap-fork'),
|
FileAccess.asFileUri('bootstrap-fork', require).fsPath,
|
||||||
{
|
{
|
||||||
serverName: 'File Watcher (nsfw)',
|
serverName: 'File Watcher (nsfw)',
|
||||||
args: ['--type=watcherService'],
|
args: ['--type=watcherService'],
|
||||||
|
|
|
@ -8,7 +8,7 @@ import { Client } from 'vs/base/parts/ipc/node/ipc.cp';
|
||||||
import { IDiskFileChange, ILogMessage } from 'vs/platform/files/node/watcher/watcher';
|
import { IDiskFileChange, ILogMessage } from 'vs/platform/files/node/watcher/watcher';
|
||||||
import { Disposable } from 'vs/base/common/lifecycle';
|
import { Disposable } from 'vs/base/common/lifecycle';
|
||||||
import { IWatcherRequest, IWatcherOptions, IWatcherService } from 'vs/platform/files/node/watcher/unix/watcher';
|
import { IWatcherRequest, IWatcherOptions, IWatcherService } from 'vs/platform/files/node/watcher/unix/watcher';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
export class FileWatcher extends Disposable {
|
export class FileWatcher extends Disposable {
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ export class FileWatcher extends Disposable {
|
||||||
|
|
||||||
private startWatching(): void {
|
private startWatching(): void {
|
||||||
const client = this._register(new Client(
|
const client = this._register(new Client(
|
||||||
getPathFromAmdModule(require, 'bootstrap-fork'),
|
FileAccess.asFileUri('bootstrap-fork', require).fsPath,
|
||||||
{
|
{
|
||||||
serverName: 'File Watcher (chokidar)',
|
serverName: 'File Watcher (chokidar)',
|
||||||
args: ['--type=watcherService'],
|
args: ['--type=watcherService'],
|
||||||
|
|
|
@ -8,7 +8,7 @@ import { FileChangeType } from 'vs/platform/files/common/files';
|
||||||
import * as decoder from 'vs/base/node/decoder';
|
import * as decoder from 'vs/base/node/decoder';
|
||||||
import * as glob from 'vs/base/common/glob';
|
import * as glob from 'vs/base/common/glob';
|
||||||
import { IDiskFileChange, ILogMessage } from 'vs/platform/files/node/watcher/watcher';
|
import { IDiskFileChange, ILogMessage } from 'vs/platform/files/node/watcher/watcher';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
export class OutOfProcessWin32FolderWatcher {
|
export class OutOfProcessWin32FolderWatcher {
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ export class OutOfProcessWin32FolderWatcher {
|
||||||
args.push('-verbose');
|
args.push('-verbose');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.handle = cp.spawn(getPathFromAmdModule(require, 'vs/platform/files/node/watcher/win32/CodeHelper.exe'), args);
|
this.handle = cp.spawn(FileAccess.asFileUri('vs/platform/files/node/watcher/win32/CodeHelper.exe', require).fsPath, args);
|
||||||
|
|
||||||
const stdoutLineDecoder = new decoder.LineDecoder();
|
const stdoutLineDecoder = new decoder.LineDecoder();
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,9 @@ import { ILogService } from 'vs/platform/log/common/log';
|
||||||
import { IWindowState } from 'vs/platform/windows/electron-main/windows';
|
import { IWindowState } from 'vs/platform/windows/electron-main/windows';
|
||||||
import { listProcesses } from 'vs/base/node/ps';
|
import { listProcesses } from 'vs/base/node/ps';
|
||||||
import { IDialogMainService } from 'vs/platform/dialogs/electron-main/dialogs';
|
import { IDialogMainService } from 'vs/platform/dialogs/electron-main/dialogs';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { zoomLevelToZoomFactor } from 'vs/platform/windows/common/windows';
|
import { zoomLevelToZoomFactor } from 'vs/platform/windows/common/windows';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
const DEFAULT_BACKGROUND_COLOR = '#1E1E1E';
|
const DEFAULT_BACKGROUND_COLOR = '#1E1E1E';
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ export class IssueMainService implements ICommonIssueService {
|
||||||
title: localize('issueReporter', "Issue Reporter"),
|
title: localize('issueReporter', "Issue Reporter"),
|
||||||
backgroundColor: data.styles.backgroundColor || DEFAULT_BACKGROUND_COLOR,
|
backgroundColor: data.styles.backgroundColor || DEFAULT_BACKGROUND_COLOR,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
preload: getPathFromAmdModule(require, 'vs/base/parts/sandbox/electron-browser/preload.js'),
|
preload: FileAccess.asFileUri('vs/base/parts/sandbox/electron-browser/preload.js', require).fsPath,
|
||||||
enableWebSQL: false,
|
enableWebSQL: false,
|
||||||
enableRemoteModule: false,
|
enableRemoteModule: false,
|
||||||
spellcheck: false,
|
spellcheck: false,
|
||||||
|
@ -261,7 +261,7 @@ export class IssueMainService implements ICommonIssueService {
|
||||||
backgroundColor: data.styles.backgroundColor,
|
backgroundColor: data.styles.backgroundColor,
|
||||||
title: localize('processExplorer', "Process Explorer"),
|
title: localize('processExplorer', "Process Explorer"),
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
preload: getPathFromAmdModule(require, 'vs/base/parts/sandbox/electron-browser/preload.js'),
|
preload: FileAccess.asFileUri('vs/base/parts/sandbox/electron-browser/preload.js', require).fsPath,
|
||||||
enableWebSQL: false,
|
enableWebSQL: false,
|
||||||
enableRemoteModule: false,
|
enableRemoteModule: false,
|
||||||
spellcheck: false,
|
spellcheck: false,
|
||||||
|
@ -294,7 +294,7 @@ export class IssueMainService implements ICommonIssueService {
|
||||||
};
|
};
|
||||||
|
|
||||||
this._processExplorerWindow.loadURL(
|
this._processExplorerWindow.loadURL(
|
||||||
toLauchUrl('vs/code/electron-sandbox/processExplorer/processExplorer.html', windowConfiguration));
|
toWindowUrl('vs/code/electron-sandbox/processExplorer/processExplorer.html', windowConfiguration));
|
||||||
|
|
||||||
this._processExplorerWindow.on('close', () => this._processExplorerWindow = null);
|
this._processExplorerWindow.on('close', () => this._processExplorerWindow = null);
|
||||||
|
|
||||||
|
@ -435,11 +435,11 @@ export class IssueMainService implements ICommonIssueService {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return toLauchUrl('vs/code/electron-sandbox/issue/issueReporter.html', windowConfiguration);
|
return toWindowUrl('vs/code/electron-sandbox/issue/issueReporter.html', windowConfiguration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function toLauchUrl<T>(pathToHtml: string, windowConfiguration: T): string {
|
function toWindowUrl<T>(modulePathToHtml: string, windowConfiguration: T): string {
|
||||||
const environment = parseArgs(process.argv, OPTIONS);
|
const environment = parseArgs(process.argv, OPTIONS);
|
||||||
const config = Object.assign(environment, windowConfiguration);
|
const config = Object.assign(environment, windowConfiguration);
|
||||||
for (const keyValue of Object.keys(config)) {
|
for (const keyValue of Object.keys(config)) {
|
||||||
|
@ -449,5 +449,8 @@ function toLauchUrl<T>(pathToHtml: string, windowConfiguration: T): string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${require.toUrl(pathToHtml)}?config=${encodeURIComponent(JSON.stringify(config))}`;
|
return FileAccess
|
||||||
|
.asBrowserUri(modulePathToHtml, require)
|
||||||
|
.with({ query: `config=${encodeURIComponent(JSON.stringify(config))}` })
|
||||||
|
.toString(true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
|
|
||||||
import { IProductConfiguration } from 'vs/platform/product/common/productService';
|
import { IProductConfiguration } from 'vs/platform/product/common/productService';
|
||||||
import { isWeb } from 'vs/base/common/platform';
|
import { isWeb } from 'vs/base/common/platform';
|
||||||
import * as path from 'vs/base/common/path';
|
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
import { env } from 'vs/base/common/process';
|
import { env } from 'vs/base/common/process';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
import { dirname, joinPath } from 'vs/base/common/resources';
|
||||||
|
|
||||||
let product: IProductConfiguration;
|
let product: IProductConfiguration;
|
||||||
|
|
||||||
|
@ -43,10 +43,10 @@ if (isWeb || typeof require === 'undefined' || typeof require.__$__nodeRequire !
|
||||||
else {
|
else {
|
||||||
|
|
||||||
// Obtain values from product.json and package.json
|
// Obtain values from product.json and package.json
|
||||||
const rootPath = path.dirname(getPathFromAmdModule(require, ''));
|
const rootPath = dirname(FileAccess.asFileUri('', require));
|
||||||
|
|
||||||
product = require.__$__nodeRequire(path.join(rootPath, 'product.json'));
|
product = require.__$__nodeRequire(joinPath(rootPath, 'product.json').fsPath);
|
||||||
const pkg = require.__$__nodeRequire(path.join(rootPath, 'package.json')) as { version: string; };
|
const pkg = require.__$__nodeRequire(joinPath(rootPath, 'package.json').fsPath) as { version: string; };
|
||||||
|
|
||||||
// Running out of sources
|
// Running out of sources
|
||||||
if (env['VSCODE_DEV']) {
|
if (env['VSCODE_DEV']) {
|
||||||
|
|
|
@ -54,7 +54,7 @@ import { PLAINTEXT_MODE_ID } from 'vs/editor/common/modes/modesRegistry';
|
||||||
import { IQuickAccessRegistry, Extensions as QuickAccessExtensions } from 'vs/platform/quickinput/common/quickAccess';
|
import { IQuickAccessRegistry, Extensions as QuickAccessExtensions } from 'vs/platform/quickinput/common/quickAccess';
|
||||||
import { ActiveGroupEditorsByMostRecentlyUsedQuickAccess, AllEditorsByAppearanceQuickAccess, AllEditorsByMostRecentlyUsedQuickAccess } from 'vs/workbench/browser/parts/editor/editorQuickAccess';
|
import { ActiveGroupEditorsByMostRecentlyUsedQuickAccess, AllEditorsByAppearanceQuickAccess, AllEditorsByMostRecentlyUsedQuickAccess } from 'vs/workbench/browser/parts/editor/editorQuickAccess';
|
||||||
import { IPathService } from 'vs/workbench/services/path/common/pathService';
|
import { IPathService } from 'vs/workbench/services/path/common/pathService';
|
||||||
import { getUriFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
// Register String Editor
|
// Register String Editor
|
||||||
Registry.as<IEditorRegistry>(EditorExtensions.Editors).registerEditor(
|
Registry.as<IEditorRegistry>(EditorExtensions.Editors).registerEditor(
|
||||||
|
@ -423,13 +423,13 @@ editorCommands.setup();
|
||||||
// Touch Bar
|
// Touch Bar
|
||||||
if (isMacintosh) {
|
if (isMacintosh) {
|
||||||
MenuRegistry.appendMenuItem(MenuId.TouchBarContext, {
|
MenuRegistry.appendMenuItem(MenuId.TouchBarContext, {
|
||||||
command: { id: NavigateBackwardsAction.ID, title: NavigateBackwardsAction.LABEL, icon: { dark: getUriFromAmdModule(require, 'vs/workbench/browser/parts/editor/media/back-tb.png') } },
|
command: { id: NavigateBackwardsAction.ID, title: NavigateBackwardsAction.LABEL, icon: { dark: FileAccess.asFileUri('vs/workbench/browser/parts/editor/media/back-tb.png', require) } },
|
||||||
group: 'navigation',
|
group: 'navigation',
|
||||||
order: 0
|
order: 0
|
||||||
});
|
});
|
||||||
|
|
||||||
MenuRegistry.appendMenuItem(MenuId.TouchBarContext, {
|
MenuRegistry.appendMenuItem(MenuId.TouchBarContext, {
|
||||||
command: { id: NavigateForwardAction.ID, title: NavigateForwardAction.LABEL, icon: { dark: getUriFromAmdModule(require, 'vs/workbench/browser/parts/editor/media/forward-tb.png') } },
|
command: { id: NavigateForwardAction.ID, title: NavigateForwardAction.LABEL, icon: { dark: FileAccess.asFileUri('vs/workbench/browser/parts/editor/media/forward-tb.png', require) } },
|
||||||
group: 'navigation',
|
group: 'navigation',
|
||||||
order: 1
|
order: 1
|
||||||
});
|
});
|
||||||
|
|
|
@ -46,13 +46,12 @@ import { withNullAsUndefined, withUndefinedAsNull } from 'vs/base/common/types';
|
||||||
import { hash } from 'vs/base/common/hash';
|
import { hash } from 'vs/base/common/hash';
|
||||||
import { guessMimeTypes } from 'vs/base/common/mime';
|
import { guessMimeTypes } from 'vs/base/common/mime';
|
||||||
import { extname } from 'vs/base/common/resources';
|
import { extname } from 'vs/base/common/resources';
|
||||||
import { Schemas } from 'vs/base/common/network';
|
import { FileAccess, Schemas } from 'vs/base/common/network';
|
||||||
import { EditorActivation, EditorOpenContext } from 'vs/platform/editor/common/editor';
|
import { EditorActivation, EditorOpenContext } from 'vs/platform/editor/common/editor';
|
||||||
import { IDialogService, IFileDialogService, ConfirmResult } from 'vs/platform/dialogs/common/dialogs';
|
import { IDialogService, IFileDialogService, ConfirmResult } from 'vs/platform/dialogs/common/dialogs';
|
||||||
import { ILogService } from 'vs/platform/log/common/log';
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
import { Codicon } from 'vs/base/common/codicons';
|
import { Codicon } from 'vs/base/common/codicons';
|
||||||
import { IFilesConfigurationService, AutoSaveMode } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService';
|
import { IFilesConfigurationService, AutoSaveMode } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
|
|
||||||
export class EditorGroupView extends Themable implements IEditorGroupView {
|
export class EditorGroupView extends Themable implements IEditorGroupView {
|
||||||
|
|
||||||
|
@ -1781,7 +1780,7 @@ registerThemingParticipant((theme, collector, environment) => {
|
||||||
const letterpress = `./media/letterpress${theme.type === 'dark' ? '-dark' : theme.type === 'hc' ? '-hc' : ''}.svg`;
|
const letterpress = `./media/letterpress${theme.type === 'dark' ? '-dark' : theme.type === 'hc' ? '-hc' : ''}.svg`;
|
||||||
collector.addRule(`
|
collector.addRule(`
|
||||||
.monaco-workbench .part.editor > .content .editor-group-container.empty .editor-group-letterpress {
|
.monaco-workbench .part.editor > .content .editor-group-container.empty .editor-group-letterpress {
|
||||||
background-image: url('${getPathFromAmdModule(require, letterpress)}')
|
background-image: url('${FileAccess.asBrowserUri(letterpress, require).fsPath}')
|
||||||
}
|
}
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ import { INotificationService } from 'vs/platform/notification/common/notificati
|
||||||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||||
import Severity from 'vs/base/common/severity';
|
import Severity from 'vs/base/common/severity';
|
||||||
import { ILogService } from 'vs/platform/log/common/log';
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
import { IProductService } from 'vs/platform/product/common/productService';
|
import { IProductService } from 'vs/platform/product/common/productService';
|
||||||
|
|
||||||
function ignore<T>(code: string, value: T): (err: any) => Promise<T> {
|
function ignore<T>(code: string, value: T): (err: any) => Promise<T> {
|
||||||
|
@ -29,7 +29,7 @@ function ignore<T>(code: string, value: T): (err: any) => Promise<T> {
|
||||||
let _source: string | null = null;
|
let _source: string | null = null;
|
||||||
function getSource(): string {
|
function getSource(): string {
|
||||||
if (!_source) {
|
if (!_source) {
|
||||||
const root = getPathFromAmdModule(require, '');
|
const root = FileAccess.asFileUri('', require).fsPath;
|
||||||
_source = path.resolve(root, '..', 'bin', 'code');
|
_source = path.resolve(root, '..', 'bin', 'code');
|
||||||
}
|
}
|
||||||
return _source;
|
return _source;
|
||||||
|
|
|
@ -52,7 +52,7 @@ import { DebugTitleContribution } from 'vs/workbench/contrib/debug/browser/debug
|
||||||
import { Codicon } from 'vs/base/common/codicons';
|
import { Codicon } from 'vs/base/common/codicons';
|
||||||
import { registerColors } from 'vs/workbench/contrib/debug/browser/debugColors';
|
import { registerColors } from 'vs/workbench/contrib/debug/browser/debugColors';
|
||||||
import { DebugEditorContribution } from 'vs/workbench/contrib/debug/browser/debugEditorContribution';
|
import { DebugEditorContribution } from 'vs/workbench/contrib/debug/browser/debugEditorContribution';
|
||||||
import { getUriFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
const registry = Registry.as<IWorkbenchActionRegistry>(WorkbenchActionRegistryExtensions.WorkbenchActions);
|
const registry = Registry.as<IWorkbenchActionRegistry>(WorkbenchActionRegistryExtensions.WorkbenchActions);
|
||||||
const debugCategory = nls.localize('debugCategory', "Debug");
|
const debugCategory = nls.localize('debugCategory', "Debug");
|
||||||
|
@ -210,15 +210,15 @@ function registerCommandsAndActions(): void {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
registerTouchBarEntry(StartAction.ID, StartAction.LABEL, 0, CONTEXT_IN_DEBUG_MODE.toNegated(), getUriFromAmdModule(require, 'vs/workbench/contrib/debug/browser/media/continue-tb.png'));
|
registerTouchBarEntry(StartAction.ID, StartAction.LABEL, 0, CONTEXT_IN_DEBUG_MODE.toNegated(), FileAccess.asFileUri('vs/workbench/contrib/debug/browser/media/continue-tb.png', require));
|
||||||
registerTouchBarEntry(RunAction.ID, RunAction.LABEL, 1, CONTEXT_IN_DEBUG_MODE.toNegated(), getUriFromAmdModule(require, 'vs/workbench/contrib/debug/browser/media/continue-without-debugging-tb.png'));
|
registerTouchBarEntry(RunAction.ID, RunAction.LABEL, 1, CONTEXT_IN_DEBUG_MODE.toNegated(), FileAccess.asFileUri('vs/workbench/contrib/debug/browser/media/continue-without-debugging-tb.png', require));
|
||||||
registerTouchBarEntry(CONTINUE_ID, CONTINUE_LABEL, 0, CONTEXT_DEBUG_STATE.isEqualTo('stopped'), getUriFromAmdModule(require, 'vs/workbench/contrib/debug/browser/media/continue-tb.png'));
|
registerTouchBarEntry(CONTINUE_ID, CONTINUE_LABEL, 0, CONTEXT_DEBUG_STATE.isEqualTo('stopped'), FileAccess.asFileUri('vs/workbench/contrib/debug/browser/media/continue-tb.png', require));
|
||||||
registerTouchBarEntry(PAUSE_ID, PAUSE_LABEL, 1, ContextKeyExpr.and(CONTEXT_IN_DEBUG_MODE, ContextKeyExpr.notEquals('debugState', 'stopped')), getUriFromAmdModule(require, 'vs/workbench/contrib/debug/browser/media/pause-tb.png'));
|
registerTouchBarEntry(PAUSE_ID, PAUSE_LABEL, 1, ContextKeyExpr.and(CONTEXT_IN_DEBUG_MODE, ContextKeyExpr.notEquals('debugState', 'stopped')), FileAccess.asFileUri('vs/workbench/contrib/debug/browser/media/pause-tb.png', require));
|
||||||
registerTouchBarEntry(STEP_OVER_ID, STEP_OVER_LABEL, 2, CONTEXT_IN_DEBUG_MODE, getUriFromAmdModule(require, 'vs/workbench/contrib/debug/browser/media/stepover-tb.png'));
|
registerTouchBarEntry(STEP_OVER_ID, STEP_OVER_LABEL, 2, CONTEXT_IN_DEBUG_MODE, FileAccess.asFileUri('vs/workbench/contrib/debug/browser/media/stepover-tb.png', require));
|
||||||
registerTouchBarEntry(STEP_INTO_ID, STEP_INTO_LABEL, 3, CONTEXT_IN_DEBUG_MODE, getUriFromAmdModule(require, 'vs/workbench/contrib/debug/browser/media/stepinto-tb.png'));
|
registerTouchBarEntry(STEP_INTO_ID, STEP_INTO_LABEL, 3, CONTEXT_IN_DEBUG_MODE, FileAccess.asFileUri('vs/workbench/contrib/debug/browser/media/stepinto-tb.png', require));
|
||||||
registerTouchBarEntry(STEP_OUT_ID, STEP_OUT_LABEL, 4, CONTEXT_IN_DEBUG_MODE, getUriFromAmdModule(require, 'vs/workbench/contrib/debug/browser/media/stepout-tb.png'));
|
registerTouchBarEntry(STEP_OUT_ID, STEP_OUT_LABEL, 4, CONTEXT_IN_DEBUG_MODE, FileAccess.asFileUri('vs/workbench/contrib/debug/browser/media/stepout-tb.png', require));
|
||||||
registerTouchBarEntry(RESTART_SESSION_ID, RESTART_LABEL, 5, CONTEXT_IN_DEBUG_MODE, getUriFromAmdModule(require, 'vs/workbench/contrib/debug/browser/media/restart-tb.png'));
|
registerTouchBarEntry(RESTART_SESSION_ID, RESTART_LABEL, 5, CONTEXT_IN_DEBUG_MODE, FileAccess.asFileUri('vs/workbench/contrib/debug/browser/media/restart-tb.png', require));
|
||||||
registerTouchBarEntry(STOP_ID, STOP_LABEL, 6, CONTEXT_IN_DEBUG_MODE, getUriFromAmdModule(require, 'vs/workbench/contrib/debug/browser/media/stop-tb.png'));
|
registerTouchBarEntry(STOP_ID, STOP_LABEL, 6, CONTEXT_IN_DEBUG_MODE, FileAccess.asFileUri('vs/workbench/contrib/debug/browser/media/stop-tb.png', require));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
import { IDebugHelperService } from 'vs/workbench/contrib/debug/common/debug';
|
import { IDebugHelperService } from 'vs/workbench/contrib/debug/common/debug';
|
||||||
import { Client as TelemetryClient } from 'vs/base/parts/ipc/node/ipc.cp';
|
import { Client as TelemetryClient } from 'vs/base/parts/ipc/node/ipc.cp';
|
||||||
import { TelemetryAppenderClient } from 'vs/platform/telemetry/node/telemetryIpc';
|
import { TelemetryAppenderClient } from 'vs/platform/telemetry/node/telemetryIpc';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
import { TelemetryService } from 'vs/platform/telemetry/common/telemetryService';
|
import { TelemetryService } from 'vs/platform/telemetry/common/telemetryService';
|
||||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||||
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||||
|
@ -24,7 +24,7 @@ export class NodeDebugHelperService implements IDebugHelperService {
|
||||||
createTelemetryService(configurationService: IConfigurationService, args: string[]): TelemetryService | undefined {
|
createTelemetryService(configurationService: IConfigurationService, args: string[]): TelemetryService | undefined {
|
||||||
|
|
||||||
const client = new TelemetryClient(
|
const client = new TelemetryClient(
|
||||||
getPathFromAmdModule(require, 'bootstrap-fork'),
|
FileAccess.asFileUri('bootstrap-fork', require).fsPath,
|
||||||
{
|
{
|
||||||
serverName: 'Debug Telemetry',
|
serverName: 'Debug Telemetry',
|
||||||
timeout: 1000 * 60 * 5,
|
timeout: 1000 * 60 * 5,
|
||||||
|
|
|
@ -40,6 +40,7 @@ import { asDomUri } from 'vs/base/browser/dom';
|
||||||
import { getIgnoredExtensions } from 'vs/platform/userDataSync/common/extensionsMerge';
|
import { getIgnoredExtensions } from 'vs/platform/userDataSync/common/extensionsMerge';
|
||||||
import { isWeb } from 'vs/base/common/platform';
|
import { isWeb } from 'vs/base/common/platform';
|
||||||
import { getExtensionKind } from 'vs/workbench/services/extensions/common/extensionsUtil';
|
import { getExtensionKind } from 'vs/workbench/services/extensions/common/extensionsUtil';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
interface IExtensionStateProvider<T> {
|
interface IExtensionStateProvider<T> {
|
||||||
(extension: Extension): T;
|
(extension: Extension): T;
|
||||||
|
@ -151,10 +152,10 @@ class Extension implements IExtension {
|
||||||
if (this.type === ExtensionType.System && this.local) {
|
if (this.type === ExtensionType.System && this.local) {
|
||||||
if (this.local.manifest && this.local.manifest.contributes) {
|
if (this.local.manifest && this.local.manifest.contributes) {
|
||||||
if (Array.isArray(this.local.manifest.contributes.themes) && this.local.manifest.contributes.themes.length) {
|
if (Array.isArray(this.local.manifest.contributes.themes) && this.local.manifest.contributes.themes.length) {
|
||||||
return require.toUrl('./media/theme-icon.png');
|
return FileAccess.asBrowserUri('./media/theme-icon.png', require).toString(true);
|
||||||
}
|
}
|
||||||
if (Array.isArray(this.local.manifest.contributes.grammars) && this.local.manifest.contributes.grammars.length) {
|
if (Array.isArray(this.local.manifest.contributes.grammars) && this.local.manifest.contributes.grammars.length) {
|
||||||
return require.toUrl('./media/language-icon.svg');
|
return FileAccess.asBrowserUri('./media/language-icon.svg', require).toString(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,9 +11,9 @@ import * as pfs from 'vs/base/node/pfs';
|
||||||
import * as env from 'vs/base/common/platform';
|
import * as env from 'vs/base/common/platform';
|
||||||
import { IExternalTerminalService, IExternalTerminalConfiguration, IExternalTerminalSettings } from 'vs/workbench/contrib/externalTerminal/common/externalTerminal';
|
import { IExternalTerminalService, IExternalTerminalConfiguration, IExternalTerminalSettings } from 'vs/workbench/contrib/externalTerminal/common/externalTerminal';
|
||||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
import { optional } from 'vs/platform/instantiation/common/instantiation';
|
import { optional } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { DEFAULT_TERMINAL_OSX } from 'vs/workbench/contrib/externalTerminal/node/externalTerminal';
|
import { DEFAULT_TERMINAL_OSX } from 'vs/workbench/contrib/externalTerminal/node/externalTerminal';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
const TERMINAL_TITLE = nls.localize('console.title', "VS Code Console");
|
const TERMINAL_TITLE = nls.localize('console.title', "VS Code Console");
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ export class MacExternalTerminalService implements IExternalTerminalService {
|
||||||
// and then launches the program inside that window.
|
// and then launches the program inside that window.
|
||||||
|
|
||||||
const script = terminalApp === DEFAULT_TERMINAL_OSX ? 'TerminalHelper' : 'iTermHelper';
|
const script = terminalApp === DEFAULT_TERMINAL_OSX ? 'TerminalHelper' : 'iTermHelper';
|
||||||
const scriptpath = getPathFromAmdModule(require, `vs/workbench/contrib/externalTerminal/node/${script}.scpt`);
|
const scriptpath = FileAccess.asFileUri(`vs/workbench/contrib/externalTerminal/node/${script}.scpt`, require).fsPath;
|
||||||
|
|
||||||
const osaArgs = [
|
const osaArgs = [
|
||||||
scriptpath,
|
scriptpath,
|
||||||
|
|
|
@ -9,7 +9,7 @@ import { ThrottledDelayer } from 'vs/base/common/async';
|
||||||
import { Emitter, Event } from 'vs/base/common/event';
|
import { Emitter, Event } from 'vs/base/common/event';
|
||||||
import { once } from 'vs/base/common/functional';
|
import { once } from 'vs/base/common/functional';
|
||||||
import { DisposableStore, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
|
import { DisposableStore, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
|
||||||
import { Schemas } from 'vs/base/common/network';
|
import { FileAccess, Schemas } from 'vs/base/common/network';
|
||||||
import { isMacintosh } from 'vs/base/common/platform';
|
import { isMacintosh } from 'vs/base/common/platform';
|
||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
import { createChannelSender } from 'vs/base/parts/ipc/common/ipc';
|
import { createChannelSender } from 'vs/base/parts/ipc/common/ipc';
|
||||||
|
@ -206,7 +206,10 @@ export class ElectronWebviewBasedWebview extends BaseWebview<WebviewTag> impleme
|
||||||
this.styledFindWidget();
|
this.styledFindWidget();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.element!.preload = require.toUrl('./pre/electron-index.js');
|
// We must ensure to put a `file:` URI as the preload attribute
|
||||||
|
// and not the `vscode-file` URI because preload scripts are loaded
|
||||||
|
// via node.js from the main side and only allow `file:` protocol
|
||||||
|
this.element!.preload = FileAccess.asFileUri('./pre/electron-index.js', require).toString(true);
|
||||||
this.element!.src = `${Schemas.vscodeWebview}://${this.id}/electron-browser/index.html?platform=electron`;
|
this.element!.src = `${Schemas.vscodeWebview}://${this.id}/electron-browser/index.html?platform=electron`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configur
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { Action, WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification } from 'vs/base/common/actions';
|
import { Action, WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification } from 'vs/base/common/actions';
|
||||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||||
import { Schemas } from 'vs/base/common/network';
|
import { FileAccess, Schemas } from 'vs/base/common/network';
|
||||||
import { IBackupFileService } from 'vs/workbench/services/backup/common/backup';
|
import { IBackupFileService } from 'vs/workbench/services/backup/common/backup';
|
||||||
import { getInstalledExtensions, IExtensionStatus, onExtensionChanged, isKeymapExtension } from 'vs/workbench/contrib/extensions/common/extensionsUtils';
|
import { getInstalledExtensions, IExtensionStatus, onExtensionChanged, isKeymapExtension } from 'vs/workbench/contrib/extensions/common/extensionsUtils';
|
||||||
import { IExtensionManagementService, IExtensionGalleryService, ILocalExtension } from 'vs/platform/extensionManagement/common/extensionManagement';
|
import { IExtensionManagementService, IExtensionGalleryService, ILocalExtension } from 'vs/platform/extensionManagement/common/extensionManagement';
|
||||||
|
@ -47,7 +47,6 @@ import { IProductService } from 'vs/platform/product/common/productService';
|
||||||
import { IEditorOptions } from 'vs/platform/editor/common/editor';
|
import { IEditorOptions } from 'vs/platform/editor/common/editor';
|
||||||
import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';
|
import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';
|
||||||
import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
|
import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
|
||||||
import { getUriFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
|
|
||||||
const configurationKey = 'workbench.startupEditor';
|
const configurationKey = 'workbench.startupEditor';
|
||||||
const oldConfigurationKey = 'workbench.welcome.enabled';
|
const oldConfigurationKey = 'workbench.welcome.enabled';
|
||||||
|
@ -300,7 +299,7 @@ class WelcomePage extends Disposable {
|
||||||
|
|
||||||
const recentlyOpened = this.workspacesService.getRecentlyOpened();
|
const recentlyOpened = this.workspacesService.getRecentlyOpened();
|
||||||
const installedExtensions = this.instantiationService.invokeFunction(getInstalledExtensions);
|
const installedExtensions = this.instantiationService.invokeFunction(getInstalledExtensions);
|
||||||
const resource = getUriFromAmdModule(require, './vs_code_welcome_page')
|
const resource = FileAccess.asBrowserUri('./vs_code_welcome_page', require)
|
||||||
.with({
|
.with({
|
||||||
scheme: Schemas.walkThrough,
|
scheme: Schemas.walkThrough,
|
||||||
query: JSON.stringify({ moduleId: 'vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page' })
|
query: JSON.stringify({ moduleId: 'vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page' })
|
||||||
|
|
|
@ -8,16 +8,15 @@ import { localize } from 'vs/nls';
|
||||||
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||||
import { Action } from 'vs/base/common/actions';
|
import { Action } from 'vs/base/common/actions';
|
||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { getUriFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
import { WalkThroughInput, WalkThroughInputOptions } from 'vs/workbench/contrib/welcome/walkThrough/browser/walkThroughInput';
|
import { WalkThroughInput, WalkThroughInputOptions } from 'vs/workbench/contrib/welcome/walkThrough/browser/walkThroughInput';
|
||||||
import { Schemas } from 'vs/base/common/network';
|
import { FileAccess, Schemas } from 'vs/base/common/network';
|
||||||
import { IEditorInputFactory, EditorInput } from 'vs/workbench/common/editor';
|
import { IEditorInputFactory, EditorInput } from 'vs/workbench/common/editor';
|
||||||
|
|
||||||
const typeId = 'workbench.editors.walkThroughInput';
|
const typeId = 'workbench.editors.walkThroughInput';
|
||||||
const inputOptions: WalkThroughInputOptions = {
|
const inputOptions: WalkThroughInputOptions = {
|
||||||
typeId,
|
typeId,
|
||||||
name: localize('editorWalkThrough.title', "Interactive Playground"),
|
name: localize('editorWalkThrough.title', "Interactive Playground"),
|
||||||
resource: getUriFromAmdModule(require, './vs_code_editor_walkthrough.md')
|
resource: FileAccess.asBrowserUri('./vs_code_editor_walkthrough.md', require)
|
||||||
.with({
|
.with({
|
||||||
scheme: Schemas.walkThrough,
|
scheme: Schemas.walkThrough,
|
||||||
query: JSON.stringify({ moduleId: 'vs/workbench/contrib/welcome/walkThrough/browser/editor/vs_code_editor_walkthrough' })
|
query: JSON.stringify({ moduleId: 'vs/workbench/contrib/welcome/walkThrough/browser/editor/vs_code_editor_walkthrough' })
|
||||||
|
|
|
@ -29,6 +29,7 @@ import { generateUuid } from 'vs/base/common/uuid';
|
||||||
import { canceled, onUnexpectedError } from 'vs/base/common/errors';
|
import { canceled, onUnexpectedError } from 'vs/base/common/errors';
|
||||||
import { WEB_WORKER_IFRAME } from 'vs/workbench/services/extensions/common/webWorkerIframe';
|
import { WEB_WORKER_IFRAME } from 'vs/workbench/services/extensions/common/webWorkerIframe';
|
||||||
import { Barrier } from 'vs/base/common/async';
|
import { Barrier } from 'vs/base/common/async';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
export interface IWebWorkerExtensionHostInitData {
|
export interface IWebWorkerExtensionHostInitData {
|
||||||
readonly autoStart: boolean;
|
readonly autoStart: boolean;
|
||||||
|
@ -92,7 +93,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost
|
||||||
iframe.style.display = 'none';
|
iframe.style.display = 'none';
|
||||||
|
|
||||||
const vscodeWebWorkerExtHostId = generateUuid();
|
const vscodeWebWorkerExtHostId = generateUuid();
|
||||||
const workerUrl = require.toUrl('../worker/extensionHostWorkerMain.js');
|
const workerUrl = FileAccess.asBrowserUri('../worker/extensionHostWorkerMain.js', require).toString(true);
|
||||||
const workerSrc = getWorkerBootstrapUrl(workerUrl, 'WorkerExtensionHost', true);
|
const workerSrc = getWorkerBootstrapUrl(workerUrl, 'WorkerExtensionHost', true);
|
||||||
const escapeAttribute = (value: string): string => {
|
const escapeAttribute = (value: string): string => {
|
||||||
return value.replace(/"/g, '"');
|
return value.replace(/"/g, '"');
|
||||||
|
@ -173,7 +174,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost
|
||||||
private async _startOutsideIframe(): Promise<IMessagePassingProtocol> {
|
private async _startOutsideIframe(): Promise<IMessagePassingProtocol> {
|
||||||
const emitter = new Emitter<VSBuffer>();
|
const emitter = new Emitter<VSBuffer>();
|
||||||
|
|
||||||
const url = getWorkerBootstrapUrl(require.toUrl('../worker/extensionHostWorkerMain.js'), 'WorkerExtensionHost');
|
const url = getWorkerBootstrapUrl(FileAccess.asBrowserUri('../worker/extensionHostWorkerMain.js', require).toString(true), 'WorkerExtensionHost');
|
||||||
const worker = new Worker(url, { name: 'WorkerExtensionHost' });
|
const worker = new Worker(url, { name: 'WorkerExtensionHost' });
|
||||||
|
|
||||||
const barrier = new Barrier();
|
const barrier = new Barrier();
|
||||||
|
|
|
@ -5,9 +5,8 @@
|
||||||
|
|
||||||
import * as nls from 'vs/nls';
|
import * as nls from 'vs/nls';
|
||||||
import * as path from 'vs/base/common/path';
|
import * as path from 'vs/base/common/path';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
import * as errors from 'vs/base/common/errors';
|
import * as errors from 'vs/base/common/errors';
|
||||||
import { Schemas } from 'vs/base/common/network';
|
import { FileAccess, Schemas } from 'vs/base/common/network';
|
||||||
import * as objects from 'vs/base/common/objects';
|
import * as objects from 'vs/base/common/objects';
|
||||||
import * as platform from 'vs/base/common/platform';
|
import * as platform from 'vs/base/common/platform';
|
||||||
import { joinPath, originalFSPath } from 'vs/base/common/resources';
|
import { joinPath, originalFSPath } from 'vs/base/common/resources';
|
||||||
|
@ -30,7 +29,7 @@ interface IExtensionCacheData {
|
||||||
let _SystemExtensionsRoot: string | null = null;
|
let _SystemExtensionsRoot: string | null = null;
|
||||||
function getSystemExtensionsRoot(): string {
|
function getSystemExtensionsRoot(): string {
|
||||||
if (!_SystemExtensionsRoot) {
|
if (!_SystemExtensionsRoot) {
|
||||||
_SystemExtensionsRoot = path.normalize(path.join(getPathFromAmdModule(require, ''), '..', 'extensions'));
|
_SystemExtensionsRoot = path.normalize(path.join(FileAccess.asFileUri('', require).fsPath, '..', 'extensions'));
|
||||||
}
|
}
|
||||||
return _SystemExtensionsRoot;
|
return _SystemExtensionsRoot;
|
||||||
}
|
}
|
||||||
|
@ -38,7 +37,7 @@ function getSystemExtensionsRoot(): string {
|
||||||
let _ExtraDevSystemExtensionsRoot: string | null = null;
|
let _ExtraDevSystemExtensionsRoot: string | null = null;
|
||||||
function getExtraDevSystemExtensionsRoot(): string {
|
function getExtraDevSystemExtensionsRoot(): string {
|
||||||
if (!_ExtraDevSystemExtensionsRoot) {
|
if (!_ExtraDevSystemExtensionsRoot) {
|
||||||
_ExtraDevSystemExtensionsRoot = path.normalize(path.join(getPathFromAmdModule(require, ''), '..', '.build', 'builtInExtensions'));
|
_ExtraDevSystemExtensionsRoot = path.normalize(path.join(FileAccess.asFileUri('', require).fsPath, '..', '.build', 'builtInExtensions'));
|
||||||
}
|
}
|
||||||
return _ExtraDevSystemExtensionsRoot;
|
return _ExtraDevSystemExtensionsRoot;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import * as nls from 'vs/nls';
|
||||||
import { ChildProcess, fork } from 'child_process';
|
import { ChildProcess, fork } from 'child_process';
|
||||||
import { Server, Socket, createServer } from 'net';
|
import { Server, Socket, createServer } from 'net';
|
||||||
import { CrashReporterStartOptions } from 'vs/base/parts/sandbox/electron-sandbox/electronTypes';
|
import { CrashReporterStartOptions } from 'vs/base/parts/sandbox/electron-sandbox/electronTypes';
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
import { timeout } from 'vs/base/common/async';
|
import { timeout } from 'vs/base/common/async';
|
||||||
import { toErrorMessage } from 'vs/base/common/errorMessage';
|
import { toErrorMessage } from 'vs/base/common/errorMessage';
|
||||||
import { Emitter, Event } from 'vs/base/common/event';
|
import { Emitter, Event } from 'vs/base/common/event';
|
||||||
|
@ -215,7 +215,7 @@ export class LocalProcessExtensionHost implements IExtensionHost {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run Extension Host as fork of current process
|
// Run Extension Host as fork of current process
|
||||||
this._extensionHostProcess = fork(getPathFromAmdModule(require, 'bootstrap-fork'), ['--type=extensionHost'], opts);
|
this._extensionHostProcess = fork(FileAccess.asFileUri('bootstrap-fork', require).fsPath, ['--type=extensionHost'], opts);
|
||||||
|
|
||||||
// Catch all output coming from the extension host process
|
// Catch all output coming from the extension host process
|
||||||
type Output = { data: string, format: string[] };
|
type Output = { data: string, format: string[] };
|
||||||
|
|
|
@ -15,7 +15,7 @@ import { INotificationService } from 'vs/platform/notification/common/notificati
|
||||||
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||||
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||||
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
||||||
import { getUriFromAmdModule } from 'vs/base/common/amd';
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
interface IStorageData {
|
interface IStorageData {
|
||||||
dontShowPrompt: boolean;
|
dontShowPrompt: boolean;
|
||||||
|
@ -142,7 +142,7 @@ export class IntegrityServiceImpl implements IIntegrityService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private _resolve(filename: string, expected: string): Promise<ChecksumPair> {
|
private _resolve(filename: string, expected: string): Promise<ChecksumPair> {
|
||||||
const fileUri = getUriFromAmdModule(require, filename);
|
const fileUri = FileAccess.asFileUri(filename, require);
|
||||||
return new Promise<ChecksumPair>((resolve, reject) => {
|
return new Promise<ChecksumPair>((resolve, reject) => {
|
||||||
fs.readFile(fileUri.fsPath, (err, buff) => {
|
fs.readFile(fileUri.fsPath, (err, buff) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { getPathFromAmdModule } from 'vs/base/common/amd';
|
|
||||||
import { CancellationToken } from 'vs/base/common/cancellation';
|
import { CancellationToken } from 'vs/base/common/cancellation';
|
||||||
import { canceled } from 'vs/base/common/errors';
|
import { canceled } from 'vs/base/common/errors';
|
||||||
import { Event } from 'vs/base/common/event';
|
import { Event } from 'vs/base/common/event';
|
||||||
|
@ -26,6 +25,7 @@ import { IEditorService } from 'vs/workbench/services/editor/common/editorServic
|
||||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||||
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
|
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
|
||||||
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
export class LocalSearchService extends SearchService {
|
export class LocalSearchService extends SearchService {
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -82,10 +82,7 @@ export class DiskSearch implements ISearchResultProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const client = new Client(
|
const client = new Client(FileAccess.asFileUri('bootstrap-fork', require).fsPath, opts);
|
||||||
getPathFromAmdModule(require, 'bootstrap-fork'),
|
|
||||||
opts);
|
|
||||||
|
|
||||||
const channel = getNextTickChannel(client.getChannel('search'));
|
const channel = getNextTickChannel(client.getChannel('search'));
|
||||||
this.raw = new SearchChannelClient(channel);
|
this.raw = new SearchChannelClient(channel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
|
||||||
import { IStorageService } from 'vs/platform/storage/common/storage';
|
import { IStorageService } from 'vs/platform/storage/common/storage';
|
||||||
import { IExtensionResourceLoaderService } from 'vs/workbench/services/extensionResourceLoader/common/extensionResourceLoader';
|
import { IExtensionResourceLoaderService } from 'vs/workbench/services/extensionResourceLoader/common/extensionResourceLoader';
|
||||||
import { IProgressService } from 'vs/platform/progress/common/progress';
|
import { IProgressService } from 'vs/platform/progress/common/progress';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
export class TextMateService extends AbstractTextMateService {
|
export class TextMateService extends AbstractTextMateService {
|
||||||
|
|
||||||
|
@ -31,8 +32,7 @@ export class TextMateService extends AbstractTextMateService {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async _loadVSCodeOnigurumWASM(): Promise<Response | ArrayBuffer> {
|
protected async _loadVSCodeOnigurumWASM(): Promise<Response | ArrayBuffer> {
|
||||||
const wasmPath = require.toUrl('vscode-oniguruma/../onig.wasm');
|
const response = await fetch(FileAccess.asBrowserUri('vscode-oniguruma/../onig.wasm', require).toString(true));
|
||||||
const response = await fetch(wasmPath);
|
|
||||||
// Using the response directly only works if the server sets the MIME type 'application/wasm'.
|
// Using the response directly only works if the server sets the MIME type 'application/wasm'.
|
||||||
// Otherwise, a TypeError is thrown when using the streaming compiler.
|
// Otherwise, a TypeError is thrown when using the streaming compiler.
|
||||||
// We therefore use the non-streaming compiler :(.
|
// We therefore use the non-streaming compiler :(.
|
||||||
|
|
|
@ -26,6 +26,7 @@ import { IStorageService } from 'vs/platform/storage/common/storage';
|
||||||
import { IExtensionResourceLoaderService } from 'vs/workbench/services/extensionResourceLoader/common/extensionResourceLoader';
|
import { IExtensionResourceLoaderService } from 'vs/workbench/services/extensionResourceLoader/common/extensionResourceLoader';
|
||||||
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
|
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
|
||||||
import { IProgressService } from 'vs/platform/progress/common/progress';
|
import { IProgressService } from 'vs/platform/progress/common/progress';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
const RUN_TEXTMATE_IN_WORKER = false;
|
const RUN_TEXTMATE_IN_WORKER = false;
|
||||||
|
|
||||||
|
@ -182,12 +183,9 @@ export class TextMateService extends AbstractTextMateService {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async _loadVSCodeOnigurumWASM(): Promise<Response | ArrayBuffer> {
|
protected async _loadVSCodeOnigurumWASM(): Promise<Response | ArrayBuffer> {
|
||||||
const wasmPath = (
|
const response = await fetch(this._environmentService.isBuilt
|
||||||
this._environmentService.isBuilt
|
? FileAccess.asBrowserUri('../../../../../../node_modules.asar.unpacked/vscode-oniguruma/release/onig.wasm', require).toString(true)
|
||||||
? require.toUrl('../../../../../../node_modules.asar.unpacked/vscode-oniguruma/release/onig.wasm')
|
: FileAccess.asBrowserUri('../../../../../../node_modules/vscode-oniguruma/release/onig.wasm', require).toString(true));
|
||||||
: require.toUrl('../../../../../../node_modules/vscode-oniguruma/release/onig.wasm')
|
|
||||||
);
|
|
||||||
const response = await fetch(wasmPath);
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ import { TokenizationStateStore } from 'vs/editor/common/model/textModelTokens';
|
||||||
import type { IGrammar, StackElement, IRawTheme, IOnigLib } from 'vscode-textmate';
|
import type { IGrammar, StackElement, IRawTheme, IOnigLib } from 'vscode-textmate';
|
||||||
import { MultilineTokensBuilder, countEOL } from 'vs/editor/common/model/tokensStore';
|
import { MultilineTokensBuilder, countEOL } from 'vs/editor/common/model/tokensStore';
|
||||||
import { LineTokens } from 'vs/editor/common/core/lineTokens';
|
import { LineTokens } from 'vs/editor/common/core/lineTokens';
|
||||||
|
import { FileAccess } from 'vs/base/common/network';
|
||||||
|
|
||||||
export interface IValidGrammarDefinitionDTO {
|
export interface IValidGrammarDefinitionDTO {
|
||||||
location: UriComponents;
|
location: UriComponents;
|
||||||
|
@ -146,8 +147,7 @@ export class TextMateWorker {
|
||||||
});
|
});
|
||||||
const vscodeTextmate = await import('vscode-textmate');
|
const vscodeTextmate = await import('vscode-textmate');
|
||||||
const vscodeOniguruma = await import('vscode-oniguruma');
|
const vscodeOniguruma = await import('vscode-oniguruma');
|
||||||
const wasmPath = require.toUrl('vscode-oniguruma/../onig.wasm');
|
const response = await fetch(FileAccess.asBrowserUri('vscode-oniguruma/../onig.wasm', require).toString(true));
|
||||||
const response = await fetch(wasmPath);
|
|
||||||
// Using the response directly only works if the server sets the MIME type 'application/wasm'.
|
// Using the response directly only works if the server sets the MIME type 'application/wasm'.
|
||||||
// Otherwise, a TypeError is thrown when using the streaming compiler.
|
// Otherwise, a TypeError is thrown when using the streaming compiler.
|
||||||
// We therefore use the non-streaming compiler :(.
|
// We therefore use the non-streaming compiler :(.
|
||||||
|
|
|
@ -32,7 +32,7 @@ function initLoader(opts) {
|
||||||
nodeRequire: require,
|
nodeRequire: require,
|
||||||
nodeMain: __filename,
|
nodeMain: __filename,
|
||||||
catchError: true,
|
catchError: true,
|
||||||
baseUrl: bootstrap.fileUriFromPath(path.join(__dirname, '../../../src'), process.platform === 'win32'),
|
baseUrl: bootstrap.fileUriFromPath(path.join(__dirname, '../../../src'), { isWindows: process.platform === 'win32' }),
|
||||||
paths: {
|
paths: {
|
||||||
'vs': `../${outdir}/vs`,
|
'vs': `../${outdir}/vs`,
|
||||||
'lib': `../${outdir}/lib`,
|
'lib': `../${outdir}/lib`,
|
||||||
|
|
Loading…
Reference in a new issue