提交 191756a0 编写于 作者: M Martin Aeschlimann

Option.key: keyof ParsedArgs

上级 6cee0791
...@@ -4,10 +4,11 @@ ...@@ -4,10 +4,11 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
import * as assert from 'assert'; import * as assert from 'assert';
import { formatOptions, Option, addArg } from 'vs/platform/environment/node/argv'; import { formatOptions, Option, addArg } from 'vs/platform/environment/node/argv';
import { ParsedArgs } from 'vs/platform/environment/common/environment';
suite('formatOptions', () => { suite('formatOptions', () => {
function o(id: string, description: string): Option { function o(id: keyof ParsedArgs, description: string): Option {
return { return {
id, description, type: 'string' id, description, type: 'string'
}; };
...@@ -16,30 +17,30 @@ suite('formatOptions', () => { ...@@ -16,30 +17,30 @@ suite('formatOptions', () => {
test('Text should display small columns correctly', () => { test('Text should display small columns correctly', () => {
assert.deepEqual( assert.deepEqual(
formatOptions([ formatOptions([
o('foo', 'bar') o('add', 'bar')
], 80), ], 80),
[' --foo bar'] [' --add bar']
); );
assert.deepEqual( assert.deepEqual(
formatOptions([ formatOptions([
o('f', 'bar'), o('add', 'bar'),
o('fo', 'ba'), o('wait', 'ba'),
o('foo', 'b') o('trace', 'b')
], 80), ], 80),
[ [
' --f bar', ' --add bar',
' --fo ba', ' --wait ba',
' --foo b' ' --trace b'
]); ]);
}); });
test('Text should wrap', () => { test('Text should wrap', () => {
assert.deepEqual( assert.deepEqual(
formatOptions([ formatOptions([
o('foo', (<any>'bar ').repeat(9)) o('add', (<any>'bar ').repeat(9))
], 40), ], 40),
[ [
' --foo bar bar bar bar bar bar bar bar', ' --add bar bar bar bar bar bar bar bar',
' bar' ' bar'
]); ]);
}); });
...@@ -47,10 +48,10 @@ suite('formatOptions', () => { ...@@ -47,10 +48,10 @@ suite('formatOptions', () => {
test('Text should revert to the condensed view when the terminal is too narrow', () => { test('Text should revert to the condensed view when the terminal is too narrow', () => {
assert.deepEqual( assert.deepEqual(
formatOptions([ formatOptions([
o('foo', (<any>'bar ').repeat(9)) o('add', (<any>'bar ').repeat(9))
], 30), ], 30),
[ [
' --foo', ' --add',
' bar bar bar bar bar bar bar bar bar ' ' bar bar bar bar bar bar bar bar bar '
]); ]);
}); });
......
...@@ -72,8 +72,11 @@ export interface ParsedArgs { ...@@ -72,8 +72,11 @@ export interface ParsedArgs {
'enable-remote-auto-shutdown'?: boolean; 'enable-remote-auto-shutdown'?: boolean;
'disable-inspect'?: boolean; 'disable-inspect'?: boolean;
'force'?: boolean; 'force'?: boolean;
'js-flags'?: boolean;
'gitCredential'?: string; 'gitCredential'?: string;
// node flags
'js-flags'?: boolean;
'disable-gpu'?: boolean;
'nolazy'?: boolean;
} }
export const IEnvironmentService = createDecorator<IEnvironmentService>('environmentService'); export const IEnvironmentService = createDecorator<IEnvironmentService>('environmentService');
......
...@@ -21,7 +21,7 @@ const helpCategories = { ...@@ -21,7 +21,7 @@ const helpCategories = {
}; };
export interface Option { export interface Option {
id: string; id: keyof ParsedArgs;
type: 'boolean' | 'string'; type: 'boolean' | 'string';
alias?: string; alias?: string;
deprecates?: string; // old deprecated id deprecates?: string; // old deprecated id
...@@ -29,7 +29,7 @@ export interface Option { ...@@ -29,7 +29,7 @@ export interface Option {
description?: string; description?: string;
cat?: keyof typeof helpCategories; cat?: keyof typeof helpCategories;
} }
//_urls
export const options: Option[] = [ export const options: Option[] = [
{ id: 'diff', type: 'boolean', cat: 'o', alias: 'd', args: ['file', 'file'], description: localize('diff', "Compare two files with each other.") }, { id: 'diff', type: 'boolean', cat: 'o', alias: 'd', args: ['file', 'file'], description: localize('diff', "Compare two files with each other.") },
{ id: 'add', type: 'boolean', cat: 'o', alias: 'a', args: 'folder', description: localize('add', "Add folder(s) to the last active window.") }, { id: 'add', type: 'boolean', cat: 'o', alias: 'a', args: 'folder', description: localize('add', "Add folder(s) to the last active window.") },
...@@ -85,17 +85,16 @@ export const options: Option[] = [ ...@@ -85,17 +85,16 @@ export const options: Option[] = [
{ id: 'skip-add-to-recently-opened', type: 'boolean' }, { id: 'skip-add-to-recently-opened', type: 'boolean' },
{ id: 'unity-launch', type: 'boolean' }, { id: 'unity-launch', type: 'boolean' },
{ id: 'open-url', type: 'boolean' }, { id: 'open-url', type: 'boolean' },
{ id: 'nolazy', type: 'boolean' },
{ id: 'issue', type: 'boolean' },
{ id: 'file-write', type: 'boolean' }, { id: 'file-write', type: 'boolean' },
{ id: 'file-chmod', type: 'boolean' }, { id: 'file-chmod', type: 'boolean' },
{ id: 'driver-verbose', type: 'boolean' }, { id: 'driver-verbose', type: 'boolean' },
{ id: 'force', type: 'boolean' }, { id: 'force', type: 'boolean' },
{ id: 'trace-category-filter', type: 'string' }, { id: 'trace-category-filter', type: 'string' },
{ id: 'trace-options', type: 'string' }, { id: 'trace-options', type: 'string' },
{ id: 'prof-code-loading', type: 'boolean' }, { id: '_', type: 'string' },
{ id: 'js-flags', type: 'string' },
{ id: '_', type: 'string' } { id: 'js-flags', type: 'string' }, // chrome js flags
{ id: 'nolazy', type: 'boolean' }, // node inspect
]; ];
export function parseArgs(args: string[], isOptionSupported = (_: Option) => true): ParsedArgs { export function parseArgs(args: string[], isOptionSupported = (_: Option) => true): ParsedArgs {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册