VS Code中Todo-Tree扩展报错:无效正则表达式/???/无重复项
解决Todo-Tree正则报错:Invalid regular expression: /???/: Nothing to repeat
问题原因
你配置的自定义标签???包含正则特殊字符?,Todo-Tree默认会把所有自定义标签整合到正则表达式中。而?是正则量词(用于匹配前面元素0或1次),连续三个?会让正则引擎解析失败——第一个?前面没有可重复的元素,因此触发“Nothing to repeat”报错。
解决方案
方案1:开启字面量标签匹配(推荐)
在Todo-Tree配置中添加以下设置,让插件把所有自定义标签当作普通字符串而非正则表达式处理:
"todo-tree.regex.useLiteralTags": true
添加后的关键配置片段:
"todo-tree.regex.regex": "((//|--|#|<!--|;|/\\*|^)\\s*($TAGS)|^\\s*- \\[ \\])", "todo-tree.regex.useLiteralTags": true, // 新增该行 "todo-tree.highlights.defaultHighlight": { // 原有配置保持不变 },
方案2:修改标签或转义特殊字符
如果不想开启字面量匹配,可二选一操作:
- 把
???标签改为不含正则特殊字符的名称,比如QUESTION; - 对标签中的
?进行正则转义,配置如下:
"\\?\\?\\?": { "icon" : "question", "foreground" : "#b777f7", "rulerColour": "#b777f7", "fontStyle" : "italic", },
注意:转义后的标签在代码中需要写成// ???这类形式才能被识别。
验证
保存配置并重启VS Code,检查是否仍弹出正则错误提示,同时确认???标签可正常高亮。
内容的提问来源于stack exchange,提问作者perry_the_python
相关产品推荐
相关产品推荐

