m-utils README
目前, 该插件提供了如下功能:
在编辑器中跳转到文件路径, 这类似于终端中的跳转功能, 但提供了一些配置选项, 可以自定义匹配模式和支持的语言, 文件搜索顺序为:
- 当前打开文件所在目录下的文件(文件名/相对路径)
- 工作区目录下的文件(文件名/相对路径)
- 从${工作区}/build/${path}/from.xxx 到 从${工作区}/${path}/to.xxx (文件名/相对路径)
- 绝对路径
生成 Python 函数的文档字符串Snippet, 默认快捷键为 Ctrl+Shift+D
对 launch.json 中 "request"=attach 的调试配置提供了更丰富的配置项(虽然不被linter接受), 可通过命令添加配置 -> AttachEnhancer 配置 查看.
- 受支持的调试类型由用户配置, 目前测试时使用了
cppvsdbg(Windows平台的C++调试器), 但理论上任何支持附加调试的调试器都应该适用.
- 进程筛选功能由find-process库提供, 虽然该库是跨平台的, 但该功能仅在Windows平台上进行了测试.
- 目前共有5个额外配置(前缀均为eh):
- ehProcessName: 需要匹配的进程名称, 采用子字符串匹配. 只有当该字段存在, 且processId不存在时, 才会启用增强功能.
- ehCommandline: 需要匹配的命令行参数, 采用子字符串匹配. 可选.
- ehTimeout: 等待匹配进程出现的超时时间, 单位毫秒. 默认10000 (10秒). 设置为0或负数表示不等待, 只进行一次匹配
- ehPollInteval: 等待匹配进程出现时的轮询间隔, 单位毫秒. 默认1000 (1秒)
- ehMaxAutoPick: 当有多个匹配项时, 自动选择的最大数量. 默认1. 当匹配项超过该数量时, 将要求用户选择要附加的进程, 否则将自动附加到所有匹配项.
如在Windows环境下进行Python/C++联调的场景, 可以使用如下配置
{
"version": "0.2.0",
"configurations": [
{
"name": "Python的C++(Windows)附加",
"type": "cppvsdbg",
"request": "attach",
"ehProcessName": "python",
"ehCommandline": "--adapter-access-token",// 该参数是debugpy在Windows上启动被调试进程时添加的, 可以用来区分普通的python进程和被debugpy调试的python进程. 用户可通过启动无额外参数(eh-)的附加调试, 在弹出的进程列表的命令行参数中找到合适的子字符串, 来进行配置
"ehTimeout": 10000,
"ehMaxAutoPick": 2,// 允许自动选择最多2个匹配项. 测试时发现存在两个命令行参数完全相同但PID不同的python进程, 难以区分. 直接附加到这两个进程(其中一个是我们需要的,其可见的线程更多)是最简单的方法
},
{
"name": "Python 调试程序: 当前文件",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"justMyCode": false
},
],
"compounds": [
{
"name": "当前文件",
"configurations": [
"Python的C++(Windows)附加",
"Python 调试程序: 当前文件"
]
},
]
}
| |