| @@ -1,6 +1,6 @@ | |||
| ;;; emacs.el --- 10sr emacs initialization | |||
| ;; Time-stamp: <2018-10-12 21:29:13 JST 10sr> | |||
| ;; Time-stamp: <2018-10-15 13:47:12 JST 10sr> | |||
| ;;; Code: | |||
| @@ -1673,8 +1673,8 @@ and search from projectile root (if projectile is available)." | |||
| (safe-require-or-eval 'projectile) | |||
| (projectile-project-p)) | |||
| (projectile-with-default-dir (projectile-project-root) | |||
| (compilation-start command-args | |||
| 'grep-mode)) | |||
| (compilation-start command-args | |||
| 'grep-mode)) | |||
| (compilation-start command-args | |||
| 'grep-mode))) | |||
| @@ -1692,8 +1692,8 @@ and search from projectile root (if projectile is available)." | |||
| (if (safe-require-or-eval 'projectile) | |||
| (projectile-with-default-dir (or (projectile-project-root) | |||
| default-directory) | |||
| (compilation-start command-args | |||
| 'grep-mode)) | |||
| (compilation-start command-args | |||
| 'grep-mode)) | |||
| (compilation-start command-args | |||
| 'grep-mode)))) | |||
| @@ -2262,18 +2262,45 @@ use for the buffer. It defaults to \"*recetf-show*\"." | |||
| "Object id of current buffer.") | |||
| (make-variable-buffer-local 'git-walktree-object-id) | |||
| (defvar git-walktree-repository-root nil | |||
| "Repository root path of current buffer.") | |||
| (make-variable-buffer-local 'git-walktree-repository-root) | |||
| (defun git-walktree--create-buffer (commitish name) | |||
| ;; TODO: check repository | |||
| "Create and return buffer for NAME." | |||
| (when (and commitish | |||
| (string-match-p "\\`[0-9a-f]+\\'" | |||
| commitish) | |||
| (> (length commitish) 32)) | |||
| (setq commitish | |||
| (git-walktree--git-plumbing "rev-parse" | |||
| "--short" | |||
| commitish))) | |||
| (get-buffer-create (format "%s:%s" (or commitish "") name))) | |||
| (let* ((root (git-walktree--git-plumbing "rev-parse" | |||
| "--show-toplevel")) | |||
| (commitish-display (if (and commitish | |||
| (string-match-p "\\`[0-9a-f]+\\'" | |||
| commitish) | |||
| (>= (length commitish) 32)) | |||
| (git-walktree--git-plumbing "rev-parse" | |||
| "--short" | |||
| commitish) | |||
| commitish)) | |||
| (name (format "%s:%s" | |||
| (or commitish "") | |||
| name))) | |||
| (with-current-buffer (get-buffer-create name) | |||
| (if git-walktree-repository-root | |||
| (if (string= root | |||
| git-walktree-repository-root) | |||
| (current-buffer) | |||
| ;; If the buffer is for another repository, create new buffer | |||
| (with-current-buffer (generate-new-buffer name) | |||
| (setq git-walktree-repository-root root) | |||
| (current-buffer))) | |||
| ;; New buffer | |||
| (setq git-walktree-repository-root root) | |||
| (current-buffer))))) | |||
| (defun git-walktree--replace-into (target) | |||
| "Replace TARGET buffer contents with that of current buffer." | |||
| (let ((buf (current-buffer))) | |||
| (with-current-buffer target | |||
| (replace-buffer-contents buf)))) | |||
| (require 'ansi-color) | |||
| (defun git-walktree--open-treeish (commitish path treeish) | |||
| @@ -2445,6 +2472,9 @@ checking it." | |||
| "Git executable." | |||
| :type 'string | |||
| :group 'git-walktree) | |||
| (defcustom git-walktree-try-cd t | |||
| "Try to cd if directory exists in current working directory if non-nil. | |||
| Otherwise buffer's `default-directory' is always repository root.") | |||
| (defun git-walktree--git-plumbing (&rest args) | |||
| "Run git plubming command with ARGS. | |||