问题标签 [vscode-problem-matcher]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 无法获得最简单的问题匹配器来报告任何问题
我一直在谷歌搜索几个小时,简化为最愚蠢的 vs 代码项目:
并且没有报告任何问题。
我错过了什么?
[编辑]
根据评论中的要求,我在这里回显一条实际的错误消息,从https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher复制:
echo helloWorld.c:5:3: 警告:函数'printft'的隐式声明</p>
我从同一个链接复制了示例问题匹配器。仍然没有显示任何东西。由于某种原因,终端输出有一些换行符。
[编辑 2] 好的,感谢 rioV8 和 Yassin Hajaj 的帮助,我想通了。这是学习问题匹配器如何工作的一种令人沮丧的方式。我缺乏正则表达式的经验并没有帮助。
原来“shell”默认为 PowerShell,它有一个 echo 命令将每个标记显示到一个新行。我终于把它变成了一条带有一些逃避诡计的线:
文件、行和消息属性也是必需的。
所以这是一个工作示例:
c# - 通过 VSCode 运行 dotnet 应用程序是否存在问题匹配器?
我希望有人知道如何利用tasks.json
VSCode 中的文件来捕获dotnet run
命令的输出。
目前我的launch.json
文件中有一个启动项,用于启动一个新的 chrome 窗口来调试 Angular 应用程序。我已preLaunchTask
将该文件中的 定义为以下任务之一。还有另一项任务,但为简洁起见,我没有在此处包含该任务,因为我已使用此文档解决了该任务。
目的是一旦这两个任务完成,它会自动为我启动 Chrome 窗口。目前,当我运行以下任务时,将选择我的 C# 项目并运行控制台程序。但是,VSCode 仍然认为该任务仍在进行中,因此继续等待,希望一旦该任务完成,它就可以启动 chrome。显然,由于它继续认为任务尚未完成,因此它不会启动它。
我注意到的是,当我将下面的任务修改为 dotnet build one(C# for Visual Studio Code
扩展自动生成的)时,它发现任务已成功完成并启动 chrome。可能是因为我使用了$msCompile
problemMatcher 模式。
回答我的问题(有点啰嗦抱歉!)...
- 是否有类似
problemMatcher
的运行应用程序? - 是否需要通过将构建任务与此复合来修改以下内容,以便假设构建已完成?
感谢您在这方面的任何帮助,因为我昨天下午在谷歌上搜索了一下,试图弄清这个问题。
谢谢!
代码示例
点网运行任务
点网构建任务
visual-studio-code - 如何按多个条件过滤问题?与或或
在问题窗格中,您可以按文本或文件过滤/排除,但如果我想按多个条件过滤怎么办?像过滤那些包含文本 X OR Y(或 X AND Y)的消息。我知道您可以使用逗号过滤多种类型的文件,是否有类似的文本机制?
visual-studio-code - Visual Studio 代码中的任务 - 问题匹配不起作用
我创建了一组任务,我想用这些任务编译用 MAD Pascal 编写的程序(用于 6502 处理器的 FreePascal 编译器)通常一切正常,但是我在处理“问题匹配器”时遇到了问题。我不知道为什么,它不想检测错误?我承认,我是第一次在 VSC 中使用任务。我浏览了许多不同的教程,但一切似乎都很好。我的“问题匹配器”配置
我测试了正则表达式的正确性(regex101),它与控制台中的内容正确匹配。控制台内容示例:
有人可以向我指出我做错了什么吗?配置错误在哪里?我将非常感激 - 我非常想在“问题”窗口中看到编译错误:)
visual-studio-code - VS Code problem matchers: how to extract multiple issues from one line? (GNU linker)
The GNU linker emits error messages in this style:
I want to create two problems from this single line, for the two files and line numbers mentioned in the message, so that I can click both of them and navigate to the offending lines (oled.c:40 and bootloader.c:27). It's possible to create patterns for the compiler and for both parts of the linker message:
This does not work, because if the Linker 1 pattern matched, the Linker 2 is not executed at all. If I copy the regexp from Linker 2 to Linker 1, the second part of the message is parsed properly. Is it somehow possible to tell Code to always attempt to match all patterns, even if a previous one already matched? Or any other way to create multiple problems from one message line?