aboutsummaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/lisp/my/my-prog.el
diff options
context:
space:
mode:
authorYuchen Pei <id@ypei.org>2023-06-26 15:17:20 +1000
committerYuchen Pei <id@ypei.org>2023-06-26 15:17:20 +1000
commitea1e815c3dc1781aa5cb6d401e233c73fa8a108b (patch)
tree189aa1cc44277f5c298eed5230c4ae2784fafeec /emacs/.emacs.d/lisp/my/my-prog.el
parentf77444c030038100908e298666f8f84f85e768cb (diff)
Adapted more configs from other emacs configs
Including wasamasa and jwiegley
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-prog.el')
-rw-r--r--emacs/.emacs.d/lisp/my/my-prog.el39
1 files changed, 34 insertions, 5 deletions
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