# apt-get install rtags
コマンド名 | |
---|---|
オリジナル | debian パッケージ版 |
rc | rtags-rc |
rdm | rtags-rdm |
rp | rp |
# apt-get install clang libclang-dev cmake
$ git clone --recursive https://github.com/Andersbakken/rtags
$ cd rtags $ git submodule init $ git submodule update $ mkdir build $ cd build $ cmake .. $ make $ sudo make install
$ ls rtags/build/bin rc rdm rp
$ rdm --daemon
$ rc gcc $(CFLAGS) $(SRCS)
# apt-get install bear
$ bear -- make
$ rc -J .
build/src/rtags.el
;;; rtags.el の設定 (when (require 'rtags nil 'noerror) (defun rtags-local-conf () (when (rtags-is-indexed) (local-set-key (kbd "M-.") 'rtags-find-symbol-at-point) (local-set-key (kbd "M-;") 'rtags-find-symbol) (local-set-key (kbd "M-@") 'rtags-find-references) (local-set-key (kbd "M-,") 'rtags-location-stack-back) )) (add-hook 'c-mode-common-hook 'rtags-local-conf) (add-hook 'c++-mode-common-hook 'rtags-local-conf) (add-hook 'objc-mode-hook 'rtags-local-conf) (add-hook 'c-mode-hook 'rtags-start-process-unless-running) (add-hook 'c++-mode-hook 'rtags-start-process-unless-running) (add-hook 'objc-mode-hook 'rtags-start-process-unless-running) )
(setq rtags-rc-binary-name "rtags-rc") ; debian では rc -> rtags-rc に変更されている為 (setq rtags-rdm-binary-name "rtags-rdm") ; debian では rdm -> rtags-rdm に変更されている為
$ make rtagsとすれば、tag 生成までの一通りの処理が実行される:
# for rtags: RTAGS_CMD_RC := /usr/bin/rtags-rc RTAGS_CMD_RDM := /usr/bin/rtags-rdm BEAR_CMD := /usr/bin/bear COMPILE_DB_FILE := compile_commands.json IS_RTAGS_RDM_STARTED := $(shell ls -1 /run/user/$(shell id -u)/rdm.socket 2>/dev/null| wc -l) rtags : rtags-kill-daemon rtags-delete-compile-db clean rtags-start-daemon rtags-create-compile-db rtags-load-compile-db rtags-kill-daemon : ifeq ($(IS_RTAGS_RDM_STARTED),1) pgrep rtags-rdm | xargs kill -KILL; endif rtags-delete-compile-db : $(RMF) $(COMPILE_DB_FILE) rtags-start-daemon : $(RTAGS_CMD_RDM) --daemon; rtags-create-compile-db : $(BEAR_CMD) -- make; rtags-load-compile-db : $(RTAGS_CMD_RC) -J .;