diff --git a/Makefile.in b/Makefile.in index 4b6c48779eb..a2b1a86cef5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -332,7 +332,6 @@ include $(CFG_SRC_DIR)/mk/autodep.mk include $(CFG_SRC_DIR)/mk/tools.mk include $(CFG_SRC_DIR)/mk/docs.mk - ###################################################################### # Secondary makefiles, conditionalized for speed ###################################################################### @@ -378,4 +377,10 @@ endif ifneq ($(findstring install,$(MAKECMDGOALS)),) CFG_INFO := $(info cfg: including install rules) include $(CFG_SRC_DIR)/mk/install.mk -endif \ No newline at end of file +endif + +ifneq ($(strip $(findstring TAGS.emacs,$(MAKECMDGOALS)) \ + $(findstring TAGS.vi,$(MAKECMDGOALS))),) + CFG_INFO := $(info cfg: including ctags rules) + include $(CFG_SRC_DIR)/mk/ctags.mk +endif diff --git a/mk/ctags.mk b/mk/ctags.mk new file mode 100644 index 00000000000..8f4aa6bbd14 --- /dev/null +++ b/mk/ctags.mk @@ -0,0 +1,12 @@ +###################################################################### +# TAGS file creation. No dependency tracking, just do it on demand. +# Requires Exuberant Ctags: http://ctags.sourceforge.net/index.html +###################################################################### + +CTAGS_OPTS=--options=${CFG_SRC_DIR}/mk/ctags.rust -R ${CFG_SRC_DIR}/src + +TAGS.emacs: + ctags -e -f $@ ${CTAGS_OPTS} + +TAGS.vi: + ctags -f $@ ${CTAGS_OPTS} diff --git a/mk/ctags.rust b/mk/ctags.rust new file mode 100644 index 00000000000..3f9bbca469c --- /dev/null +++ b/mk/ctags.rust @@ -0,0 +1,7 @@ +--langdef=rust +--langmap=rust:.rs +--regex-rust=/[ \t]*fn[ \t]+([a-zA-Z0-9_]+)/\1/f,function/ +--regex-rust=/[ \t]*type[ \t]+([a-zA-Z0-9_]+)/\1/T,types/ +--regex-rust=/[ \t]*tag[ \t]+([a-zA-Z0-9_]+)/\1/T,types/ +--regex-rust=/[ \t]*resource[ \t]+([a-zA-Z0-9_]+)/\1/T,types/ +--regex-rust=/[ \t]*mod[ \t]+([a-zA-Z0-9_]+)/\1/m,modules/