摘要:
ctags目前还不支持nesC语言,但已有牛人定义了新的配置文件,使得ctags部分支持nesC。本文转述其操作过程。
ctags目前还不支持nesC语言,阅读TinyOS源码很不方便。今天搜了下,已有牛人定义了新的配置文件,使得ctags部分支持nesC,但并不是很完善。具体操作如下[1]:
(1) 新建.ctags文件
在用户目录$HOME下,新建.ctags文件,内容如下:
- --langdef=nesc
-
--langmap=nesc:.nc.h
-
--regex-nesc=/^module[ \t]*([a-zA-Z0-9_]+)/\1/d,definition/
-
--regex-nesc=/^configuration[ \t]*([a-zA-Z0-9_]+)/\1/d,definition/
-
--regex-nesc=/^generic configuration[ \t]*([a-zA-Z0-9_]+)/\1/d,definition/
-
--regex-nesc=/^generic module[ \t]*([a-zA-Z0-9_]+)/\1/d,definition/
-
--regex-nesc=/^interface[ \t]*([a-zA-Z0-9_]+)/\1/d,definition/
-
--regex-nesc=/uses[ \t]+interface[ \t]+[a-zA-Z0-9_]+[a-zA-Z0-9 \t]+as[ \t]+([a-zA-Z0-9_]+)/\1/d,definition/
-
--regex-nesc=/.*\.([a-zA-Z0-9]+)[ \t]*->.*/\1/d,definition/
(2) 定义新的环境变量
因为后续执行ctags,需要带很长的参数,可以把ctags用到的参数定义成一个新的变量,并且添加到~/.bashrc文件的末尾,如下,重启shell。
- export TOSCTAGS="-R --languages=nesc . $TOSDIR"
(3) 生成tags文件
定义了TOSCTAGS变量后,生成tags文件就方便多了,如下:
- jelline@jelline:~/project/tinyos_stm32/apps/Blink$ ctags $TOSCTAGS
现在可以打开文件vim *.nc,用命令Ctrl+]实现跳转,Ctrl+t返回。
(4) 其他问题
经过上述操作后,我(Ubuntu 10.04TLS)可以实现跳转。但在另一台机子上(Ubuntu 10.10),当执行命令Ctrl+]跳转,提示如下错误:
- E433: 没有 tag 文件
-
E426: 找不到 tag: TimerMilliC
可以尝试这样解决,在shell下执行cscope -kbR,重新打开文件,再试。
参考资料:
阅读(3021) | 评论(0) | 转发(0) |