Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 26b5ec4

Browse files
Simplify show command.
Signed-off-by: Eric Wang <skygragon@gmail.com>
1 parent fb0270e commit 26b5ec4

File tree

2 files changed

+52
-56
lines changed

2 files changed

+52
-56
lines changed

‎docs/commands.md‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,7 @@ Display problem details. With `-g`/`-l`/`-x`, the code template could be auto ge
156156

157157
* `-g` to generate source file.
158158
* `-x` to add problem description in the generated source file.
159-
* `-t` to show code template.
160-
* `-d` to show problem description.
159+
* `-c` to only show code template.
161160
* `-l` to choose programming language. (Depends on which langs are provided on leetcode)
162161
* bash
163162
* c
@@ -209,7 +208,7 @@ Display problem details. With `-g`/`-l`/`-x`, the code template could be auto ge
209208

210209
Only show the code template:
211210

212-
$ leetcode show -t --no-desc 1
211+
$ leetcode show -c 1
213212
class Solution {
214213
public:
215214
vector<int> twoSum(vector<int>& nums, int target) {

‎lib/commands/show.js‎

Lines changed: 50 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ var cmd = {
2020
alias: 'g',
2121
type: 'boolean',
2222
default: false,
23-
describe: 'Generate source file from template'
23+
describe: 'Generate source file from code template'
2424
},
2525
lang: {
2626
alias: 'l',
@@ -35,17 +35,11 @@ var cmd = {
3535
default: false,
3636
describe: 'Provide extra problem details in generated file'
3737
},
38-
desc: {
39-
alias: 'd',
40-
type: 'boolean',
41-
default: true,
42-
describe: 'Show problem description'
43-
},
44-
template: {
45-
alias: 't',
38+
codeonly: {
39+
alias: 'c',
4640
type: 'boolean',
4741
default: false,
48-
describe: 'Show code template'
42+
describe: 'Show code template only'
4943
},
5044
editor: {
5145
alias: 'e',
@@ -55,72 +49,75 @@ var cmd = {
5549
}
5650
};
5751

52+
function genFileName(problem, lang) {
53+
// try to use a new filename to avoid overwrite by mistake
54+
var name = problem.id + '.' + problem.slug + h.langToExt(lang);
55+
var i = 0;
56+
while (fs.existsSync(name))
57+
name = problem.id + '.' + problem.slug + '.' + (i++) + h.langToExt(lang);
58+
return name;
59+
}
60+
5861
cmd.handler = function(argv) {
5962
session.argv = argv;
6063
core.getProblem(argv.keyword, function(e, problem) {
6164
if (e) return log.fail(e);
6265

63-
var template = _.find(problem.templates, function(x) {
64-
return x.value === argv.lang;
65-
});
66-
if (!template && (argv.template || argv.gen))
67-
return log.fail('Unknown language "' + argv.lang + '"');
68-
69-
var filename;
70-
if (argv.gen) {
71-
// try to use a new filename to avoid overwrite by mistake
72-
filename = problem.id + '.' + problem.slug + h.langToExt(argv.lang);
73-
var i = 0;
74-
while (fs.existsSync(filename))
75-
filename = problem.id + '.' + problem.slug + '.' + (i++) + h.langToExt(argv.lang);
66+
var code;
67+
var needcode = argv.gen || argv.codeonly;
68+
if (needcode) {
69+
var template = _.find(problem.templates, function(x) {
70+
return x.value === argv.lang;
71+
});
72+
if (!template)
73+
return log.fail('Unknown language "' + argv.lang + '"');
7674

7775
var opts = {
7876
lang: argv.lang,
7977
code: template.defaultCode,
8078
tpl: argv.extra ? 'detailed' : 'codeonly'
8179
};
82-
fs.writeFileSync(filename, core.exportProblem(problem, opts));
80+
code = core.exportProblem(problem, opts);
81+
}
82+
83+
var filename;
84+
if (argv.gen) {
85+
filename = genFileName(problem, argv.lang);
86+
fs.writeFileSync(filename, code);
8387

8488
if (argv.editor !== undefined) {
8589
childProcess.spawn(argv.editor || config.EDITOR, [filename], {
8690
// in case your editor of choice is vim or emacs
8791
stdio: 'inherit'
8892
});
8993
}
94+
} else {
95+
if (argv.codeonly) {
96+
log.info(chalk.yellow(code));
97+
return;
98+
}
9099
}
91100

92-
if (argv.desc) {
93-
log.printf('[%d] %s %s', problem.id, problem.name,
94-
(problem.starred ? chalk.yellow(icon.like) : icon.none));
95-
log.info();
96-
log.info(chalk.underline(problem.link));
97-
98-
log.info();
99-
log.printf('* %s', problem.category);
100-
log.printf('* %s (%.2f%%)', h.prettyLevel(problem.level), problem.percent);
101+
log.printf('[%d] %s %s', problem.id, problem.name,
102+
(problem.starred ? chalk.yellow(icon.like) : icon.none));
103+
log.info();
104+
log.info(chalk.underline(problem.link));
101105

102-
if (filename)
103-
log.printf('* Source Code: %s', chalk.yellow.underline(filename));
104-
if (problem.totalAC)
105-
log.printf('* Total Accepted: %s', problem.totalAC);
106-
if (problem.totalSubmit)
107-
log.printf('* Total Submissions: %s', problem.totalSubmit);
108-
if (problem.testable && problem.testcase)
109-
log.printf('* Testcase Example: %s', chalk.yellow(util.inspect(problem.testcase)));
106+
log.info();
107+
log.printf('* %s', problem.category);
108+
log.printf('* %s (%.2f%%)', h.prettyLevel(problem.level), problem.percent);
110109

111-
log.info();
112-
log.info(problem.desc);
110+
if (filename)
111+
log.printf('* Source Code: %s', chalk.yellow.underline(filename));
112+
if (problem.totalAC)
113+
log.printf('* Total Accepted: %s', problem.totalAC);
114+
if (problem.totalSubmit)
115+
log.printf('* Total Submissions: %s', problem.totalSubmit);
116+
if (problem.testable && problem.testcase)
117+
log.printf('* Testcase Example: %s', chalk.yellow(util.inspect(problem.testcase)));
113118

114-
if (argv.template) {
115-
log.info();
116-
log.info('Template:');
117-
log.info();
118-
}
119-
}
120-
121-
if (argv.template) {
122-
log.info(chalk.yellow(template.defaultCode));
123-
}
119+
log.info();
120+
log.info(problem.desc);
124121
});
125122
};
126123

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /