about summary refs log tree commit diff
path: root/users/tazjin
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2020-08-23T23·42+0100
committertazjin <mail@tazj.in>2020-08-23T23·47+0000
commit35b214ae9f8f4eaf4e3f0fd22165184f05e219fe (patch)
tree839f165f0e4350f14c12b7d9385f14b64e889a59 /users/tazjin
parent937469509bfcef494ae1b1bc6ba23bfccd28d477 (diff)
feat(tazjin/emacs): Add magit-find-file-worktree function r/1708
This will look up a file in the current worktree of the git repository
enclosing `default-directory'.

In combination with project-find-file this lets me toggle between
switching to a file within a project, and within the whole depot.

Change-Id: Ie1011f10051fc2c4bd4279b0944a79c7edf92f3b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1838
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'users/tazjin')
-rw-r--r--users/tazjin/emacs/config/bindings.el6
-rw-r--r--users/tazjin/emacs/config/functions.el7
2 files changed, 10 insertions, 3 deletions
diff --git a/users/tazjin/emacs/config/bindings.el b/users/tazjin/emacs/config/bindings.el
index f66a6ab551..a2f7369348 100644
--- a/users/tazjin/emacs/config/bindings.el
+++ b/users/tazjin/emacs/config/bindings.el
@@ -32,12 +32,12 @@
 (global-set-key (kbd "C-x r q") 'save-buffers-kill-terminal)
 (global-set-key (kbd "C-x C-c") 'ignore)
 
-;; Open Fefes Blog
-(global-set-key (kbd "C-c C-f") 'fefes-blog)
-
 ;; Open a file in project:
 (global-set-key (kbd "C-c f") 'project-find-file)
 
+;; Open a file via magit:
+(global-set-key (kbd "C-c C-f") #'magit-find-file-worktree)
+
 ;; Insert TODO comments
 (global-set-key (kbd "C-c t") 'insert-todo-comment)
 
diff --git a/users/tazjin/emacs/config/functions.el b/users/tazjin/emacs/config/functions.el
index df5b1c1239..d4d0c0d603 100644
--- a/users/tazjin/emacs/config/functions.el
+++ b/users/tazjin/emacs/config/functions.el
@@ -289,4 +289,11 @@
 
 (add-to-list 'project-find-functions #'find-depot-project)
 
+(defun magit-find-file-worktree ()
+  (interactive)
+  "Find a file in the current (ma)git worktree."
+  (magit-find-file--internal "{worktree}"
+                             (magit-read-file-from-rev "HEAD" "Find file")
+                             #'pop-to-buffer-same-window))
+
 (provide 'functions)