From ea1e815c3dc1781aa5cb6d401e233c73fa8a108b Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Mon, 26 Jun 2023 15:17:20 +1000 Subject: Adapted more configs from other emacs configs Including wasamasa and jwiegley --- emacs/.emacs.d/lisp/my/my-prog.el | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) (limited to 'emacs/.emacs.d/lisp/my/my-prog.el') diff --git a/emacs/.emacs.d/lisp/my/my-prog.el b/emacs/.emacs.d/lisp/my/my-prog.el index 4794ff2..ca54ad9 100644 --- a/emacs/.emacs.d/lisp/my/my-prog.el +++ b/emacs/.emacs.d/lisp/my/my-prog.el @@ -48,12 +48,30 @@ (comint-previous-prompt 1) (recenter 0 t)) -;; FIXME: not working properly -(defun my-restart-shell () +(defun my-comint-restart () (interactive) - (ignore-error (comint-send-eof)) - (shell (current-buffer)) - (message "Shell restarted!")) + (ignore-errors (comint-send-eof)) + (sleep-for .1) + (my-comint-revive)) + +(defvar my-comint-revive-commands + '((shell-mode . my-shell-revive) + (inferior-emacs-lisp-mode . ielm)) + "Alist of commands for each comint derived mode to revive a \"no + process\" buffer ") + +(defun my-shell-revive () + (interactive) + (shell (current-buffer))) + +(defun my-comint-revive () + "Revive a comint process after death" + (interactive) + (if-let ((revive-command (alist-get major-mode + my-comint-revive-commands))) + (funcall revive-command) + (error "I don't know how to restart in %S" major-mode)) + ) (defun my-shell-disable-company-if-remote () (when (and (fboundp 'company-mode) @@ -444,5 +462,16 @@ left and the source buffer on the right. (eval-region (region-beginning) (region-end) t) (eval-defun arg))) +(defun my-insert-current-prefix () + "Insert file basename followed by a dash" + (interactive) + (insert (file-name-base (buffer-file-name)) "-")) + +(defun my-prog-modes-setup () + (setq-local comment-auto-fill-only-comments t) + (auto-fill-mode) + (display-line-numbers-mode) + (setq tab-width 2)) + (provide 'my-prog) ;;; my-prog.el ends here -- cgit v1.2.3