터미널에서 mkdir 커맨드를 사용해 원하는
이름의 폴더를 생성하는 간단한 커맨드를 만들어 보려고 한다.
먼저
extension.ts 파일의 activate 함수 안에서만 커맨드를 생성,사용하다 보면
기능이 추가 될 수록 보기 어렵고 복잡해지기 때문에 파일을 나눠주는게 좋다.
testminal.ts를 만들었고
import * as vscode from 'vscode';
export function mkdir() {
let terminal = vscode.window.createTerminal({
name: "Make Folder",
hideFromUser: false,
});
terminal.show();
terminal.sendText("mkdir folderName");
}
기본적으로 vscode에서 터미널을 열어 폴더를 생성해주는 함수를 만들었다.
사용하려면 커맨드를 추가해야한다.
import * as vscode from 'vscode';
import * as terminal from './terminal';
export function activate(context: vscode.ExtensionContext) {
let makeFolder = vscode.commands.registerCommand('terminal.mkdir', async () => terminal.mkdir());
context.subscriptions.push(makeFolder);
}
export function deactivate() {}
package.json, extension.ts 파일에서 커맨드를 추가해주었다.
desktop 폴더를 열고 커맨드를 실행하면
(기본적으로 터미널실행시 열린 폴더 경로부터 시작)
터미널에서 해당 명령어를 실행한다.
이제 원하는 이름을 받아 폴더를 생성해보자
let folderName = await vscode.window.showInputBox({
placeHolder: "Folder Name",
prompt: "Folder Name",
});
vscode.window.showInputBox 함수는 vscode에서 제공하는 함수이다.
await를 사용하기 때문에 함수 정의 부분에 async를 추가해야한다.(비동기 함수 선언)
export async function mkdir() {
const folderName = await vscode.window.showInputBox({
placeHolder: "Folder Name",
prompt: "Folder Name",
});
if(folderName === "" || folderName === "undefined"){
vscode.window.showErrorMessage("다시 입력해주세요.");
return ;
}
let terminal = vscode.window.createTerminal({
name: "Make Folder",
hideFromUser: false,
});
terminal.show();
terminal.sendText("mkdir " + folderName);
}
실행 해보자.
성공적으로 생성된다.
열린 프로젝트 경로에 원하는 이름의 폴더를 생성하는건 성공했으나
원하는 경로에 생성하고 싶다.
const openFolder = await vscode.window.showOpenDialog({
filters: {
'All files (*.*)': ['*']
},
canSelectFolders: true,
canSelectFiles: false,
canSelectMany: false,
openLabel: 'Select Folder',
});
해당 명령어는 파일 및 폴더를 선택 할 수 있는 vscode 명령어이다.
export async function mkdir() {
const openFolder = await vscode.window.showOpenDialog({
filters: {
'All files (*.*)': ['*']
},
canSelectFolders: true,
canSelectFiles: false,
canSelectMany: false,
openLabel: 'Select Folder',
});
if (!openFolder || openFolder.length < 1) {
vscode.window.showErrorMessage("다시 선택하세요.");
return;
}
const folderName = await vscode.window.showInputBox({
placeHolder: "Folder Name",
prompt: "Folder Name",
});
if(folderName === "" || folderName === "undefined"){
vscode.window.showErrorMessage("다시 입력해주세요.");
return;
}
let terminal = vscode.window.createTerminal({
name: "Make Folder",
hideFromUser: false,
});
const forderPath = openFolder[0].fsPath;
terminal.show();
terminal.sendText("mkdir " + forderPath + "/" + folderName);
}
원하는 폴더에 원하는 이름의 폴더가 생성됐다.
위에서 사용한 것들만으로도 응용한다면 정말 편해진다.