about summary refs log tree commit diff stats
path: root/.emacs.d/lisp/init-project.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/lisp/init-project.el')
-rw-r--r--.emacs.d/lisp/init-project.el6
1 files changed, 6 insertions, 0 deletions
diff --git a/.emacs.d/lisp/init-project.el b/.emacs.d/lisp/init-project.el
index a8dd2eb..100f9bf 100644
--- a/.emacs.d/lisp/init-project.el
+++ b/.emacs.d/lisp/init-project.el
@@ -84,6 +84,12 @@
            (persp-buffers-in-mode (seq-filter mode-pred persp-buffers)))
       (when (not (seq-empty-p persp-buffers-in-mode))
         (switch-to-buffer (car persp-buffers-in-mode)))))
+  (defun persp-current-project-root ()
+    "Return the current project root, falling back to finding it using the perpsective"
+    (if-let (project (project-current))
+        (project-root project)
+      (when-let (persp (persp-name (persp-curr)))
+        (car (seq-filter (lambda (pr) (string-match-p persp pr)) (project-known-project-roots))))))
   (defun switch-project (proj)
     "Switch to project or already open project perspective."
     (interactive (list (project-prompt-project-dir)))