VScode的task与launch学习笔记

VScode的task与launch学习笔记

task部分

task的作用

​ VS Code 中的任务可以配置为运行脚本和启动进程,这样许多现有工具可以在 VS Code 中使用,而无需输入命令行或编写新代码

创建task

​ ctrl+shift+P,搜索task。

​ 创建task的时候有很多模板可供选择,最好使用自定义task,也就是other,虽然需要花时间去了解构建task的知识,但是这样可以完全掌控自己想要的功能。

task参数配置

!!!一定要学会使用下面两个法!!!

  1. CTRL + SPACE:用来显示光标位置处可以使用的属性,或者参数。
  2. 把鼠标放在属性上:显示属性的意义。
//一种task配置,只含有部分属性配置,作为示例

{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run tests",
      "type": "shell",
      "command": "./scripts/test.sh",
      "windows": {
        "command": ".\\scripts\\test.cmd"
      },
      "group": "test",
      "presentation": {
        "reveal": "always",
        "panel": "new"
      }
    }
  ]
}
taks的属性属性的含义
label任务的标签名
type将要执行的认为属性,shell表示命令,process表示进程
command要执行的命令
args命令的参数
group定义任务所属的组,用来归类,多任务执行
presentation定义如何在用户界面处理任务输出
problemMatcher问题匹配器,用来输出警告和错误,例如$go匹配go编译器报告的问题
option覆盖cwd(当前工作目录)、env(环境变量)或shell(默认shell)的默认值
runOption定义任务运行的时间和方式
dependsOn指定任务执行时候依赖于那些其他设置的指令
dependsOrder指定所依赖的任务执行的顺序
windowwindow下的特定属性
LinuxLinux下的特定属性
osxmac下的特定属性
isBackground执行的任务是否保持活动并在后台运行。
promptOnClose当 VS Code 因正在运行的任务而关闭时是否提示用户。
key设定任务快捷键
预定义变量名字预定义变量意义
${workspaceFolder}在 VS Code 中打开的文件夹的路径
${workspaceFolderBasename}在 VS Code 中打开的文件夹的名称,不带任何斜线 (/)
${file}当前打开的文件
${fileWorkspaceFolder}当前打开的文件的工作区文件夹
${relativeFile}当前打开的文件相对于workspaceFolder
${relativeFileDirname}当前打开的文件的目录名workspaceFolder
${fileBasename}当前打开的文件的基本名称
${fileBasenameNoExtension}当前打开的文件的基本名称,没有文件扩展名
${fileDirname}当前打开的文件的目录名
${fileExtname}当前打开的文件的扩展名
${cwd}启动时任务运行器的当前工作目录
${lineNumber}活动文件中当前选定的行号
${selectedText}活动文件中当前选定的文本
${execPath}运行 VS Code 可执行文件的路径
${defaultBuildTask}默认构建任务的名称
${pathSeparator}操作系统用于分隔文件路径中的组件的字符

参考资料

  1. VSCode task.json讲解:https://code.visualstudio.com/docs/editor/tasks#vscode
  2. VSCcde 预定义变量讲解:https://code.visualstudio.com/docs/editor/variables-reference

launch部分

launch的作用

​ launch.json用来保存VSCode调试的配置信息,启动配置中可用的属性因调试器而异。

launch的创建方法

  1. 点击右侧栏的”Run and debug“,然后点击创建launch 文件
  2. F5 选择调试,间接生成launch文件

launch的参数配置(C++的GDB调试配置)

{
    // 一个创建c++(GDB调试器)模板,示例
	// Use IntelliSense to learn about possible attributes.
	// Hover to view descriptions of existing attributes.
	// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
	"version": "0.2.0",
	"configurations": [
		{
			"name": "g++ - 生成和调试活动文件",
			"type": "cppdbg",
			"request": "launch",
			"program": "${fileDirname}/${fileBasenameNoExtension}",
			"args": [],
			"stopAtEntry": false,
			"cwd": "${fileDirname}",
			"environment": [],
			"externalConsole": false,
			"MIMode": "gdb",
			"setupCommands": [
				{
					"description": "为 gdb 启用整齐打印",
					"text": "-enable-pretty-printing",
					"ignoreFailures": true
				}
			],
			"preLaunchTask": "C/C++: g++ 生成活动文件",
			"miDebuggerPath": "/usr/bin/gdb"
		}
	]
}
launch的属性属性的含义
type用于此启动配置的调试器类型
request此启动配置的请求类型,,launch(以调试模式开始)和attach(在运行过程中附加调试)
name显示在调试启动配置下拉列表中的易于阅读的名称。
presentation如何显示调试的信息,使用ordergrouphidden 属性
preLaunchTask要在调试会话开始之前启动任务,请将此属性设置为task.json中指定的任务标签
postDebugTask要在调试会话的最后启动任务,请将此属性设置为task.json中指定的任务标签
internalConsoleOptions此属性控制调试会话期间调试控制台面板的可见性
program启动调试器时要运行的可执行文件或文件
args传递给程序以进行调试的参数
environment环境变量(该值null可用于“取消定义”变量)
envFile带有环境变量的 dotenv 文件的路径
cwd用于查找依赖项和其他文件的当前工作目录
stopAtEntry是否在进入短点前停止
externalConsole是否允许外部中端,不允许的话就是用liunxwindow自己的中端
MIMode所连接的调试器名字
setupCommands执行一个或多个 GDB/LLDB 命令以设置底层调试器。
miDebuggerPath调试器的位置

复合launch配置

​ 启动多个调试会话的另一种方法是使用复合启动配置。复合启动配置列出了应该并行启动的两个或多个启动配置的名称。preLaunchTask可以选择指定在启动各个调试会话之前运行的 。

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Server",
      "program": "${workspaceFolder}/server.js"
    },
    {
      "type": "node",
      "request": "launch",
      "name": "Client",
      "program": "${workspaceFolder}/client.js"
    }
  ],
  "compounds": [
    {
      "name": "Server/Client",
      "configurations": ["Server", "Client"],
      "preLaunchTask": "${defaultBuildTask}"
    }
  ]
}

注意:compounds与 task并列的

参考资料

  1. https://code.visualstudio.com/docs/editor/debugging#_launch-configurations

launch与test文件使用过程

我的理解:你在test文件种设置各种指令,这些指令完成对程序的编译连接等等,然后在launch种设置调试指令。每次调试的时候会先执行test任务然后在执行launch命令,从而完成编译后调试。而具体如何用指令来对c++程序进行编译,则需要进一步学习,也就是说,这两个文件的编写,可以大大简化以后要进行的重复性工作,但也仅仅只有这个帮助。至于c++程序在linux下如何编译、编译有哪些参数、在 基于VSCode和CMake实现C/C++开发 | Linux篇有一些介绍。在使用的过程一定要使用好CTRL+SPACE,这能帮助你了解此处参数和属性到底有那些、有什么意义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值