;; -*- emacs-lisp -*- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; $Id: xref.el,v 1.13 2006/03/06 12:07:06 ole Exp $ ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Emacs Buffer related initialization ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar xref-current-project nil "current xref project, can be nil for no project") (defvar xref-key-binding 'global "how xref should bind its keys, can be 'global, 'local or 'none") (add-to-list 'load-path (expand-file-name "xref/emacs/" emacs-packages-dir)) (add-to-list 'exec-path (expand-file-name "xref/" emacs-packages-dir)) (load "xrefactory") (global-set-key [(meta f5)] 'xref-pop-only) (global-set-key [(meta f6)] 'xref-push-name) (global-set-key [(f7)] 'xref-show-browser) (global-set-key [(control f7)] 'xref-push-this-file-unused-symbols) (global-set-key [(meta f7)] 'xref-push-global-unused-symbols) (global-set-key [(f8)] 'xref-search-in-tag-file) (global-set-key [(control f8)] 'xref-search-definition-in-tag-file) (global-set-key [(meta f8)] 'xref-class-tree-show) (defun xref-indent-complete () "A special indent/complete function" (interactive) (let ((oldpoint (point)) (java-or-c-mode-p (or (equal major-mode 'jde-mode) (equal major-mode 'c-mode) (equal major-mode 'java-mode) (equal major-mode 'c++-mode)))) (if (mark-or-region-active) (indent-region (mark) oldpoint nil) (if (save-excursion (skip-chars-backward " \t") (not (bolp))) (if java-or-c-mode-p (xref-completion) (hippie-expand 1)) (indent-for-tab-command) (if (and java-or-c-mode-p (= oldpoint (point)) (looking-at "$")) (xref-completion)))))) (define-key jde-mode-map [tab] 'xref-indent-complete)