From 06ab2729597fd866dc773d164968cd8524b2f9da Mon Sep 17 00:00:00 2001 From: dltkdgns00 Date: Fri, 15 Mar 2024 03:13:30 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9C=88=EB=8F=84=EC=9A=B0=EC=97=90=EC=84=9C?= =?UTF-8?q?=20=ED=8F=B4=EB=8D=94=EA=B0=80=20=EC=83=9D=EC=84=B1=EB=90=A0=20?= =?UTF-8?q?=EB=95=8C=20:=20=ED=95=B4=EA=B2=B0,=20runTestCase=20=EC=9C=88?= =?UTF-8?q?=EB=8F=84=EC=9A=B0=EC=97=90=EC=84=9C=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=99=84=EB=A3=8C=20(js=EB=8A=94=20=EC=9C=88?= =?UTF-8?q?=EB=8F=84=EC=9A=B0=20=EB=AF=B8=EC=A7=80=EC=9B=90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 4 +-- src/commands/createProblem.ts | 53 +++++++++++++++++++++-------------- 2 files changed, 34 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3a4a316..2716e53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "boj-ex", - "version": "1.1.4", + "version": "1.1.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "boj-ex", - "version": "1.1.4", + "version": "1.1.5", "license": "MIT", "dependencies": { "@types/wcwidth": "^1.0.0", diff --git a/src/commands/createProblem.ts b/src/commands/createProblem.ts index b9fb6b4..3b608db 100644 --- a/src/commands/createProblem.ts +++ b/src/commands/createProblem.ts @@ -6,21 +6,25 @@ import { headerComment } from "./headerComment"; import { searchProblem } from "../libs/searchProblem"; import { tierAxios } from "../libs/tierAxios"; -export function createProblem(context: vscode.ExtensionContext) { +export function createProblem(context: vscode.ExtensionContext) +{ vscode.window .showInputBox({ prompt: "문제 번호를 입력해주세요.", placeHolder: "예: 1000", }) - .then(async (problemNumber) => { - if (!problemNumber) { + .then(async (problemNumber) => + { + if (!problemNumber) + { vscode.window.showErrorMessage( "문제 번호가 입력되지 않았습니다." ); return; } - try { + try + { const config = vscode.workspace.getConfiguration("BOJ"); const extension = config.get("extension", ""); @@ -42,7 +46,7 @@ export function createProblem(context: vscode.ExtensionContext) { .replace(/\^/g, "^"); // 폴더명 생성 - const folderName = `${problemNumber}번: ${problemName}`; + const folderName = `${problemNumber}번: ${problemName}`; const folderPath = path.join( vscode.workspace.workspaceFolders![0].uri.fsPath, folderName @@ -50,7 +54,15 @@ export function createProblem(context: vscode.ExtensionContext) { fs.mkdirSync(folderPath); // 파일명 생성 - const fileName = `${problemName}.${extension}`; + let fileName = ""; + if (extension === "java") + { + fileName = `Main.java`; + } + else + { + fileName = `${problemName}.${extension}`; + } // md 파일명 생성 const readme = `README.md`; @@ -67,18 +79,14 @@ export function createProblem(context: vscode.ExtensionContext) { ); // README.md 파일 내용 - const readmeContent = `# ${problemNumber}번: ${problemName} - ${ - tier.name - }\n\n\n\n\n\n\n\n## 문제\n\n[문제 링크](https://boj.kr/${problemNumber})\n\n${ - sp.description - }\n\n## 입력\n\n${sp.input}\n\n## 출력\n\n${ - sp.output - }\n\n## 소스코드\n\n[소스코드 보기](${fileName.replace( - / /g, - "%20" - )})`; + const readmeContent = `# ${problemNumber}번: ${problemName} - ${tier.name + }\n\n\n\n\n\n\n\n## 문제\n\n[문제 링크](https://boj.kr/${problemNumber})\n\n${sp.description + }\n\n## 입력\n\n${sp.input}\n\n## 출력\n\n${sp.output + }\n\n## 소스코드\n\n[소스코드 보기](${fileName.replace( + / /g, + "%20" + )})`; const encoder = new TextEncoder(); const readmeData = encoder.encode(readmeContent); @@ -99,18 +107,21 @@ export function createProblem(context: vscode.ExtensionContext) { showProblem(problemNumber, context); headerComment(problemNumber); - } catch (error) { + } catch (error) + { if ( error instanceof Error && (error as any).code === "EEXIST" - ) { + ) + { vscode.window.showErrorMessage( "이미 해당 문제의 폴더가 존재합니다." ); } else if ( error instanceof Error && (error as any).code === "ERR_BAD_REQUEST" - ) { + ) + { vscode.window.showErrorMessage("문제를 찾을 수 없습니다."); } console.log(error);