:type 'boolean
:group 'ggtags)
+(defcustom ggtags-global-treat-text nil
+ "Non-nil if Global should include matches from text files."
+ :safe 'booleanp
+ :type 'boolean
+ :group 'ggtags)
+
(defcustom ggtags-mode-prefix-key "\C-c"
"Key binding used for `ggtags-mode-prefix-map'.
Users should change the value using `customize-variable' to
(list "GTAGSLABEL=ctags")))))
,@body))
-(defmacro ggtags-with-ctags-maybe (&rest body) ; XXX: remove
- `(let ((process-environment
- (if (and (ggtags-find-project)
- (ggtags-project-ctags-p (ggtags-find-project)))
- (cons "GTAGSLABEL=ctags" process-environment)
- process-environment)))
- ,@body))
-
(defun ggtags-list-of-string-p (xs)
"Return non-nil if XS is a list of strings."
(if (null xs)
(defun ggtags-make-project (root)
(check-type root string)
- (let* ((root (file-truename (file-name-as-directory root)))
- (has-rtags (> (length
- (split-string (let ((default-directory root))
- (shell-command-to-string
- "gtags -d GRTAGS | head -10"))
- "\n" t))
- 4))
+ (let* ((default-directory (file-truename (file-name-as-directory root)))
+ (rtags-size (nth 7 (file-attributes "GRTAGS")))
+ (has-rtags (when (and rtags-size (< rtags-size (* 32 1024 1024)))
+ (with-demoted-errors
+ (> (length
+ (split-string
+ (ggtags-process-string "gtags" "-d" "GRTAGS")
+ "\n" t))
+ 4))))
(oversize-p (pcase ggtags-oversize-limit
(`nil nil)
(`t t)
- (t (> (or (nth 7 (file-attributes
- (expand-file-name "GTAGS" root)))
- 0)
+ (t (> (or (nth 7 (file-attributes "GTAGS")) 0)
ggtags-oversize-limit)))))
- (puthash root (ggtags-project--make
- :root root :has-rtags has-rtags :oversize-p oversize-p)
+ (puthash default-directory (ggtags-project--make
+ :root default-directory :has-rtags has-rtags
+ :oversize-p oversize-p)
ggtags-projects)))
(defvar-local ggtags-project nil)
(let* ((default-directory (ggtags-current-project-root))
;; Not using `ggtags-with-process-environment' to preserve
;; environment variables that may be present in
- ;; ggtags-process-environment.
+ ;; `ggtags-process-environment'.
(process-environment
(append ggtags-process-environment
process-environment
(and ggtags-global-has-color "--color")
(and ggtags-global-has-path-style
"--path-style=shorter")
+ (and ggtags-global-treat-text "--other")
(pcase cmd
((pred stringp) cmd)
(`definition "-d")
With a prefix arg (non-nil DEFINITION) always find defintions."
(interactive (list (ggtags-read-tag) current-prefix-arg))
(if (or definition
+ (not buffer-file-name)
(and (ggtags-find-project)
- (not (ggtags-project-has-rtags (ggtags-find-project))))
- (not buffer-file-name))
+ (not (ggtags-project-has-rtags (ggtags-find-project)))))
(ggtags-find-tag 'definition name)
(ggtags-find-tag (format "--from-here=%d:%s"
(line-number-at-pos)