当前位置: 首页 > news >正文

用iis做网站公司装修放假期间有没有工资

用iis做网站,公司装修放假期间有没有工资,开发一个小程序流程,佳世达电子 苏州 有限公司☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、简介 在 VS Code 中#xff0c;tasks.json 文件中的 problemMatcher 字段用于定义如何解析任务输出中的问题#xff08;错误、警告等#xff09;。 problemMatcher有三种配置方式#xff0c;具体可… ☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、简介 在 VS Code 中tasks.json 文件中的 problemMatcher 字段用于定义如何解析任务输出中的问题错误、警告等。 problemMatcher有三种配置方式具体可参考《VSCode中的任务什么情况下需要配置多个问题匹配器problemMatcher多个问题匹配器之间的关系是什么》的介绍。 本文要介绍的是problemMatcher为一个ProblemMatcher的JSON对象时其下的子对象patternpattern用于匹配任务执行时输出的信息如编译任务输出的告警和错误信息对符合pattern指定匹配规则的信息则纳入problemMatcher处理。 二、测试的C代码文件样例 为了测试vscode的问题匹配下面是一个故意存在多处错误的hello.cpp文件的代码注意就是一个完整的cpp文件不存在单独的头文件和其他外部文件 #include stdio.h #include stdlib.h #include myhead.hint main() {int loop;int i,j;printf(j%s\n,j);for(loop0;loop5;loop)printf(hello,world!%d\n,i);i;hell(); }大家看得出来几处问题代码吗 三、问题匹配器中的模式pattern介绍 3.1、vscode中pattern的定义 pattern在vscode中 的定义如下 pattern: string | ProblemPattern | ProblemPattern[]关于这个定义官方文档中有如下说明The name of a predefined problem pattern, the inline definition of a problem pattern or an array of problem patterns to match problems spread over multiple lines结合上述定义和文字说明可知pattern可以为字符串、ProblemPattern类型对象和ProblemPattern数组 pattern为字符串的情况vscode官方说是预定义的匹配模式老猿查阅了很多资料也许是统信下的vscode版本1.81.0太低也许是没找对方法在vscode1.81.0中反复测试也没有测试通过pattern 为 ProblemPattern类型的对象时包含有多个子对象在接下来的3.2节中详细介绍其相关信息pattern 为 ProblemPattern类型的数组时表明其所在的问题匹配器的匹配模式可以有多种这些匹配模式按照配置中的先后顺序逐一与输出信息匹配如果都匹配成功则整个问题匹配成功否则就是未匹配即多个匹配模式是与的关系这个与问题匹配器problemMatcher多个之间是或的关系是不同的。查阅了vscode的官方文档这种模式数组是用于匹配多行。不过关于此模式老猿一直未能测试成功3.3节再介绍测试情况。 3.2、ProblemPattern类型介绍 3.2.1、ProblemPattern类的定义 以下是vscode官方文档中关于ProblemPattern类的定义 interface ProblemPattern {/** The regular expression to find a problem in the console output of an* executed task.*/regexp: string; /*** Whether the pattern matches a problem for the whole file or for a location* inside a file.* Defaults to location. */kind?: file | location;/*** The match group index of the filename. */file: number;/*** The match group index of the problems location. Valid location* patterns are: (line), (line,column) and (startLine,startColumn,endLine,endColumn).* If omitted the line and column proper从上面官方文档的介绍可以知道ProblemPattern包含多个子元素下面分每个子元素展开介绍。从以上定义的英文注释能理解大部分定义要素的含义但有些光理解注释的字面意思还不够老猿结合测试情况对这些ties are used. */location?: number;/** * The match group index of the problems line in the source file.* Can only be omitted if location is specified. */line?: number;/**The match group index of the problems column in the source file. */column?: number;/** * The match group index of the problems end line in the source file.* Defaults to undefined. No end line is captured. */endLine?: number;/** * The match group index of the problems end column in the source file.** Defaults to undefined. No end column is captured. */endColumn?: number;/*** The match group index of the problems severity.* Defaults to undefined. In this case the problem matchers severity* is used. */severity?: number;/*** The match group index of the problems code.* Defaults to undefined. No code is captured.*/code?: number;/*** The match group index of the message. Defaults to 0. */message: number;/*** Specifies if the last pattern in a multi line problem matcher should* loop as long as it does match a line consequently. Only valid on the* last problem pattern in a multi line problem matcher. */loop?: boolean; }3.2.2 ProblemPattern类型的介绍 从上面官方文档的介绍可以知道ProblemPattern包含多个子元素从以上定义的英文注释能理解大部分定义要素的含义但有些光理解注释的字面意思还不够老猿结合测试情况对这下面分每个子元素展开介绍。 3.2.2.1、 regexp regexp对应为匹配输出问题信息的正则表达式正则表达式使用的元字符与Python的re模块基本一致如元字符包括“.*?[]{}[]\-^$”等转义符为\同时支持转义符定义的特殊序列以及组匹配模式支持通过组序号方式来访问匹配内容需要注意转义符在字符串中需要使用双斜杠。 案例^(.*):(\\d):(\\d):\\s(error):\\s(.*)$ 这个正则语句匹配如下类似的错误信息hello.cpp:3:10: error: myhead.h: 没有那个文件或目录 3.2.2.2、kind 指问题匹配时匹配到问题具体的行列位置还是只需要匹配到文件有2个取值一个是“file”表示只需要匹配到文件另一个是“location”匹配到行列指定的具体位置缺省值是“location”。 我们通过案例来看看问题面板输出的不同以上面hello.cpp的爆粗信息hello.cpp:3:10: fatal error: myhead.h: 没有那个文件或目录为例 设置为“location”问题面板中输出信息文件那栏输出了文件名、行号、列号如图 注意零两个问题不是问题匹配器problem_1输出的而是扩展组件C智能感知输出的。设置为“file”问题面板中输出信息文件那栏输出了文件名、行号、列号不过行号、列号固定为1如图 3.2.2.3、file、line、column 在正则表达式匹配输出信息时识别出来的文件名的匹配组号有关正则知识请参考老猿在CSDN上《Python基础教程》下的博文《第11.16节 Python正则元字符“”(小括号)与组group匹配模式》的相关介绍。 按照 案例正则表达式^(.*):(\\d):(\\d):\\s(error):\\s(.*)$ 对错误信息hello.cpp:3:10: error: myhead.h: 没有那个文件或目录 进行匹配file的匹配组号为1即第一个括号内匹配到的内容为文件名类似的line、column为匹配到错误位置行号、列号的匹配组号在上面例子中分别对应组号2和3。 3.2.2.4、endLine、endColumn endLine、endColumn与line、column类似不过有些代码的编译构建程序会输出错误代码的起止行号和列号line、column匹配开始行号和列号而endLine、endColumn匹配终止行号和列号。C的编译器没有输出相关信息因此无需配置。 3.2.2.5、severity 问题输出信息中匹配到的问题级别的匹配组号在上面的例子中就是(error)这个匹配信息对应的匹配组号。problemMatcher和ProblemPattern都存在“severity”的属性ProblemPattern又是problemMatcher的子属性二者的“severity”属性关系请见《VSCode任务tasks.json中的问题匹配器problemMatcher和ProblemPattern的severity属性关系》的分析相关情况请参考本文后面的测试情况说明。 3.2.2.6、code 用于设置正则表达式匹配问题报错信息中给出的错误源代码的匹配组号在C中的报错信息中存在有源代码信息但是在报错信息后面单独一行输出由于涉及多行匹配老猿一直无法验证成功。 没测试成功的原因可能有3个 vscode的版本过低因为老猿使用的是国产操作系统安装的vscode的版本是1.81.0而windows下已经至少是1.20.0的版本了多行问题匹配器不适合C的编译错误信息可能在别的语言构建时可以老猿的配置方法不对。 老猿觉得前面两个原因的可能性占多数因为老猿做了很多测试都无法支持多行输出信息的处理详细请见博文下面的介绍。 3.2.2.7、message 用于设置正则表达式匹配问题报错信息中给出的具体错误信息的匹配组号如果没有配置或配置为0默认就是包含文件名等在内的整个问题信息。 3.2.2.8、loop loop这个属性老猿仅从字面理解了是指定多行问题匹配器中的最后一个模式是否应循环只要它与一行匹配即可仅对多行问题匹配器中的最后一个问题模式有效。老猿理解为多行问题信息匹配需要多个匹配器来匹配多行的信息如果loop为true则只要这个问题匹配器匹配到任意一行的输出信息即可。 因为涉及多行匹配与code属性一样用C程序测试时没有测试通过因此也不知道理解是否正确。 四、问题匹配器的一些测试案例及结果介绍 4.1、编译hello.cpp的tasks.json的基本配置 下面是老猿使用的编译hello.cpp的tasks.json的基本配置 {version: 2.0.0,tasks: [{type: cppbuild,label: C/C: g 生成活动文件,command: /usr/bin/g,args: [-fdiagnostics-coloralways,-g,-Wall,-Wextra,-O0,${workspaceFolder}/hello.cpp,-o,${fileDirname}/${fileBasenameNoExtension}],options: {cwd: ${fileDirname}},problemMatcher: [ $gcc],group: {kind: build,isDefault: true},detail: 编译器: /usr/bin/g}] }这是初始配置问题匹配器用的是预定义的$gcc。用该配置编译上述hello.cpp时在终端窗口输出的错误信息如下 目前看到仅一个报错“/home/administrator/E_DRIVER/vcwork/test/hello.cpp:3:10: fatal error: myhead.h: 没有那个文件或目录”这是因为遇到了致命错误所以没有继续往下执行编译。下面是此时在问题控制面板的输出信息 可以看到输出了三个error级别的错误信息其中前2个是VSCODE的C插件IntelliSense输出的第三个是cpptools输出的实际上就是上面配置的问题匹配器$gcc输出的。 4.2、测试新增一个问题匹配器以及problemMatcher和ProblemPattern的severity属性关系 修改问题匹配器配置如下 problemMatcher: [ {owner: problem_1,severity: warning,fileLocation: absolute,pattern: {regexp: ^(.*):(\\d):(\\d):\\s(fatal).*:\\s(.*)$,file: 1,line: 2,column: 3,severity: 4,message: 5}}, $gcc]注意该问题匹配器的配置有如下要点 problemMatcher.severity的值为 “warning”pattern.severity的值为4对应regexp的第4个匹配组号对应匹配内容为(fatal)配置了2个问题匹配器分别是自定义的problem_1和预定义的$gcc。 这样配置后执行生成构建任务后问题面板的输出信息如下 可以看到 原来基本配置显示的最左边的严重级别图标为error修改问题匹配器后显示为warning对应的图标问题来源显示为新配置的problem_1错误信息由原来的“myhead.h: 没有那个文件或目录”变成了“没有那个文件或目录”。 结合上述问题匹配器大家去理解一下为什么会有这些变化有疑问在评论区提问。 通过这个配置可以说明如下情况 problemMatcher的severity属性优先ProblemPattern的severity属性多个问题匹配器是按顺序匹配的匹配到一个后面的不再匹配。 4.3、去除problemMatcher的severity配置场景 将自定义的问题匹配器的problemMatcher的severity属性配置注释掉同时将message的匹配组号调整为4与pattern.severity的值相同配置如下 problemMatcher: [ {owner: problem_1,// severity: warning,fileLocation: absolute,pattern: {regexp: ^(.*):(\\d):(\\d):\\s(fatal).*:\\s(.*)$,file: 1,line: 2,column: 3,severity: 4,message: 4}}, $gcc],可以看到执行构建任务时问题面板输出内容如下 可以看到输出的消息变为fatal问题严重级别图标变为error相关结论大家可以参考《VSCode任务tasks.json中的问题匹配器problemMatcher和ProblemPattern的severity属性关系》的介绍。 4.3、新增两个定制化的problemMatcher配置场景 4.3.1、测试背景说明 由于测试代码中的#include myhead.h存在致命错误导致编译程序无法往下执行为了测试本场景要求本次测试的代码是注释或去除了该行代码此时编译报错信息为 hello.cpp:10:12: warning: format ‘%s’ expects argument of type ‘char*’, but argument 2 has type ‘int’ [-Wformat]printf(j%s\n,j);^~~~~~~~ ~ hello.cpp:14:5: error: ‘hell’ was not declared in this scopehell();^~~~ hello.cpp:14:5: note: suggested alternative: ‘ftell’hell();^~~~ftell生成已完成但出现错误。* 终端进程启动失败(退出代码: -1)。 4.3.2、测试的问题匹配器配置 配置了三个问题匹配器分别是problem_error、problem_warning和预定义的gcc三个问题匹配器本身都没有配置severity属性。具体配置如下 problemMatcher: [ {owner: problem_error,fileLocation: absolute,pattern: {regexp: ^(.*):(\\d):(\\d):\\s(.*error).*:\\s(.*)$,file: 1,line: 2,column: 3,severity: 4,message: 5}}, {owner: problem_warning,fileLocation: absolute,pattern: {regexp: ^(.*):(\\d):(\\d):\\s(.*warning|note).*:\\s(.*)$,file: 1,line: 2,column: 3,severity: 4,message: 5}}, $gcc]进行编译构建后输出问题面板内容如下 可以看到输出了4个问题其中一个是C InelliSense输出的其他三个是自定义问题匹配器输出的大家应该可以理解输出信息为什么是这样吧特别是最后一个显示的信息为什么是‘ftell’不理解的在评论区提问吧。 4.4、测试捕获输出了源代码的问题 将问题匹配器换成如下 problemMatcher: [ {owner: problem_code,fileLocation: absolute,pattern: {regexp: ^.*(printf).*$,file:1,message: 1 }}, $gcc]该问题匹配器试图匹配输出信息存在printf的语句但经测试该问题匹配器无法捕获到问题具体原因未知如果有哪位大佬可以解惑欢迎在评论区留言老猿感激不尽。 4.5、测试捕获多行问题信息 将问题匹配器改成如下 problemMatcher: [ {owner: problem_multiline,fileLocation: absolute,pattern: [ {regexp: ^(.*):(\\d):(\\d):\\s(warning|note|error):\\s(.*)$,file: 1,line: 2,column: 3,severity: 4,message: 5},{regexp: (.*),file:1,message: 1,loop:true}]}, $gcc]上面的问题匹配器数组包含了两个问题匹配器一个自定义的problem_multiline一个gcc其中problem_multiline配置了两个ProblemPattern问题模式。运行编译任务后可以看到问题面板输出信息如下 这个输出结果可以看到针对note的告警信息匹配了problem_multiline这个问题匹配器其他的问题输出信息都没有匹配到problem_multiline匹配到的问题匹配器的输出信息感觉是两个ProblemPattern对note所在的首行输出信息进行匹配之后叠加一起作为message输出为什么这样老猿也没搞懂欢迎各位大佬指教。 五、小结 本文介绍了VSCode任务tasks.json中的问题匹配器problemMatcher的配置项问题匹配模式ProblemPattern包括官方定义以及老猿对每个ProblemPattern子对象的解读有些内容是老猿测试验证后独家公布同时对相关知识老猿也存在多处没有理解的地方在正文中都以加粗字体显示期待各位大佬指导。 写博不易敬请支持 如果阅读本文于您有所获敬请点赞、评论、收藏谢谢大家的支持 更多关于vscode使用方面的问题的内容请参考专栏《国产信创之光》的相关文章。 关于老猿的付费专栏 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合相关资料基本上都是老猿反复研究的成果有助于OpenCV-Python初学者比较深入地理解OpenCV对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容包括爬虫入门的基础知识以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。 前两个专栏都适合有一定Python基础但无相关知识的小白读者学习第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。 对于缺乏Python基础的同仁可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏Python基础教程目录从零开始学习Python。 如果有兴趣也愿意支持老猿的读者欢迎购买付费专栏。 老猿Python跟老猿学Python ☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░ VSCODE的tasks.json的problemMatcher的子配置项patternMatcher可以有哪些下级子配置项其用途分别是什么 在VSCode的tasks.json文件中problemMatcher是一个关键配置项它可以确定问题面板中显示的内容。特别要注意的是它的子属性patternMatcher可以进一步定义问题的匹配规则。 patternMatcher的属性值可以是以下几种 “default”: {}使用默认的匹配规则。 “strict”: {}使用严格的匹配规则只有完全匹配的问题才会显示。 “off”: {}关闭问题匹配功能不显示任何问题。 “word”: /\b(?:if|else|while|for)\b/g针对特定的关键词进行匹配这里的示例是针对C中的if、else、while和for等关键字。 “regexp”: /^((?!\b(?:if|else|while|for)b).)*$/gm使用正则表达式进行更复杂的匹配例如检测C代码中是否存在语法错误。 “not”: { “match”: “string”, “message”: “string” }排除与指定字符串完全匹配的问题。 “any”: [{}, {}]或运算只要满足其中一个规则就可以匹配。 “all”: [{}, {}]与运算必须满足所有规则才能匹配。 在 VS Code 的 tasks.json 中problemMatcher 的 patternMatcher 子配置项用于指定问题匹配器的模式匹配器。它可以是一个字符串或一个对象用于进一步定义问题的匹配方式。 对于 patternMatcher 子配置项可以根据不同的任务和编译器输出格式进行自定义配置。以下是一些可能的下级子配置项及其用途 type指定模式匹配器的类型。可以是 “regex” 或 “literal”。“regex” 表示使用正则表达式进行匹配“literal” 表示直接匹配字符串。 pattern指定模式匹配的模式。如果是 “regex” 类型则 pattern 是一个正则表达式如果是 “literal” 类型则 pattern 是一个字符串。 file指定要匹配的文件路径。可以是一个字符串或一个字符串数组用于指定要匹配的文件。 line指定要匹配的行号。可以是一个整数或一个整数数组用于指定要匹配的行号范围。 column指定要匹配的列号。可以是一个整数或一个整数数组用于指定要匹配的列号范围。 message指定要匹配的错误信息内容。可以是一个字符串或一个字符串数组用于指定要匹配的错误信息内容。 VSCODE的tasks.json的problemMatcher的patternMatcher可以有哪些下级子配置项其用途分别是什么 根据引用在tasks.json中problemMatcher的patternMatcher可以有以下下级子配置项 fileLocation: 指定问题界面文件目录的查找方式可以是绝对路径或相对路径。 uri: 指定问题界面文件的URI。 severity: 指定问题的严重程度可以是error、warning或info。 code: 指定问题的代码。 message: 指定问题的消息。 loop: 指定是否循环匹配问题。 location: 指定问题的位置。 line: 指定问题所在的行数。 column: 指定问题所在的列数。 endLine: 指定问题结束的行数。 endColumn: 指定问题结束的列数。 relatedInformation: 指定相关信息。 其中fileLocation和uri用于指定问题界面文件的位置severity用于指定问题的严重程度code用于指定问题的代码message用于指定问题的消息location用于指定问题的位置line和column用于指定问题所在的行数和列数endLine和endColumn用于指定问题结束的行数和列数relatedInformation用于指定相关信息。
http://wiki.neutronadmin.com/news/102357/

相关文章:

  • 学做川菜最好的网站华为公司邮箱
  • 专注网站建设公司wordpress回复下载
  • 怎样建立自己的销售网站公司官网怎么做
  • 怎么做一个局域网站做网站技术人员
  • 可以推广的网站有哪些wordpress站点浏览
  • 搬瓦工如何搭建做网站做金融在那个网站上找工作
  • vi设计与网站建设招标文件网站建设从零开始
  • 网站登录验证码不正确wordpress黑色主题下载
  • 南山区住房与建设局官方网站哪家企业建设网站好
  • 北京好一点的微网站开发公司网站色彩设计
  • 北京外贸网站制作公司网站程序的构成
  • 保定网络公司建设网站网站服务器租用注意事项
  • 茶叶网站策划方案WordPress设置评论通过
  • 网站设计背景图片怎么做的wordpress网站如何迁移
  • 服装网站建设发展状况国家补贴软件网站开发政策
  • 自己买域名可以做网站吗网络营销推广公司哪家好
  • 个人网站免费建站北京著名网站设计公司
  • 网站卡密代理怎么做wordpress增加浏览量
  • 平面排版网站飞飞cms悠悠电影网站
  • 扬之云公司网站建设简述制作网站的主要流程
  • 网站标题tdk北京王府井
  • 旅游网站怎么建设正规的男科医院排名
  • 网站策划师招聘深圳市腾讯天游科技有限公司
  • 欧米伽官方网站手表价格太原做网站费用
  • 莆田市秀屿区建设局网站网站开发要先买服务器吗
  • 网站建设打广告报名小程序怎么制作
  • 怀来县网站建设网站空间怎么选
  • 0791网站建设网站内容及实现方式
  • 手机网站做指向tiktok无货源跨境电商怎么做
  • 网站建设新的技术方案网站建设联雅