提交 b1351708 编写于 作者: J Joao Moreno

remove parseOpts

上级 f50d9efb
......@@ -11,6 +11,16 @@ export interface ParsedArgs extends minimist.ParsedArgs {
help: boolean;
version: boolean;
wait: boolean;
diff: boolean;
goto: boolean;
'new-window': boolean;
'reuse-window': boolean;
locale: string;
'user-data-dir': string;
performance: boolean;
verbose: boolean;
logExtensionHostCommunication: boolean;
'disable-extensions': boolean;
}
const options: minimist.Opts = {
......@@ -25,7 +35,11 @@ const options: minimist.Opts = {
'diff',
'goto',
'new-window',
'reuse-window'
'reuse-window',
'performance',
'verbose',
'logExtensionHostCommunication',
'disable-extensions'
],
alias: {
help: 'h',
......@@ -34,7 +48,9 @@ const options: minimist.Opts = {
diff: 'd',
goto: 'g',
'new-window': 'n',
'reuse-window': 'r'
'reuse-window': 'r',
performance: 'p',
'disable-extensions': 'disableExtensions'
}
};
......
......@@ -18,6 +18,7 @@ import uri from 'vs/base/common/uri';
import types = require('vs/base/common/types');
import {ServiceIdentifier, createDecorator} from 'vs/platform/instantiation/common/instantiation';
import product, {IProductConfiguration} from './product';
import { parseArgs } from './argv';
export interface IProcessEnvironment {
[key: string]: string;
......@@ -155,28 +156,29 @@ export class EnvService implements IEnvironmentService {
debugExtensionHostPort = parseNumber(args, '--debugPluginHost', 5870, this.isBuilt ? void 0 : 5870);
}
const opts = parseOpts(args);
const gotoLineMode = !!opts['g'] || !!opts['goto'];
const pathArguments = parsePathArguments(this._currentWorkingDirectory, args, gotoLineMode);
const argv = parseArgs(args);
const pathArguments = parsePathArguments(this._currentWorkingDirectory, args, argv.goto);
this._cliArgs = Object.freeze({
pathArguments: pathArguments,
programStart: parseNumber(args, '--timestamp', 0, 0),
enablePerformance: !!opts['p'],
verboseLogging: !!opts['verbose'],
enablePerformance: argv.performance,
verboseLogging: argv.verbose,
debugExtensionHostPort: debugExtensionHostPort,
debugBrkExtensionHost: debugBrkExtensionHost,
logExtensionHostCommunication: !!opts['logExtensionHostCommunication'],
openNewWindow: !!opts['n'] || !!opts['new-window'],
openInSameWindow: !!opts['r'] || !!opts['reuse-window'],
gotoLineMode: gotoLineMode,
diffMode: (!!opts['d'] || !!opts['diff']) && pathArguments.length === 2,
logExtensionHostCommunication: argv.logExtensionHostCommunication,
openNewWindow: argv['new-window'],
openInSameWindow: argv['reuse-window'],
gotoLineMode: argv.goto,
diffMode: argv.diff && pathArguments.length === 2,
extensionsHomePath: normalizePath(parseString(args, '--extensionHomePath')),
extensionDevelopmentPath: normalizePath(parseString(args, '--extensionDevelopmentPath')),
extensionTestsPath: normalizePath(parseString(args, '--extensionTestsPath')),
disableExtensions: !!opts['disableExtensions'] || !!opts['disable-extensions'],
disableExtensions: argv['disable-extensions'],
locale: parseString(args, '--locale'),
waitForWindowClose: !!opts['w'] || !!opts['wait']
waitForWindowClose: argv.wait
});
this._isTestingFromCli = this.cliArgs.extensionTestsPath && !this.cliArgs.debugBrkExtensionHost;
......@@ -245,15 +247,6 @@ export class EnvService implements IEnvironmentService {
}
}
type OptionBag = { [opt: string]: boolean; };
function parseOpts(argv: string[]): OptionBag {
return argv
.filter(a => /^-/.test(a))
.map(a => a.replace(/^-*/, ''))
.reduce((r, a) => { r[a] = true; return r; }, <OptionBag>{});
}
function parsePathArguments(cwd: string, argv: string[], gotoLineMode?: boolean): string[] {
return arrays.coalesce( // no invalid paths
arrays.distinct( // no duplicates
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册