Skip to content

Commit 8848419

Browse files
authored
feat: improve persistence configuration (#381)
1 parent 968f9d7 commit 8848419

File tree

1 file changed

+21
-70
lines changed

1 file changed

+21
-70
lines changed

init.org

+21-70
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ The rough details:
1717
- key definitions :: =keymap=, =repeat=
1818
- code navigation :: [[info:emacs#Xref][xref]], [[https://github.com/jacktasia/dumb-jump][dumb-jump]], [[https://github.com/vspinu/imenu-anywhere][imenu-anywhere]]
1919
- syntax checker :: [[info:flymake#Top][flymake]]
20-
- persistent undo :: via ~desktop-save-mode~
20+
- persistent undo :: =desktop=
2121
- language server integration :: [[info:eglot#Top][eglot]]
2222
- structured editing :: [[https://github.com/AmaiKinono/puni][puni]]
2323

@@ -362,22 +362,6 @@ Fringe control:
362362
(set-fringe-style nil)))
363363
#+end_src
364364

365-
** History
366-
*** savehist
367-
Persist history.
368-
#+begin_src emacs-lisp :tangle yes
369-
(use-package savehist
370-
:hook
371-
(after-init-hook . savehist-mode)
372-
:init
373-
(setq savehist-additional-variables
374-
'(kill-ring
375-
search-ring
376-
regexp-search-ring))
377-
(setq savehist-autosave-interval 60)
378-
(setq savehist-save-minibuffer-history t))
379-
#+end_src
380-
381365
** Localization
382366
#+begin_src emacs-lisp :tangle yes
383367
(setq-default calendar-week-start-day 1)
@@ -541,6 +525,7 @@ Add window dividers, mainly to add a border below the mode line.
541525
#+begin_src emacs-lisp :tangle yes
542526
(use-package frame
543527
:hook
528+
(after-make-frame-functions . window-divider-mode)
544529
(server-after-make-frame-hook . window-divider-mode)
545530
:init
546531
(setq window-divider-default-places t)
@@ -2567,27 +2552,6 @@ Specific safe local code can be specified via:
25672552
- ~safe-local-eval-forms~
25682553
- ~safe-local-eval-function~
25692554

2570-
*** ielm
2571-
Persist ielm history.
2572-
#+begin_src emacs-lisp :tangle yes
2573-
(defvar +ielm-comint-input-ring nil)
2574-
(with-eval-after-load 'savehist
2575-
(cl-pushnew '+ielm-comint-input-ring savehist-additional-variables :test #'equal))
2576-
2577-
(defun +ielm-set-comint-input-ring ()
2578-
"Restore `ielm' history."
2579-
(setq-local comint-input-ring-size 200)
2580-
(add-hook 'kill-buffer-hook #'+ielm-save-comint-input-ring nil t)
2581-
(when +ielm-comint-input-ring
2582-
(setq comint-input-ring +ielm-comint-input-ring)))
2583-
2584-
(defun +ielm-save-comint-input-ring ()
2585-
"Save `ielm' history."
2586-
(setq +ielm-comint-input-ring comint-input-ring))
2587-
2588-
(add-hook 'ielm-mode-hook #'+ielm-set-comint-input-ring)
2589-
#+end_src
2590-
25912555
*** Packages
25922556
**** package-lint-flymake
25932557
#+begin_src emacs-lisp :tangle yes
@@ -3187,32 +3151,6 @@ Add faces to =outline-minor-mode= in order to make the headings stand out.
31873151
(:map interactive-haskell-mode-map ("M-." . nil)))
31883152
#+end_src
31893153

3190-
*** REPL
3191-
Persist REPL history.
3192-
#+begin_src emacs-lisp :tangle yes
3193-
(use-package haskell-mode
3194-
:functions
3195-
(haskell-interactive-save-history)
3196-
:defines
3197-
(haskell-interactive-mode-history)
3198-
:hook
3199-
(haskell-interactive-mode-hook . haskell-interactive-load-history)
3200-
:config
3201-
(defvar haskell-interactive-global-history nil)
3202-
3203-
(defun haskell-interactive-save-history ()
3204-
"Save `haskell-interactive-mode' history."
3205-
(setq haskell-interactive-global-history haskell-interactive-mode-history))
3206-
3207-
(defun haskell-interactive-load-history ()
3208-
"Restore `haskell-interactive-mode' history."
3209-
(add-hook 'kill-buffer-hook #'haskell-interactive-save-history nil t)
3210-
(when haskell-interactive-global-history
3211-
(setq haskell-interactive-mode-history haskell-interactive-global-history)))
3212-
3213-
(cl-pushnew 'haskell-interactive-global-history savehist-additional-variables :test #'equal))
3214-
#+end_src
3215-
32163154
** java
32173155
#+begin_src emacs-lisp :tangle yes
32183156
(use-package java-ts-mode
@@ -3769,16 +3707,29 @@ it really useful.
37693707
- Restore no buffers to begin with to avoid slow starts with huge sessions.
37703708
#+begin_src emacs-lisp :tangle yes
37713709
(use-package desktop
3772-
:demand t
3710+
:hook
3711+
(server-after-make-frame-hook . desktop-read)
37733712
:init
3713+
(setq desktop-save t)
37743714
(setq desktop-files-not-to-save "\\(\\`/[^/:]*:\\|(ftp)\\|\\.gz\\'\\)")
3715+
3716+
(setq desktop-load-locked-desktop t)
37753717
(setq desktop-restore-eager 0)
3776-
(setq desktop-save (daemonp))
3777-
(setq desktop-load-locked-desktop (daemonp))
3718+
(setq desktop-restore-frames nil)
3719+
3720+
(desktop-save-mode 1)
37783721
:config
3779-
(dolist (var '(buffer-undo-list))
3780-
(cl-pushnew var desktop-locals-to-save :test #'equal))
3781-
(desktop-save-mode 1))
3722+
(dolist (var '(compile-history
3723+
extended-command-history
3724+
grep-history
3725+
kill-ring
3726+
minibuffer-history
3727+
query-replace-history
3728+
read-expression-history
3729+
shell-command-history))
3730+
(cl-pushnew var desktop-globals-to-save :test #'equal))
3731+
(dolist (var '(buffer-undo-list comint-input-ring))
3732+
(cl-pushnew var desktop-locals-to-save :test #'equal)))
37823733
#+end_src
37833734

37843735
** Speed reading

0 commit comments

Comments
 (0)