【发布时间】:2015-11-27 03:58:45
【问题描述】:
我开始为SublimeLinter 编写一个插件,到目前为止,linting 本身正在工作。但是,我还没有设法使突出显示工作。由于我的 linter(实际上是一个编译器)不输出列,如果失败的行被突出显示,我会很高兴。
linter.py 中的相关部分如下所示:
regex = (
r'Error in script \".+?\" on line (?P<line>\d+) -- aborting creation process'
)
multiline = True
line_col_base = (1, 1)
来自 linter 可执行文件的示例错误如下所示:
Invalid command: Naem
Error in script "/Users/testuser/Desktop/lint-test.nsi" on line 5 -- aborting creation process
我不知道 SublimeLinter 是如何利用错误消息的,所以我很乐意现在得到 line 部分。
编辑:根据下面的评论,我尝试使用near,但由于文档稀缺且没有示例,我仍然没有找到解决方案。我更新的正则表达式模式:
regex = (
r'Invalid command\: (?P<near>\w+)'
r'Error in script \"(.+?)\" on line (?P<line>\d+) -- aborting creation process'
)
尽管这只会捕获拼写错误的命令,但答案可以让我更容易理解如何正确捕获输出。
【问题讨论】:
-
SublimeLinter 如果插件不返回列,则指定“near”作为参数。你能在附近组中捕获“Naem”吗? sublimelinter.com/en/latest/linter_attributes.html#regex 或者只是覆盖提取方法:sublimelinter.com/en/latest/linter_methods.html#split-match
-
@alkuzad 感谢您的提示,这应该适用于无效命令。周末去试试!
标签: python regex sublimetext sublimelinter