X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=setup%2Fmagit.el;h=62846ee5e8ae4d4ef6986e88e47163b7d42aa01f;hb=128ee7f22a27a875314fc50d7fcb503f7ba325d0;hp=db2f66e90b52729a9f2507dd384e273e97c6cb54;hpb=a377b8462f3a4476de74877ffdfb08103e24bb4d;p=emacs-init.git diff --git a/setup/magit.el b/setup/magit.el index db2f66e..62846ee 100644 --- a/setup/magit.el +++ b/setup/magit.el @@ -4,7 +4,7 @@ (or load-file-name (when (boundp 'bytecomp-filename) bytecomp-filename) buffer-file-name)))) - "magit")) + "magit/lisp")) (add-to-list 'load-path (concat (file-name-directory (directory-file-name @@ -12,7 +12,7 @@ (or load-file-name (when (boundp 'bytecomp-filename) bytecomp-filename) buffer-file-name)))) - "git-modes")) + "with-editor")) (add-to-list 'load-path (concat (file-name-directory (directory-file-name @@ -36,6 +36,9 @@ (require 'magit) +(setq magit-refs-local-branch-format "%C %-48n %U%m\n") +(setq magit-refs-remote-branch-format "%C %-48n %m\n") + (when (eq system-type 'windows-nt) (require 'advice) @@ -77,12 +80,12 @@ (kill-buffer " *my-shell-command-to-string*")))) (defun git-repo-files () - (let ((default-directory (magit-get-top-dir default-directory))) + (let ((default-directory (magit-toplevel default-directory))) (split-string (my-shell-command-to-string "git ls-files") "\n"))) (defun find-file-in-git-repo () (interactive) - (let ((repo (magit-get-top-dir default-directory)) + (let ((repo (magit-toplevel default-directory)) (files (git-repo-files))) (find-file (concat repo @@ -93,10 +96,10 @@ (defun grep-in-git-repo (regexp &optional words-only) (interactive "sGrep files in Git repo regexp: \nP") - (let ((default-directory (magit-get-top-dir default-directory))) + (let ((default-directory (magit-toplevel default-directory))) (if (not default-directory) (error "not a Git directory")) - (grep (format "git ls-files -z | xargs -r0 grep -nH -E%s -- %s | cat -" + (grep (format "git ls-files -z | xargs -r0 grep -d skip -nH -E%s -- %s" (if words-only " -w" "") (shell-quote-argument regexp))))) (setenv "GIT_PAGER" "cat") @@ -105,7 +108,7 @@ (defun find-file-maybe-git (&optional nogit) (interactive "P") - (if (and (not nogit) (magit-get-top-dir default-directory)) + (if (and (not nogit) (magit-toplevel default-directory)) (call-interactively 'find-file-in-git-repo) (call-interactively 'ido-find-file))) @@ -114,16 +117,28 @@ (defun git-files-find-symbol (symbol) (interactive (list (read-string "Symbol: " (current-word)))) - (let ((dir (magit-get-top-dir default-directory))) + (let ((dir (magit-toplevel default-directory))) + (if (not dir) (error "No git repository")) + (let ((default-directory dir)) + (grep (format "git ls-files -z | xargs -r0 grep -d skip -nwHF %s" symbol))))) + +(defun git-files-find-class-decl (symbol) + (interactive (list (read-string "Symbol: " (current-word)))) + (let ((dir (magit-toplevel default-directory))) (if (not dir) (error "No git repository")) (let ((default-directory dir)) - (grep (format "git ls-files -z | xargs -r0 grep -nwHF %s | cat -" symbol))))) + (grep (format (concat "git ls-files -z" + " | xargs -r0 grep -d skip -nwHF %s" + " | grep -Ew '(class|struct|typedef|using)'" + " | grep -vEw 'friend'") + symbol))))) (global-set-key "\C-cGF" 'git-files-find-symbol) +(global-set-key "\C-cGC" 'git-files-find-class-decl) (defun dired-git-files () (interactive) - (let ((default-directory (magit-get-top-dir default-directory))\ + (let ((default-directory (magit-toplevel default-directory))\ (ls-lisp-use-insert-directory-program t) files) (setq files (delete-if '(lambda (file) (string= file "")) @@ -134,8 +149,8 @@ (defun dired-grep-git-files (regexp &optional words-only) (interactive "sRegexp: \nP") - (let ((default-directory (magit-get-top-dir default-directory)) - (cmd (format "git ls-files -z | xargs -r0 grep -l -E%s -- %s | cat -" + (let ((default-directory (magit-toplevel default-directory)) + (cmd (format "git ls-files -z | xargs -r0 grep -d skip -l -E%s -- %s" (if words-only " -w" "") (shell-quote-argument regexp)))) (if (not default-directory) (error "not in Git repository")) @@ -155,4 +170,5 @@ (interactive "P") (quit-window kill-buffer)) -(setq magit-diff-options '("-w")) +; ignore whitespace +; (setq magit-diff-options '("-w"))