当前位置:   article > 正文

将vscode打造无敌的IDE(14) tasks.json和launch.json配置详解,随心所欲添加自动化任务_tasks.json详解

tasks.json详解

vscode是一个轻量级的文本编辑器,但是它的扩展插件可以让他拓展成功能齐全的IDE,这其中就靠的是tasks.json和launch.json的配置。这两个文件需要存放在当前工程的.vscode目录下。

vscode预定义了一些变量供我们在json文件使用:

预定义变量

变量名含义
${workspaceRoot}当前打开的文件夹的绝对路径+文件夹的名字
${workspaceRootFolderName}当前打开的文件夹的名字
${file}当前打开正在编辑的文件名,包括绝对路径,文件名,文件后缀名
${relativeFile}从当前打开的文件夹到当前打开的文件的路径如 当前打开的是test文件夹,当前的打开的是main.c,并有test/first/second/main.c那么此变量代表的是 first / second / main.c
${fileBasename}当前打开的文件名+后缀名,不包括路径
${fileBasenameNoExtension}当前打开的文件的文件名,不包括路径和后缀名
${fileDirname}当前打开的文件所在的绝对路径,不包括文件名
${fileExtname}当前打开的文件的后缀名
${cwd}任务开始运行时的当前工作目录
${lineNumber}当前打开的文件,光标所在的行数

关于变量的更多信息见:https://code.visualstudio.com/docs/editor/variables-reference

tasks.json文件范例

{
    // https://code.visualstudio.com/docs/editor/tasks
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",  // 任务的名字叫Build,注意是大小写区分的,等会在launch中调用这个名字,这个名字也会在task列表中显示
             "detail": "build project", // 描述信息,也会在task列表显示,在label的下面
            "type": "shell",  // 会在shell中执行命令,还可以是process,表示命令作为一个进程运行
            "command": "g++", // 命令是g++,这里也可以是一个shell脚本
            "args": [
                "'-Wall'",
                "'-std=c++17'",  //使用c++17标准编译
                "'${file}'", //当前文件名
                "-o", //对象名,不进行编译优化
                "'${fileBasenameNoExtension}'",  //当前文件名(去掉扩展名)
            ],
          // 所以以上部分,就是在shell中执行(假设文件名为filename.cpp)
          // g++ filename.cpp -o filename
            "group": { 
                "kind": "build", // 指定组名,相当于将该任务添加到build组
                "isDefault": true   
                // 任务分组,因为是tasks而不是task,意味着可以连着执行很多任务
                // 在build组的任务们,可以通过在Command Palette(F1) 输入run build task来运行
                // 当然,如果任务分组是test,你就可以用run test task来运行 
            },
            "problemMatcher": [
                "$gcc" // 使用gcc捕获错误
            ],
            // 如果没有依赖,以下可以不写
            "dependsOrder": "sequence", // 按列出的顺序执行任务依赖项
            "dependsOn":[
               // "xx1",              // 填写其他任务的label
              //  "xx2"
            ]
        }
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

tasks是个数组,里面可以填写多个task,task通过label进行标识,也就是task的名字。

按下ctrl +p , 再输入task空格,就可以看到刚刚添加的task: build。

launch.json

{
    "version": "0.2.0",
    "configurations": [{
        "name": "C++ Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示
        "type": "cppdbg", // 配置类型,是vscode官方推出的不同语法插件定义的,对于C/C++只能是cppdbg
        "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
        "targetArchitecture": "x86", // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
        "program": "${file}", // 将要进行调试的程序的路径
        "MIMode": "gdb",    // 指定调试类型,
        "miDebuggerPath": "/usr/bin/gdb", // miDebugger的路径
        "miDebuggerArgs": "", //传递给gdb的参数
        "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
        "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
        "cwd": "${fileDirname}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
        "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
        "preLaunchTask": "build",   // 调试会话开始前执行的任务,一般为编译程序,这个任务需要在tasks.json文件里定义
    }]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/177855
推荐阅读
相关标签
  

闽ICP备14008679号