3

SublimeText2DocBlockr 允许您根据变量的名称声明自定义变量类型规则。

从自述文件:

"jsdocs_notation_map": [{
  "regex": "tbl_?[Rr]ow", // any arbitrary regex to test against the var name
  "type": "TableRow"      // you can add your own types
}]

我想捕获以$字符开头的变量

例子:

"jsdocs_notation_map": [{
  "regex": "^[$].+",      // any word that starts with $
  "type": "HTMLElement"   // That is its type
}]

这样$header就会从上面的正则表达式中捕获。

不幸的是,上述方法不起作用。该插件不会将我的$header变量识别为“HTMLElement”。

我尝试了以下正则表达式字符串:

  • $- 它匹配所有内容,甚至是其中没有的 varnames $
  • \\$
  • \\\\$
  • $$
  • \\$$
  • \\\\$$
  • [$]
  • [\\$]

旁注:编辑不会让我插入奇数的\.

除了第一个匹配所有内容之外,所有这些都不匹配。

这不是 RegEx 问题。应该工作的正则表达式(例如^[$].+:)由于 $ 字符而根本不起作用。我认为这与插件设置机制以及python解析机制如何使用$有关。

旁注:"^[.].+"RegEx 按预期工作。

任何帮助都是最受欢迎的

PS:如果有人可以提供帮助,我想要正则表达式字符串开头的“^”。我不认为它不会开箱即用,但如果不是,也请分享这方面的知识。

4

4 回答 4

1

哦,嘿...所以插件所做的是从变量/函数名称中删除任何前导$_,然后应用正则表达式。添加它是为了可以使用相同_foo $foofoo正则表达式识别所有字符,因为当时我没有考虑那些具有特殊含义的字符。看起来这实际上是一个完全错误的功能。看起来你已经花了一些时间来破解它,抱歉。

我现在已将其添加到问题跟踪器中。将来,这也是引起我注意的好方法:)

于 2012-08-05T22:58:58.673 回答
0

$ 是行尾,所以你可以尝试将它放在方括号中作为逃避它的替代尝试......所以像 [$][^\s]+

于 2012-06-12T12:37:31.800 回答
0

"\\$"应该管用。第一个\转义第二个以在 JSON 中使用。然后生成正则表达式\$,它与文字美元匹配。

于 2012-06-12T14:01:43.853 回答
0

"^[$].*"

强制与线的^开头进行匹配。这里[]用来逃避$(这比弄清楚你需要多少层反斜杠更容易),并且+*匹配后面的所有内容。如果您想匹配一个或多个字母数字/下划线字符,您可以替换为.*[a-zA-Z0-9_]+

于 2012-06-12T20:22:24.030 回答