标签: vscode-tasks

VSCode 任务运行位于任何地方的 ant 构建文件

我有一个庞大的项目,分布在多个源目录中,该项目是在过去 15 年中使用 eclipse 开发的,具有自定义外部工具配置,可以从源目录内任何位置的 build.xml 文件启动 ant 任务(我知道,这是一团糟!)。

由于日常工作主要是基于 xml 和 JavaScript,我认为 VSCode 作为一个轻量级替代方案(因为 eclipse 无法在不超过 HeepSpace 的情况下处理大型 xml 文件)。在我看来,任务运行器是将 ant 构建集成到编辑器中的好方法,它们也被宣传为能够运行 ant 构建:

例如 Make、Ant、Gulp、Jake、Rake 和 MSBuild 等。

我可以使用根文件夹中的 build.xml 运行 ant 构建。然而,这并不是该项目的结构。

有没有办法从工作空间根目录以外的目录运行任务命令(在我的例子中是ant) ?

我想到了类似 git 的GIT_WORK_TREE环境变量或执行两个命令的方法(例如cd {{build.xml folder}} && ant)。我当前的tasks.json是

{
    "version": "0.1.0",
    "command": "ant",
    "isShellCommand": true,
    "showOutput": "silent",
    "args": ["all", "jar"],
    "promlemMatcher": "" // I'm also not sure what to put here,
                         // but that's …
Run Code Online (Sandbox Code Playgroud)

ant visual-studio-code vscode-tasks

4
推荐指数
1
解决办法
8157
查看次数

在 VSCode 中使用 gdbserver 进行调试时停顿 - “无法跟踪 preLaunchTask 'docker gdb'。”

概括

我正在尝试在 docker 映像 (Ubuntu) 中调试 C++ 程序,同时在我的主机系统 (OS X) 上使用 VSCode 作为 IDE。在对 gdbserver 和 VSCode 任务进行各种修补后,我现在能够成功运行调试器,但是每次启动调试会话时,VSCode 都会挂起 10 秒,然后报告错误消息:

“无法跟踪 preLaunchTask 'docker gdb'。”

如果我点击这个错误,我可以正常地完美调试,但是每次调试时都要等待 10 秒,这让我非常沮丧。

细节

我的 Docker 映像是通过以下方式启动的,因此我的源代码安装在“app”目录中。安全设置是我在 Stack Overflow 上的其他地方找到的,需要允许 gdbserver:

docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it -v "$(pwd):/app" -w "/app" -p 9091:9091 {imageName} /bin/bash
Run Code Online (Sandbox Code Playgroud)

当我在主机上启动调试会话时,我使用这个启动命令,将本地 gdb 连接到 docker gdbserver,并运行一个预启动任务:

{
"version": "0.2.0",
"configurations": [
    {
        "name": "Remote unit test",
        "type": "cppdbg",
        "request": "launch",
        "program": "./tests/ConfigurationTest.cpp_TestRunner",
        "miDebuggerServerAddress": "localhost:9091",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceRoot}",
        "environment": …
Run Code Online (Sandbox Code Playgroud)

debugging gdbserver docker visual-studio-code vscode-tasks

4
推荐指数
1
解决办法
1609
查看次数

VSCode 中后台任务的正确开始模式和结束模式是什么?

我有一个静态网站(即只有 html 和客户端 JavaScript),在本地调试时使用 python 提供服务。我有一个 VSCode 任务将正确启动 python,并尝试将该任务设置为preLaunchTaskChrome调试器启动任务。理想的行为是,每当我开始调试serve以下任务时,都会确保站点正在运行。

如果我正确理解后台任务,可以设置beginsPatternendsPattern来表示状态变化。

我期待当 python 回显时

在 0.0.0.0 端口 8000 ( http://0.0.0.0:8000/ ) 上提供 HTTP 服务...

下面将向启动任务发出信号,表明它已经开始stdoutproblemMatcher相反,启动任务会永远等待,直到任务的 shell 命令终止后才会继续。

可以配置任务来实现这种行为吗?

启动配置

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "chrome",
            "request": "launch",
            "name": "Launch Chrome against localhost",
            "url": "http://localhost:8000",
            "webRoot": "${workspaceFolder}/webroot",
            "preLaunchTask": "serve"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

服务任务

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "serve",
            "type": "shell",
            "command": "python3 -m …
Run Code Online (Sandbox Code Playgroud)

visual-studio-code vscode-tasks

4
推荐指数
1
解决办法
2375
查看次数

在 VSCode Typescript 构建任务中设置 --verbose 选项

从命令行编译时,我可以指定

tsc -b --verbose
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何在 vs 代码中配置默认​​构建任务来做同样的事情。我在tsconfig.jsontasks.json 中找不到任何相关条目

typescript tsc visual-studio-code vscode-tasks

4
推荐指数
1
解决办法
4901
查看次数

是否有 VS Code 快捷方式可用于从所选代码或剪贴板代码创建新文件?

我处理大型 html 文件,我想将它们分成单独的文件。这样做的过程非常繁琐,因为它需要复制代码,创建一个新文件,将其粘贴到新文件中,然后选择一个文件夹和一个新名称来保存它。

VS Code 是否有内置的快捷方式、宏或扩展来简化此操作?

macros visual-studio-code vscode-tasks

4
推荐指数
1
解决办法
3528
查看次数

为什么tasks.json:无法识别文件格式

我在 ubuntu16 上运行 VScode,并测试 helloworld.cpp。一开始,我遍历了所有,然后我尝试编辑tasks.json。我得到了错误。好的,我用回滚取消了所有更改,它显示错误 aagin。我删除了 helloworld 文件夹,然后再试一次 helloworld。在终端 > 配置默认构建任务并构建后,错误再次显示。怎么了?它来自 vscode。

错误信息:

执行任务:/usr/bin/g++ -g /home/liwenz/helloworld/.vscode/tasks.json -o /home/liwenz/helloworld/.vscode/tasks <

/usr/bin/ld:/home/liwenz/helloworld/.vscode/tasks.json:文件格式无法识别;视为链接器脚本 /usr/bin/ld:/home/liwenz/helloworld/.vscode/tasks.json:1: 语法错误 collect2: 错误: ld 返回 1 退出状态终端进程以退出代码终止:1

任务文件

{
"version": "2.0.0",
"tasks": [
    {
        "type": "shell",
        "label": "C/C++: g++ build active file",
        "command": "/usr/bin/g++",
        "args": [
            "-g",
            "${file}",
            "-o",
            "${fileDirname}/${fileBasenameNoExtension}"
        ],
        "options": {
            "cwd": "${workspaceFolder}"
        },
        "problemMatcher": [
            "$gcc"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

}

helloworld 链接是https://code.visualstudio.com/docs/cpp/config-linux

format compiler-errors visual-studio-code vscode-tasks

4
推荐指数
1
解决办法
4429
查看次数

VSCode:Code Runner 扩展无法在 git bash 终端上执行代码?

在此处输入图片说明 我正在尝试使用适用于 VSCode 的 Code Runner 扩展运行一个简单的程序“primeRange.cpp”。

我在VSCode 中选择了我的默认终端作为git bash,但是当我点击右上角的Run时,它会将命令发送到 bash 以使用 g++ 编译器运行程序,但是我收到错误,因为没有这样的文件或目录,当有存在具有给定名称的目录。

我怎样才能解决这个问题?

当我在代码运行器上按运行时,如何自定义要在 bash 上运行的命令?

我想将命令设置为:

cd "c:\\Users\\Tushar\\Desktop\\contests\\Practice" && g++ primeRange.cpp -o primeRange && "c:\\Users\\Tushar\\Desktop\\contests\\Practice\\primeRange"
Run Code Online (Sandbox Code Playgroud)

或者

cd "c:\Users\Tushar\Desktop\contests\Practice" && g++ primeRange.cpp -o primeRange && "c:\Users\Tushar\Desktop\contests\Practice\primeRange"
Run Code Online (Sandbox Code Playgroud)

如果我在 bash 上手动执行上述任何一个命令,那么它就可以工作。

所以我基本上想知道如何在路径中包含可执行文件名

"c:\Users\Tushar\Desktop\contests\Practice\primeRange"
Run Code Online (Sandbox Code Playgroud)

而不是在引号之后:

"c:\Users\Tushar\Desktop\contests\Practice\"primeRange
Run Code Online (Sandbox Code Playgroud)

这是我的settings.json在此处输入图片说明

我已将 settings.json 中的路径更新为:

"code-runner.executorMap": {
        "cpp": "cd $dir && g++ -std=c++11 $fileName -o $fileNameWithoutExt && \"./$fileNameWithoutExt.exe\""
    },
Run Code Online (Sandbox Code Playgroud)

但现在我得到提示而不是要求标准输入,如下所示: 在此处输入图片说明

解决

修复 1:

将 …

bash visual-studio-code vscode-tasks vscode-code-runner

4
推荐指数
1
解决办法
1719
查看次数

配置 Visual Studio Code 任务按顺序执行多个 shell 命令

是否有可能使用单独的参数和选项将多个 shell 命令按顺序添加到 Visual Studio Code 任务?我设法使用&&将 then 链接到单个命令来执行多个命令,就像在任何 Linux shell 中一样。但我想,必须有更好的方法来做到这一点。

我在 Ubuntu 18.04 LTS 上使用 Visual Studio Code。

以下是我目前如何在 task.json 文件中链接构建任务的命令以使用 cmake 构建 C++ 项目的示例:

{
    "tasks": [
        {
            "type": "shell",
            "label": "build",
            "command": "cd ${workspaceFolder}/build && cmake .. && make clean && make",
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ],
    "version": "2.0.0"
}
Run Code Online (Sandbox Code Playgroud)

更新: - - - - - - - - - - - - - - - - - - - …

shell json cmake visual-studio-code vscode-tasks

4
推荐指数
1
解决办法
4455
查看次数

从 postDebugTask 中终止另一个任务 - VS Code

我有一个launch.json如下所示的调试启动配置 ( )。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Current TS File",
            "type": "node",
            "request": "launch",
            "preLaunchTask": "Pre Debug Task",
            "postDebugTask": "Stop Watch Styles",
            "args": ["${relativeFile}"],
            "runtimeArgs": ["--nolazy", "-r", "ts-node/register"],
            "sourceMaps": true,
            "cwd": "${workspaceRoot}",
            "protocol": "inspector",
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我的任务配置(tasks.json)就像

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "npm",
            "script": "next:copy",
            "label": "Copy Files",
            "problemMatcher": []
        },
        {
            "type": "npm",
            "script": "styles:tsw",
            "label": "Watch Styles",
            "problemMatcher": [],
        },
        {
            "label": "Pre Debug Task",
            "isBackground": true,
            "dependsOn" …
Run Code Online (Sandbox Code Playgroud)

visual-studio-code vscode-tasks vscode-debugger

3
推荐指数
2
解决办法
4012
查看次数

VSCode 未在文件夹打开时运行任务

我正在使用 TypeScript,并且经常不得不tsc-watch手动启动任务。根据博客 VSCode v1.30+ 可以在打开文件夹时自动运行任务,但这对我不起作用(v1.33.1) - 我打开我的文件夹但没有运行任何任务。 在此处输入图片说明

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "type": "typescript",
            "tsconfig": "tsconfig.json",
            "isBackground": true,
            "problemMatcher": [
                "$tsc"
            ]
        },
        {
            "type": "typescript",
            "label": "TypeScript Compiler Watcher Thingy...",
            "tsconfig": "tsconfig.json",
            "option": "watch",
            "problemMatcher": [
                "$tsc-watch"
            ],
            "runOptions": {
                "runOn": "folderOpen"
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句:也试过这个扩展,它也没有启动任务。

visual-studio-code vscode-tasks

3
推荐指数
1
解决办法
919
查看次数