VSCode에서 작업을 생성하여 템플리 소환 및 컴파일

소개



안녕하세요, 이번에는 vscode에서 작업을 효율화하기 위해 직접 작업을 만들었을 때를 기록합니다.
c++를 예로 쓰고 있습니다만, 다른 설정에서도 참고가 된다고 생각합니다.

이번에는 폴더별 설정으로 task를 작성해 보겠습니다.

먼저 작업 폴더로 mywork 폴더를 만듭니다.
vscode에서 폴더 열기 -> mywork를 선택합니다.
그리고 mywork 폴더 아래에 .vscode 폴더를 만들고 거기에 tasks.json을 만듭니다.
소스 코드는 mywork/source 이하에 두기로 합니다.


작업으로 컴파일



다음과 같은 코드를 컴파일하고 싶을 때

main.cpp
#include <iostream>

int main(){
    std::cout<<"Hello Task"<<"\n";
}

PowerShell
g++ source/main.cpp -o program

그리고 명령을 실행하면 program.exe가 mywork 아래에있을 수 있습니다.

이것을 Task로 하는 것을 생각한다.

tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "cppCompile",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "program"
            ],
            "group":"none",
        },
    ]

}

.vscode/tasks.json에 위의 용으로 쓰면,
main.cpp를 편집기에서 열 때
Ctrl+Shift+P에서 명령 팔레트를 열고 RunTask

그러면 위에서 추가한 태스크가 있다.

그것을 실행하면,
program.exe가되었습니다.

이것은 mywork 이하의 어디에 있는 코드에서도 가능합니다.
tasks.json의 코드가 현재 편집기에서 열려있는 코드에 대해,
컴파일하고 mywork 아래에 program.exe로 실행 파일을 작성하도록 작성되었기 때문입니다.

이것은 vscode가 현재의 파일등을 나타내는 변수를 정의해 주고 있어 편리하게 걸립니다.

htps : // 여기.ゔぃすあ lsつぢお。 코 m / 드 cs / 에아와 r / ぁ 리아 b ぇ s - 레후 렌세


Task에서 실행할 명령의 인수에 ${file}을 지정하면 현재 열려 있는 파일에
컴파일 등 어떤 일이 가능합니다.

템플리 소환



People.txt
class People{
public:
void Plus(int num);
private:
int m_age;
string m_name;
}


코드를 작성할 때 위와 같은 클래스를 원한다고 가정합니다.
이번에는 코딩하는 동안 위의 People.txt를 원하는 위치로 소환하는 작업을 생각해 보겠습니다.

먼저 main.txt의 N 행에 tmp.txt를 복사하는 스크립트를 생각해 보겠습니다.

cptemp.py
import sys
#How to use
# cptemp.py 編集中ファイル 行  テンプレが書かれたファイル
fname=sys.argv[1]
f1name=sys.argv[3]
linenum=sys.argv[2]
with open(fname) as f:
    data = f.readlines()
linenum=(int)(linenum)-1
with open(f1name) as f:
    predata = f.readlines()
kaki=''
for i in predata:
    kaki+=i
data.insert(linenum,kaki)
with open(fname,mode='w') as f:
    f.writelines(data)

위의 cptemp.py를 실행하면 지정된 행에 지정된 파일을 붙여 넣습니다.
tools라는 폴더를 만들고이 스크립트를 두고,
Task에서 호출하고 템플리를 호출합니다.
cptemp.py 인수에는 vscode에서 원래 정의된 ${file}, ${lineNumber} 등이 주어지면,
잘 작동하는 것 같습니다.

지금까지의 파일 구성


그리고 tasks.json에 add People이라는 작업을 추가합니다.

tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "cppCompile",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "program"
            ],
            "group":"none",
        },
        {
            "type": "shell",
            "label": "add people",
            "command": "python3",
            "args": [
                "${workspaceFolder}/tools/cptemp.py",
                "${file}",
                "${lineNumber}",
                "${workspaceFolder}/template/People.txt",
            ],
            "group":"none",
        },
    ]

}

이제 main.cpp를 편집하는 동안,

Ctrl+Shift+P에서 명령 팔레트를 열고 RunTask
에서 add People을 선택하고 실행하면




위와 같이 추가되었습니다! ! !

결론



일단 일어나는 작업을 작업으로 호출 할 수 있도록하려는 목적으로
한 일을 정리했습니다.

당연히 최적의 방법은 아니고,
Task 쓰는 방법 등도 적당하기 때문에 다른 분의 기사도 읽는 것이 좋다고 생각합니다.
고마워요.

좋은 웹페이지 즐겨찾기