我正在尝试为 VS 代码编写一个简单的扩展,将选择重命名为给定的字符串。该应用程序是使用扩展生成器引导的:https://code.visualstudio.com/docs/extensions/example-hello-world#_generate-a-new-extension
为此,我使用以下代码:
const editor = vscode.window.activeTextEditor;
if (!editor) throw Error;
const position = editor.selection.active
const uri = editor.document.uri
vscode.commands.executeCommand("vscode.executeDocumentRenameProvider", uri, position, "donkey")
.then(edit => {
if (!edit) throw Error;
return vscode.workspace.applyEdit(edit);
});
Run Code Online (Sandbox Code Playgroud)
该命令绑定到键绑定。我使用 F5 启动调试器(启动 VS Code 实例进行调试,如教程中所示: https: //code.visualstudio.com/docs/extensions/example-hello-world#_debugging-your-extension)。然后,我在该调试实例中打开的文件中选择一堆代码,然后按我的按键绑定。
但是,在调试控制台中,我收到“拒绝的承诺未在 1 秒内处理”。不会抛出任何错误,并且由于executeCommand是一个Thenable,而不是一个真正的Promise,所以我无法对其调用catch()。
我尝试将调用包装在 try/catch 块中,但没有成功。当我尝试其他操作时,例如使用 vscode.window.showInformationMessage 显示消息或提示用户输入,它可以工作,但我没有看到错误。
我也尝试对扩展的 Typescript 版本执行相同的操作,但我得到了相同的行为。
我不明白我做错了什么,我缺少什么吗?
javascript visual-studio-code vscode-extensions vscode-debugger
在调试过程中,我希望能够访问特征矩阵和向量值。似乎一旦我有了一个.natvis文件,就可以创建一个 C++ 对象的自定义视图。这里有一个.natvisEigen 文件,但是我不知道如何将它与 VSCode 集成。我还尝试了gdb 扩展,但没有成功。
我怎样才能做到这一点?或者我还有什么其他解决方案?
我正在尝试设置一个启用调试并使用 webpack 的原始 Web 应用程序。
这是 vscode launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "DEBUG CHROME",
"url": "http://localhost:9000",
//"webRoot": "${workspaceFolder}/public" // this does not work, but is correct, according to documentation
"webRoot": "${workspaceFolder}" // this works, but is incorrect, according to documentation
}
]
}
Run Code Online (Sandbox Code Playgroud)
项目结构:
有谁知道为什么当 webRoot 指向正确的路径时调试会中断(没有命中断点) -${workspaceFolder}/public并且对于不正确的路径工作正常?
根据 vs 代码文档:
如果您使用 url,请设置
webRoot为提供文件的目录
在这种情况下这显然是错误的。
复制的最小示例在这里
有人知道webRoot实际如何运作吗?
编辑:这里有人说,那webRoot就是:
在内部它用于将源映射绑定到本地文件 …
javascript google-chrome webpack visual-studio-code vscode-debugger
我希望能够使用 VsCode 远程调试在 Docker 容器中运行的 Scala 编写的 Spark 作业。这就是我到目前为止所拥有的
docker exec -it -e SPARK_SUBMIT_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=4000 -w /spark spark-job-starter_master_1 bin/spark-submit --class example.StarterSparkJob /build/example.jar
Run Code Online (Sandbox Code Playgroud)
这样做后我看到输出Listening for transport dt_socket at address: 4000
Debugger failed to attach: handshake failed - received >Content-Length< - expected >JDWP-Handshake<
Run Code Online (Sandbox Code Playgroud)
代码的完整详细信息位于https://github.com/aedenj/spark-job-starter/tree/vscode-debug-setup。感谢您的指导。
scala apache-spark visual-studio-code vscode-debugger scala-metals
我尝试了很多解决方案,但没有人适合我。代码执行,但我无法放置断点并调试它。请你帮助我好吗?
我尝试过以下 VSCode 配置脚本:
{
"type": "node",
"request": "launch",
"name": "Typescript Node JS",
"program": "${workspaceFolder}/build/server",
"preLaunchTask": "npm: build",
"sourceMaps": true,
"stopOnEntry": false,
"internalConsoleOptions": "openOnSessionStart",
"outFiles": [
"${workspaceFolder}/out/**/*.js"
]
},
{
"name": "ts node",
"type": "node",
"request": "launch",
"args": [
"${workspaceFolder}/server"
],
"runtimeArgs": ["--nolazy", "-r", "ts-node/register"],
"sourceMaps": true,
"cwd": "${workspaceRoot}",
"protocol": "inspector"
}
Run Code Online (Sandbox Code Playgroud) javascript node.js typescript visual-studio-code vscode-debugger
在指令(https://code.visualstudio.com/docs/cpp/launch-json-reference)中,我看到VSCode可以使用“.natvis”文件。然后它引用 Visual Studio 中的文档,因此大多数使用信息不适用,但有一个关于文件语法的相当简短的部分。
它说“Natvis 自定义适用于类和结构,但不适用于 typedef”。但是类型别名的情况如何呢using?“变量”窗格中向我显示的类型确实涉及using创建代码随后使用的名称,尽管它实际上是在内部命名空间和模板别名中定义的。我需要解开没有任何usings 的名称吗?
它提供了一个简单的模板示例,但该示例使用类型参数并且仅使用一个模板参数。那么非类型参数呢?是对*要匹配的名称字符串进行操作还是仅对名称的各个部分进行操作?
template <int S, int F>
class Decimal { ... };
Run Code Online (Sandbox Code Playgroud)
有关在 Visual Studio 2019(在 Windows 上!)中打开诊断的信息与 VSCode 完全无关。我该如何排除故障?
如上所述,我有一个Decimal用整数表示定点数的类。当函数无法调用时,如何制作我想要的输出?字符串操作可以工作,一旦整数成员(字段)形成字符串用于显示,我只需要在右边的位置插入一个F小数点。
在 nextjs 最近的一项更新中,vscode 中的客户端 chrome 调试似乎已损坏。当我启动以下配置时,我的断点都没有被绑定:
{
"type": "chrome",
"request": "launch",
"name": "Debug Chrome on localhost",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}/pathto/myapp"
},
Run Code Online (Sandbox Code Playgroud)
请注意,我正在使用Debugger for Chrome (v4.12.10)扩展程序,VSCode (v1.48.1)并且正在调试通过nextjs (v9.5.2)在 Chrome 中运行提供的客户端 JavaScript,而不是 nextjs 节点进程。
有谁知道发生了什么变化以及如何让调试器再次绑定断点?
google-chrome-devtools visual-studio-code next.js vscode-debugger
我有一个 Python 包package_name,它提供了一个命令行应用command-line-app-name程序console_script:
setup.py:
setup(
...
entry_points={"console_scripts": ["command-line-app-name=package_name.cli:main"]},
...
)
Run Code Online (Sandbox Code Playgroud)
virtualenv 位于<project>/.venv并由pipenv. pipenv托管 venvs 应支持 VSCode 调试集成。我创建了一个调试器配置launch.json文件,并将 Python 路径设置为 venv ( pythonPath):
{
// 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": "Python: command-line-app-name",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"program": "command-line-app-name",
"linux": {
"pythonPath": "${workspaceFolder}/.venv/bin/python", …Run Code Online (Sandbox Code Playgroud) 我在 VS Code 中打开了调试模式,现在想将其关闭,但不知道如何关闭。
我如何恢复到原来的设置?(我在其他帖子上看到人们想要隐藏浮动菜单,但我想如果可能的话我想关闭调试?)
今天(2022年3月31日)我让自动更新功能将我的版本更新VS Code到最新版本1.66.0 Windows。此后,我的正常调试过程不再起作用:当我按F5时,调试控制面板闪烁并立即消失,没有任何其他反应。我在输出和终端窗口上找不到任何有用的错误消息。我的launch.json文件如下所示:
{
"name": "DEBUG",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}\\starting.py",
"console": "integratedTerminal",
"justMyCode": false,
}
Run Code Online (Sandbox Code Playgroud)
我尝试将console上面的内容更改为externalTerminal但没有帮助。有人可以告诉我如何找出这里发生了什么吗?
干杯,
vscode-debugger ×10
javascript ×3
python ×2
apache-spark ×1
c++ ×1
debugging ×1
eigen ×1
next.js ×1
node.js ×1
reactjs ×1
scala ×1
scala-metals ×1
typescript ×1
webpack ×1