楼主:
Uruzu (...)
2011-07-16 22:48:45前言:
因为ctags没有支援我正在用的程式语言(systemverilog)
于是上google寻找解法,在当中找到了一个范例,可以让ctags支援SV
但是那个例子不够周全,只好自己动动手,加入适当的Regex,
好让它看起来更完整一点
问题一:
typedef class Myclass;
typedef enum { .... } enum_type;
上面两行是程式码中经常出现的code
我想单纯的用两个Regex把这两种分开来
^[ \t]*typedef[ \t]+.*[ \t]+([a-zA-Z_0-9]+)[ \t]*;
这会符合第一、二行code
^[ \t]*typedef[ \t]+enum[ \t]+.*[ \t]+([a-zA-Z_0-9]+)[ \t]*;
这会符合第二行code
要如何反向表列,才能使第一个Regex只会符合第一行而不包含第二行?
问题二:
有时候 code 会写成这样:
typedef enum { AAA,
BBB,
... } enum_type;
^[ \t]*typedef[ \t]+enum[ \t]+.*[ \t]+([a-zA-Z_0-9]+)[ \t]*;
红色的部份该如何处理分行的部份比较好?