|
15 | 15 |
|
16 | 16 | .PHONY: TAGS.emacs TAGS.vi
|
17 | 17 |
|
18 |
| -CTAGS_OPTS=--options=${CFG_SRC_DIR}/src/etc/ctags.rust -R ${CFG_SRC_DIR}/src |
| 18 | +# This is using a blacklist approach, probably more durable than a whitelist. |
| 19 | +# We exclude: external dependencies (llvm, libuv, gyp, rt/{msvc,sundown,vg}), |
| 20 | +# tests (compiletest, test) and a couple of other things (rt/arch, etc) |
| 21 | +CTAGS_LOCATIONS=$(patsubst ${CFG_SRC_DIR}src/llvm,,\ |
| 22 | + $(patsubst ${CFG_SRC_DIR}src/libuv,,\ |
| 23 | + $(patsubst ${CFG_SRC_DIR}src/compiletest,,\ |
| 24 | + $(patsubst ${CFG_SRC_DIR}src/test,,\ |
| 25 | + $(patsubst ${CFG_SRC_DIR}src/gyp,,\ |
| 26 | + $(patsubst ${CFG_SRC_DIR}src/etc,,\ |
| 27 | + $(patsubst ${CFG_SRC_DIR}src/rt,,\ |
| 28 | + $(patsubst ${CFG_SRC_DIR}src/rt/arch,,\ |
| 29 | + $(patsubst ${CFG_SRC_DIR}src/rt/msvc,,\ |
| 30 | + $(patsubst ${CFG_SRC_DIR}src/rt/sundown,,\ |
| 31 | + $(patsubst ${CFG_SRC_DIR}src/rt/vg,,\ |
| 32 | + $(wildcard ${CFG_SRC_DIR}src/*) $(wildcard ${CFG_SRC_DIR}src/rt/*)\ |
| 33 | + ))))))))))) |
| 34 | +CTAGS_OPTS=--options="${CFG_SRC_DIR}src/etc/ctags.rust" --languages=-javascript --recurse ${CTAGS_LOCATIONS} |
| 35 | +# We could use `--languages=Rust`, but there is value in producing tags for the |
| 36 | +# C++ parts of the code base too (at the time of writing, those are .h and .cpp |
| 37 | +# files in src/rt, src/rt/sync and src/rustllvm); we mainly just want to |
| 38 | +# exclude the external dependencies. |
19 | 39 |
|
20 | 40 | TAGS.emacs:
|
21 | 41 | ctags -e -f $@ ${CTAGS_OPTS}
|
|
0 commit comments