feat(emacs): Fill some search-related stubs

This commit is contained in:
Madeleine Sydney
2025-02-20 15:45:20 -07:00
parent 98a71dc13b
commit e2193dbd53
13 changed files with 227 additions and 26 deletions

View File

@@ -63,15 +63,13 @@ If FORCE-P, delete without confirmation."
:desc "Move current file. See `doom/move-this-file'."
:interactive t)
(syd-define-stub
syd/find-file-under-emacs-user-directory
:desc "Find under `emacs-user-directory'. See `doom/find-file-in-private-config'."
:interactive t)
(syd-define-stub
syd/find-file-under-here
:desc "Find under CWD. See `+default/find-file-under-here'."
:interactive t)
(defun syd-find-file-in (root)
(interactive (list (read-directory-name
"Find file in: " default-directory nil t)))
;; HACK: To avoid reimplementation, we pretend `root' is a project and
;; delegate the work to project.el.
(syd-with-project-root root
(project-find-file)))
(syd-define-stub
syd/yank-buffer-path
@@ -81,11 +79,21 @@ If FORCE-P, delete without confirmation."
(defun syd/find-file-in-emacs-user-directory ()
(interactive)
(unless (file-directory-p user-emacs-directory)
(user-error "`emacs-user-directory' doesn't exist! (%s)"
(abbreviate-file-name emacs-user-directory)))
(user-error "`user-emacs-directory' doesn't exist! (%s)"
(abbreviate-file-name user-emacs-directory)))
(let ((default-directory user-emacs-directory))
(call-interactively #'find-file)))
(defun syd-switch-to-emacs-user-directory ()
"Switch project to `user-emacs-directory' via `project-switch-project'."
(interactive)
(require 'syd-project)
(if (file-directory-p user-emacs-directory)
(syd-with-project-root user-emacs-directory
(project-switch-project user-emacs-directory))
(user-error "`user-emacs-directory' (%s) does not exist or is not a directory!"
(abbreviate-file-name user-emacs-directory))))
(syd-define-stub
syd/open-this-file-as-root
:desc "Open current file as root. See `doom/sudo-this-file'."
@@ -137,6 +145,7 @@ If FORCE-P, delete without confirmation."
base-file
conflict-file)))
;;;###autoload
(defun syd-split-tramp-file-name (file-name)
"Split FILE-NAME into (TRAMP-PREFIX . LOCAL-NAME). Returns (nil . FILE-NAME)
if FILE-NAME has no TRAMP prefix."