MCPcopy Index your code
hub / github.com/LeetCode-OpenSource/vscode-leetcode / resolveRelativePath

Function resolveRelativePath

src/commands/show.ts:219–263  ·  view source on GitHub ↗
(relativePath: string, node: IProblem, selectedLanguage: string)

Source from the content-addressed store, hash-verified

217}
218
219async function resolveRelativePath(relativePath: string, node: IProblem, selectedLanguage: string): Promise<string> {
220 let tag: string = "";
221 if (/\$\{tag\}/i.test(relativePath)) {
222 tag = (await resolveTagForProblem(node)) || "";
223 }
224
225 let company: string = "";
226 if (/\$\{company\}/i.test(relativePath)) {
227 company = (await resolveCompanyForProblem(node)) || "";
228 }
229
230 return relativePath.replace(/\$\{(.*?)\}/g, (_substring: string, ...args: string[]) => {
231 const placeholder: string = args[0].toLowerCase().trim();
232 switch (placeholder) {
233 case "id":
234 return node.id;
235 case "name":
236 return node.name;
237 case "camelcasename":
238 return _.camelCase(node.name);
239 case "pascalcasename":
240 return _.upperFirst(_.camelCase(node.name));
241 case "kebabcasename":
242 case "kebab-case-name":
243 return _.kebabCase(node.name);
244 case "snakecasename":
245 case "snake_case_name":
246 return _.snakeCase(node.name);
247 case "ext":
248 return genFileExt(selectedLanguage);
249 case "language":
250 return selectedLanguage;
251 case "difficulty":
252 return node.difficulty.toLocaleLowerCase();
253 case "tag":
254 return tag;
255 case "company":
256 return company;
257 default:
258 const errorMsg: string = `The config '${placeholder}' is not supported.`;
259 leetCodeChannel.appendLine(errorMsg);
260 throw new Error(errorMsg);
261 }
262 });
263}
264
265async function resolveTagForProblem(problem: IProblem): Promise<string | undefined> {
266 if (problem.tags.length === 1) {

Callers 1

showProblemInternalFunction · 0.85

Calls 4

genFileExtFunction · 0.90
resolveTagForProblemFunction · 0.85
resolveCompanyForProblemFunction · 0.85
appendLineMethod · 0.80

Tested by

no test coverage detected