Download
(require 'gtags)
(require 'xgtags)
(defvar xgtags-select-window-configuration nil
"Window configuration that xgtags select.")
(defun generate-gtags-files ()
"Generate gtags reference file for global."
(interactive)
(cd
(read-from-minibuffer
"directory: "
default-directory))
(shell-command "gtags --gtagslabel gtags")
(xgtags-make-complete-list))
(defun xgtags-select-tag-return-window ()
"Return window configuration before run `xgtags-select-tag-other-window'."
(interactive)
(when xgtags-select-window-configuration
(set-window-configuration xgtags-select-window-configuration)
(setq xgtags-select-window-configuration nil)))
(defun xgtags-select-tag-other-window ()
"Select gtag tag other window."
(interactive)
(if (not xgtags-select-window-configuration)
(setq xgtags-select-window-configuration (current-window-configuration)))
(xgtags-select-tag-near-point)
(delete-other-windows)
(split-window-vertically 16)
(switch-to-buffer "*xgtags*"))
(defun xgtags-find-rtag-no-prompt ()
"Input tag name and move to the referenced point."
(interactive)
(xgtags--goto-tag (funcall 'xgtags--token-at-point) 'reference))
(defun xgtags-select-next-tag-line ()
"Select next tag line"
(interactive)
(let (remember-point)
(setq remember-point (point))
(if (search-forward-regexp "^.*\\[[0-9]+\\].*\n" nil t)
(progn
(forward-line -1)
(forward-char 1))
(goto-char remember-point))))
(defun xgtags-select-prev-tag-line ()
"Select previous tag line"
(interactive)
(let (remember-point)
(setq remember-point (point))
(if (search-backward-regexp "^.*\\[[0-9]+\\].*\n" nil t)
(forward-char 1)
(goto-char remember-point))))
(defun xgtags-select-next-tag-line-show ()
"Move next tag line and show at other window."
(interactive)
(xgtags-select-next-tag-line)
(xgtags-select-tag-other-window)
(forward-char 1)
)
(defun xgtags-select-prev-tag-line-show ()
"Move previous tag line and show at other window."
(interactive)
(xgtags-select-prev-tag-line)
(xgtags-select-tag-other-window)
(forward-char 1)
)
(defun xgtags-select-next-file ()
"Select next file"
(interactive)
(let (remember-point)
(setq remember-point (point))
(if (search-forward-regexp "^/.*\n" nil t)
(progn
(forward-line -1)
(forward-char 1))
(goto-char remember-point))))
(defun xgtags-select-prev-file ()
"Select previous file"
(interactive)
(let (remember-point)
(setq remember-point (point))
(if (search-backward-regexp "^/.*\n" nil t)
(forward-char 1)
(goto-char remember-point))))
(provide 'xgtags-extension)