From 4b9d4acb0ce871910223efa03e00833c9f068213 Mon Sep 17 00:00:00 2001 From: KemoNine Date: Sat, 8 Apr 2023 14:52:14 -0400 Subject: [PATCH] further implementation of work spaces ; make kill-other-buffers function take dired buffers into account for additional cleanup when switching workspaces --- common/generic_functions.el | 23 ++++++++++++++++++++--- common/workspaces.el | 29 +++++++++++++++++++++++------ 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/common/generic_functions.el b/common/generic_functions.el index 2cc9274..719e7bf 100644 --- a/common/generic_functions.el +++ b/common/generic_functions.el @@ -20,7 +20,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; open dired with default directory in left side window -(defun kmn/dired-default-directory-on-left () +(defun kmn/dired-directory-on-left (&optional dir_path) (defvar parameters '(window-parameters . ((no-other-window . t) (no-delete-other-windows . t)))) @@ -30,7 +30,7 @@ "Display `default-directory' in side window on left, hiding details." (interactive) - (let ((buffer (dired-noselect default-directory))) + (let ((buffer (dired-noselect (or dir_path (setq dir_path default-directory))))) (with-current-buffer buffer (dired-hide-details-mode t)) (display-buffer-in-side-window buffer `((side . left) (slot . -1) @@ -40,6 +40,16 @@ ) ) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; show scratch buffer +(defun kmn/show-buffer-scratch () + (interactive) + ; start with scratch buffer active + (switch-to-buffer (get-buffer "*scratch*")) + ; default scratch buffer has 2 comments @ top of file, jump past them + (with-no-warnings (goto-line 3)) +) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; quick reference notes as a pop up window (defun kmn/popwin-quick-ref () @@ -80,8 +90,15 @@ position between last non-whitespace and `end-of-line'." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; function to kill all non special, non active buffers (defun kmn/kill-other-buffers () - "Kill all buffers but the current one. Don't mess with special buffers." + "Kill all buffers but the current one. Don't mess with special buffers. Kill dired buffers" (interactive) + ; dired buffer cleanup + (mapc + (lambda (buffer) + (when (eq 'dired-mode (buffer-local-value 'major-mode buffer)) + (kill-buffer buffer))) + (buffer-list)) + ; non special buffer cleanup (dolist (buffer (buffer-list)) (unless (or (eql buffer (current-buffer)) (not (buffer-file-name buffer))) (kill-buffer buffer)))) diff --git a/common/workspaces.el b/common/workspaces.el index cb9eb9b..c88504d 100644 --- a/common/workspaces.el +++ b/common/workspaces.el @@ -44,13 +44,30 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; empty code workspace -(defun kmn/workspace-code-empty () +(defun kmn/workspace-code-empty (&optional dir_path) (interactive) (delete-other-windows) - ; start with scratch buffer active - (switch-to-buffer (get-buffer "*scratch*")) - ; default scratch buffer has 2 comments @ top of file, jump past them - (with-no-warnings (goto-line 3)) + (kmn/kill-other-buffers) + (kmn/show-buffer-scratch) ; show dired at `~` in left side window - (kmn/dired-default-directory-on-left) + (kmn/dired-directory-on-left dir_path) +) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; emacs config development +(defun kmn/workspace-code-emacs-config() + (interactive) + (kmn/workspace-code-empty "~/.emacs.d.profiles") + (find-file "~/.emacs.d.profiles/org/init.el") + (find-file "~/.emacs.d.profiles/code/init.el") + (find-file "~/.emacs.d.profiles/common/_global.el") + (find-file "~/.emacs.d.profiles/common/generic_functions.el") + (find-file "~/.emacs.d.profiles/common/workspaces.el") +) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; hugo development +(defun kmn/workspace-code-generic() + (interactive) + (kmn/workspace-code-empty "~/src") )