首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clojure和ctag,捕获def*窗体

clojure和ctag,捕获def*窗体
EN

Stack Overflow用户
提问于 2015-06-19 15:57:24
回答 2查看 392关注 0票数 0

因此,我在一段时间前从一个Gist中找到了以下片段:

代码语言:javascript
复制
--langdef=Clojure                                                                         
--langmap=Clojure:.clj                                                                    
--langmap=Clojure:+.cljx                                                                  
--langmap=Clojure:+.cljs                                                                  
--regex-clojure=/\([ \t]*create-ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/          
--regex-clojure=/\([ \t]*def[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/d,definition/               
--regex-clojure=/\([ \t]*defn-?[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/f,function/              
--regex-clojure=/\([ \t]*defmacro[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/m,macro/               
--regex-clojure=/\([ \t]*definline[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/i,inline/             
--regex-clojure=/\([ \t]*defmulti[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/a,multimethod definitio
--regex-clojure=/\([ \t]*defmethod[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/b,multimethod instance
--regex-clojure=/\([ \t]*defonce[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/c,definition (once)/    
--regex-clojure=/\([ \t]*defstruct[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/s,struct/             
--regex-clojure=/\([ \t]*intern[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/v,intern/                
--regex-clojure=/\([ \t]*ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/   

然而,其他库已经引入了自己的宏,如defroutesdefhtml。我希望创建一个选择def*的通配符正则表达式。

我尝试将*添加到def中,但它没有起作用,显然regex是错误的。通配符覆盖所有的正则表达式会是什么样子?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-19 17:01:18

def*会匹配像defffffff这样的东西。在正则表达式中,这颗恒星并不意味着任何匹配的东西。它意味着与以前的模式匹配任何次数。在您的例子中,前面的模式是f。尝试def[a-z]*来匹配def,后面跟着小写字母的任何组合。

票数 1
EN

Stack Overflow用户

发布于 2015-06-19 17:16:22

感谢@broma0 0的帮助,我的.ctags现在有以下功能:

代码语言:javascript
复制
--langdef=Clojure                                                               
--langmap=Clojure:.clj                                                          
--langmap=Clojure:+.cljx                                                        
--langmap=Clojure:+.cljs                                                        
--regex-clojure=/\([ \t]*create-ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/
--regex-clojure=/\([ \t]*def[a-z]*[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/s,symbol/   
--regex-clojure=/\([ \t]*intern[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/v,intern/      
--regex-clojure=/\([ \t]*ns[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/n,namespace/       

任何东西都被归类为‘符号’

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30942447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档