]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/ggtags/ggtags.el
* ggtags.el: Release 0.6.4 with various bug fixes
[gnu-emacs-elpa] / packages / ggtags / ggtags.el
index 4d8671b6bd763050bd4ac4814e0c2477641083d0..9676c1d48c473d75800aed6e346114d5437e69de 100644 (file)
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2013  Free Software Foundation, Inc.
 
 ;; Author: Leo Liu <sdl.web@gmail.com>
-;; Version: 0.6.3
+;; Version: 0.6.4
 ;; Keywords: tools, convenience
 ;; Created: 2013-01-29
 ;; URL: https://github.com/leoliu/ggtags
@@ -93,6 +93,11 @@ If nil, use Emacs default."
                  integer)
   :group 'ggtags)
 
+(defcustom ggtags-split-window-function split-window-preferred-function
+  "A function to control how ggtags pops up the auxiliary window."
+  :type 'function
+  :group 'ggtags)
+
 (defvar ggtags-cache nil)               ; (ROOT TABLE DIRTY TIMESTAMP)
 
 (defvar ggtags-current-tag-name nil)
@@ -235,8 +240,7 @@ When called with prefix, ask the name and kind of tag."
   (ggtags-check-root-directory)
   (ggtags-navigation-mode +1)
   (ring-insert find-tag-marker-ring (point-marker))
-  (let ((split-window-preferred-function
-         (lambda (w) (split-window (frame-root-window w))))
+  (let ((split-window-preferred-function ggtags-split-window-function)
         (default-directory (ggtags-root-directory)))
     (compilation-start
      (if (or verbose (not buffer-file-name))
@@ -248,7 +252,7 @@ When called with prefix, ask the name and kind of tag."
        (format "global %s --from-here=%d:%s \"%s\""
                ggtags-global-options
                (line-number-at-pos)
-               (expand-file-name buffer-file-name)
+               (expand-file-name (file-truename buffer-file-name))
                name))
      'ggtags-global-mode)))
 
@@ -256,8 +260,7 @@ When called with prefix, ask the name and kind of tag."
   (interactive)
   (ggtags-ensure-global-buffer
     (ggtags-navigation-mode +1)
-    (let ((split-window-preferred-function
-           (lambda (w) (split-window (frame-root-window w)))))
+    (let ((split-window-preferred-function ggtags-split-window-function))
       (compile-goto-error))))
 
 (defun ggtags-global-exit-message-function (_process-status exit-status msg)
@@ -364,7 +367,7 @@ When called with prefix, ask the name and kind of tag."
              (kill-compilation))
            (when (and (derived-mode-p 'ggtags-global-mode)
                       (get-buffer-window))
-             (delete-window (get-buffer-window)))
+             (quit-window nil (get-buffer-window)))
            (and time (run-with-idle-timer time nil 'kill-buffer buf))))))
 
 (defun ggtags-navigation-mode-done ()