changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate emacs/default.el

changeset 629: ab02408636b7
parent: a304c9713a51
child: 8eef7df3242d
author: Richard Westhaver <ellis@rwest.io>
date: Tue, 27 Aug 2024 21:36:50 -0400
permissions: -rw-r--r--
description: elisp work, added slime-company (to be deprecated)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1
 ;;; default.el --- default config -*- lexical-binding: t -*-
27
1142c97f92ab emacs config
ellis <ellis@rwest.io>
parents: 26
diff changeset
2
 
1142c97f92ab emacs config
ellis <ellis@rwest.io>
parents: 26
diff changeset
3
 ;;; Code:
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
4
 ;;; Settings
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
5
 (put 'upcase-region 'disabled nil)
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
6
 (put 'list-threads 'disabled nil)
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
7
 (put 'list-timers 'disabled nil)
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
8
 (setq show-paren-context-when-offscreen 'overlay)
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
9
 (setopt
429
a698dd5de562 babel setup
Richard Westhaver <ellis@rwest.io>
parents: 428
diff changeset
10
  org-safe-remote-resources '("\\`https://cdn\\.compiler\\.company/org/clean\\.theme\\'")
a698dd5de562 babel setup
Richard Westhaver <ellis@rwest.io>
parents: 428
diff changeset
11
  ;; tabs = bad (unless in makefile..)
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
12
  indent-tabs-mode nil
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
13
  make-backup-files nil
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
14
  auto-save-list-file-prefix (expand-file-name "auto-save/." user-emacs-directory)
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
15
  tramp-auto-save-directory (expand-file-name "auto-save/tramp/" user-emacs-directory)
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
16
  dired-free-space nil
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
17
  mml-attach-file-at-the-end t
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
18
  dired-mouse-drag-files t
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
19
  confirm-kill-emacs nil
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
20
  confirm-kill-processes nil
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
21
  use-short-answers t
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
22
  display-time-format "%Y-%m-%d %H:%M"
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
23
  ring-bell-function 'ignore
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
24
  completion-ignore-case t
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
25
 ;; NOTE 2023-11-04: you need to add the following lines to ~/.gnupg/gpg-agent.conf:
33
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 32
diff changeset
26
  ;; allow-emacs-pinentry
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 32
diff changeset
27
  ;; allow-loopback-pinentry
41
2b878ae73a84 emacs, skel, krypt
ellis <ellis@rwest.io>
parents: 38
diff changeset
28
  epg-pinentry-mode 'loopback
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
29
  shr-use-colors nil
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
30
  shr-use-fonts nil
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
31
  shr-max-image-proportion 0.6
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
32
  shr-image-animate nil
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
33
  shr-discard-aria-hidden t
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
34
  bookmark-default-file (expand-file-name "bookmarks" user-emacs-directory)
406
71baf0d4768d skel work
Richard Westhaver <ellis@rwest.io>
parents: 395
diff changeset
35
  tempo-interactive t
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
36
  emms-directory (expand-file-name "emms" user-emacs-directory)
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
37
  gnus-cache-directory (expand-file-name "gnus" user-emacs-directory)
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
38
  url-cache-directory (expand-file-name "url" user-emacs-directory)
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
39
  tab-always-indent 'complete
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
40
  shr-cookie-policy nil
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
41
  ;; NOTE 2023-11-04: EXPERIMENTAL
148
0d9d5cd46af5 added net/stream.rs, change def-ts-lang to macrolet form
ellis <ellis@rwest.io>
parents: 126
diff changeset
42
  ediff-floating-control-frame t
0d9d5cd46af5 added net/stream.rs, change def-ts-lang to macrolet form
ellis <ellis@rwest.io>
parents: 126
diff changeset
43
  register-use-preview nil
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
44
  shr-use-xwidgets-for-media t
499
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 497
diff changeset
45
  which-key-mode t
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
46
  view-read-only t)
621
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
47
 
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
48
 ;;; Treesitter
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
49
 
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
50
 ;;(add-to-list 'treesit-extra-load-path "/usr/local/lib/")
499
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 497
diff changeset
51
 
621
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
52
 ;; (let ((grammar-dir "/usr/local/share/tree-sitter/"))
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
53
 ;;   (when (file-exists-p grammar-dir)
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
54
 ;;     (setq treesit-extra-load-path
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
55
 ;;           (append
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
56
 ;;            (flatten
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
57
 ;;             (mapcar
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
58
 ;;              (lambda (f)
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
59
 ;;                (unless (or (string= "." f) (string= ".." f))
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
60
 ;;                  (concat grammar-dir f)))
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
61
 ;;              (directory-files "/usr/local/share/tree-sitter")))
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
62
 ;;            treesit-extra-load-path))))
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
63
 
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
64
 ;;; Variables
406
71baf0d4768d skel work
Richard Westhaver <ellis@rwest.io>
parents: 395
diff changeset
65
 (defvar user-emacs-lib-directory (expand-file-name (join-paths user-emacs-directory "lib")))
33
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 32
diff changeset
66
 (defvar user-custom-file (expand-file-name (format "%s.el" user-login-name) user-emacs-directory))
32
62d07dc38929 user directories
ellis <ellis@rwest.io>
parents: 31
diff changeset
67
 (defvar user-home-directory (expand-file-name "~"))
62d07dc38929 user directories
ellis <ellis@rwest.io>
parents: 31
diff changeset
68
 (defvar user-lab-directory (expand-file-name "lab" user-home-directory))
422
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
69
 (defvar user-stash-directory (expand-file-name ".stash" user-home-directory))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
70
 (defvar user-store-directory (expand-file-name ".store" user-home-directory))
32
62d07dc38929 user directories
ellis <ellis@rwest.io>
parents: 31
diff changeset
71
 (defvar user-mail-directory (expand-file-name "mail" user-home-directory))
623
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
72
 (defvar user-org-stash-directory (expand-file-name "org" user-stash-directory))
41
2b878ae73a84 emacs, skel, krypt
ellis <ellis@rwest.io>
parents: 38
diff changeset
73
 (defvar default-theme 'leuven-dark)
587
Richard Westhaver <ellis@rwest.io>
parents: 586
diff changeset
74
 (defvar company-source-directory (join-paths user-home-directory "comp"))
604
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
75
 (defvar company-org-directory (join-paths company-source-directory "org"))
41
2b878ae73a84 emacs, skel, krypt
ellis <ellis@rwest.io>
parents: 38
diff changeset
76
 (defvar company-domain "compiler.company")
2b878ae73a84 emacs, skel, krypt
ellis <ellis@rwest.io>
parents: 38
diff changeset
77
 (defvar company-name "The Compiler Company, LLC")
2b878ae73a84 emacs, skel, krypt
ellis <ellis@rwest.io>
parents: 38
diff changeset
78
 (defvar company-vc-domain "vc.compiler.company")
2b878ae73a84 emacs, skel, krypt
ellis <ellis@rwest.io>
parents: 38
diff changeset
79
 (defvar company-home "the.compiler.company")
429
a698dd5de562 babel setup
Richard Westhaver <ellis@rwest.io>
parents: 428
diff changeset
80
 (defvar company-cdn-url "https://cdn.compiler.company")
41
2b878ae73a84 emacs, skel, krypt
ellis <ellis@rwest.io>
parents: 38
diff changeset
81
 
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
82
 ;;; Theme
623
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
83
 (defun load-default-theme (&optional theme)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
84
   (interactive)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
85
   (when theme (setq default-theme theme))
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
86
   (load-theme default-theme))
27
1142c97f92ab emacs config
ellis <ellis@rwest.io>
parents: 26
diff changeset
87
 
1142c97f92ab emacs config
ellis <ellis@rwest.io>
parents: 26
diff changeset
88
 ;;; Packages
1142c97f92ab emacs config
ellis <ellis@rwest.io>
parents: 26
diff changeset
89
 (with-eval-after-load 'package
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
90
   (setq package-archives
289
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 267
diff changeset
91
         '(("gnu" . "https://elpa.gnu.org/packages/")
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 267
diff changeset
92
           ("nongnu" . "https://elpa.nongnu.org/nongnu/")
596
46e9425cf3c2 howd that get there
Richard Westhaver <ellis@rwest.io>
parents: 588
diff changeset
93
           ("melpa" . "https://melpa.org/packages/")))
46e9425cf3c2 howd that get there
Richard Westhaver <ellis@rwest.io>
parents: 588
diff changeset
94
   (setopt
46e9425cf3c2 howd that get there
Richard Westhaver <ellis@rwest.io>
parents: 588
diff changeset
95
    use-package-always-ensure t
46e9425cf3c2 howd that get there
Richard Westhaver <ellis@rwest.io>
parents: 588
diff changeset
96
    use-package-expand-minimally t)
28
bc174808bc53 emacs and rust/lib/tenex
ellis <ellis@rwest.io>
parents: 27
diff changeset
97
   (add-packages
623
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
98
    eglot-x ;; LSP extensions
33
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 32
diff changeset
99
    org-web-tools ;; web parsing
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 32
diff changeset
100
    citeproc ;; citations
614
f03dbf6338ed tryin to fix broken publish pipeline
Richard Westhaver <ellis@rwest.io>
parents: 613
diff changeset
101
    htmlize ;; html export
33
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 32
diff changeset
102
    all-the-icons all-the-icons-dired all-the-icons-ibuffer ;; icons
499
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 497
diff changeset
103
    hide-mode-line) ;; ui
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
104
    ;; bbdb
28
bc174808bc53 emacs and rust/lib/tenex
ellis <ellis@rwest.io>
parents: 27
diff changeset
105
   (package-install-selected-packages t))
26
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 24
diff changeset
106
 
45
ad67a57b0134 rocksdb bindings and emacs config
ellis <ellis@rwest.io>
parents: 44
diff changeset
107
 ;;; Env
62
e310b68526b9 elisp and lisp
ellis <ellis@rwest.io>
parents: 60
diff changeset
108
 (require 'exec-path-from-shell)
314
5ff2542d5f38 expose compaction pri: #[12604]
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
109
 (exec-path-from-shell-copy-envs (list "SSH_AGENT_PID"
5ff2542d5f38 expose compaction pri: #[12604]
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
110
                                       "SSH_AUTH_SOCK"
5ff2542d5f38 expose compaction pri: #[12604]
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
111
                                       "PATH" 
5ff2542d5f38 expose compaction pri: #[12604]
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
112
                                       "CARGO_HOME"
499
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 497
diff changeset
113
                                       "CC"
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 497
diff changeset
114
                                       "LD"
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 497
diff changeset
115
                                       "LD_LIBRARY_PATH"
596
46e9425cf3c2 howd that get there
Richard Westhaver <ellis@rwest.io>
parents: 588
diff changeset
116
                                       "RUSTUP_HOME"
46e9425cf3c2 howd that get there
Richard Westhaver <ellis@rwest.io>
parents: 588
diff changeset
117
                                       "QUICKLISP_HOME"
46e9425cf3c2 howd that get there
Richard Westhaver <ellis@rwest.io>
parents: 588
diff changeset
118
                                       "DEV" "DEV_ID" "DEV_HOME"
46e9425cf3c2 howd that get there
Richard Westhaver <ellis@rwest.io>
parents: 588
diff changeset
119
                                       "WORKER" "WORKER_ID" "WORKER_HOME"
314
5ff2542d5f38 expose compaction pri: #[12604]
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
120
                                       "SBCL_HOME"
5ff2542d5f38 expose compaction pri: #[12604]
Richard Westhaver <ellis@rwest.io>
parents: 308
diff changeset
121
                                       "LISP_HOME"))
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
122
 
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
123
 (add-to-list 'exec-path (expand-file-name "~/.cargo/bin/"))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
124
 (add-to-list 'exec-path (expand-file-name "~/.local/bin/"))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
125
 (add-to-list 'exec-path "/bin/")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
126
 (add-to-list 'exec-path "/usr/local/sbin/")
499
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 497
diff changeset
127
 (add-to-list 'exec-path "/usr/local/bin/")
0e043dcda8f4 skel var updates
Richard Westhaver <ellis@rwest.io>
parents: 497
diff changeset
128
 (add-to-list 'exec-path "/usr/local/share/lisp/bin/")
45
ad67a57b0134 rocksdb bindings and emacs config
ellis <ellis@rwest.io>
parents: 44
diff changeset
129
 
33
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 32
diff changeset
130
 ;;; Completions
621
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
131
 (use-package cape :ensure t)
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
132
 (use-package orderless
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
133
   :ensure t
620
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
134
   :init
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
135
   (setq completion-styles '(orderless partial-completion basic)
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
136
         completion-category-overrides '((file (styles basic partial-completion))
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
137
                                         (eglot (styles orderless))
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
138
                                         (eglot-capf (styles orderless)))))
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
139
 
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
140
 (use-package corfu
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
141
   :ensure t
623
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
142
   :config
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
143
   (global-corfu-mode)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
144
   (corfu-popupinfo-mode)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
145
   (corfu-echo-mode)
620
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
146
   (dolist (c (list (cons "SPC" " ")
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
147
                  (cons "." ".")
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
148
                  (cons "," ",")
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
149
                  (cons ":" ":")
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
150
                  (cons ")" ")")
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
151
                  (cons "}" "}")
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
152
                  (cons "]" "]")))
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
153
   (define-key corfu-map (kbd (car c)) `(lambda ()
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
154
                                          (interactive)
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
155
                                          (corfu-insert)
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
156
                                          (insert ,(cdr c)))))
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
157
   (add-to-list 'completion-at-point-functions #'cape-dabbrev t)
623
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
158
   (add-to-list 'completion-at-point-functions #'cape-abbrev t)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
159
   (add-to-list 'completion-at-point-functions #'cape-file)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
160
   (defun corfu-move-to-minibuffer ()
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
161
     (interactive)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
162
     (pcase completion-in-region--data
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
163
       (`(,beg ,end ,table ,pred ,extras)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
164
        (let ((completion-extra-properties extras)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
165
              completion-cycle-threshold completion-cycling)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
166
          (consult-completion-in-region beg end table pred)))))
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
167
   (keymap-set corfu-map "M-m" #'corfu-move-to-minibuffer)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
168
   (add-to-list 'corfu-continue-commands #'corfu-move-to-minibuffer)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
169
   (unless (package-installed-p 'corfu-terminal)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
170
     (package-vc-install '(corfu-terminal :url "https://codeberg.org/akib/emacs-corfu-terminal.git")))
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
171
   (unless (display-graphic-p)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
172
     (corfu-terminal-mode 1)))
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
173
 
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
174
 (use-package kind-icon
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
175
   :ensure t
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
176
   :after corfu
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
177
   ;:custom
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
178
   ; (kind-icon-blend-background t)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
179
   ; (kind-icon-default-face 'corfu-default) ; only needed with blend-background
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
180
   :config
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
181
   (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter))
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
182
 
620
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
183
 
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
184
 (use-package vertico
621
d7f04a773c60 capf fixes
Richard Westhaver <ellis@rwest.io>
parents: 620
diff changeset
185
   :ensure t
620
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
186
   :config (vertico-mode)
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
187
   (keymap-set vertico-map "M-q" #'vertico-quick-insert)
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
188
   (keymap-set vertico-map "C-q" #'vertico-quick-exit))
33
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 32
diff changeset
189
 
623
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
190
 (use-package marginalia :ensure t
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
191
   :config (marginalia-mode))
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
192
 (use-package embark
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
193
   :ensure t)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
194
 (use-package embark-consult :ensure t)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
195
 (use-package consult :ensure t)
a304c9713a51 init graph.el
Richard Westhaver <ellis@rwest.io>
parents: 622
diff changeset
196
 
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
197
 ;;; Desktop
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
198
 (setopt desktop-dirname (expand-file-name "sessions" user-emacs-directory))
33
e3b0ec661dfa added inbox.el, more emacs config
ellis <ellis@rwest.io>
parents: 32
diff changeset
199
 
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
200
 ;;; Multisession
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
201
 (setq multisession-storage 'sqlite)
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
202
 
148
0d9d5cd46af5 added net/stream.rs, change def-ts-lang to macrolet form
ellis <ellis@rwest.io>
parents: 126
diff changeset
203
 ;;; Kill Ring
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
204
 (kill-ring-deindent-mode)
148
0d9d5cd46af5 added net/stream.rs, change def-ts-lang to macrolet form
ellis <ellis@rwest.io>
parents: 126
diff changeset
205
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
206
 ;;; VC
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
207
 ;; use rhg, fallback to hg. see hgrc
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
208
 (if (file-exists-p "~/.local/bin/rhg")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
209
     (setq hg-binary "~/.local/bin/rhg"))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
210
 
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
211
 ;;; Dired
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
212
 ;;; Projects
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
213
 (setopt  project-list-file (expand-file-name "projects" user-emacs-directory)
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
214
          project-mode-line t
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
215
          project-file-history-behavior 'relativize)
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
216
 
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
217
 ;;; Tabs
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
218
 (add-hook 'tab-bar-mode-hook #'tab-bar-history-mode)
26
51a8370766f7 emacs config
ellis <ellis@rwest.io>
parents: 24
diff changeset
219
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
220
 ;;; Lisp
629
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
221
 (use-package company :ensure t)
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
222
 (use-package slime-repl-ansi-color :ensure t)
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
223
 (use-package slime-cape :after (company slime) :load-path user-emacs-lib-directory)
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
224
   
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
225
 (use-package slime
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
226
   :ensure t
629
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
227
   :after (slime-cape slime-repl-ansi-color)
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
228
   :init
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
229
   (setq slime-contribs '(slime-fancy
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
230
                          slime-quicklisp
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
231
                          slime-hyperdoc
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
232
                          ;; slime-listener-hooks
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
233
                          ;; slime-enclosing-context
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
234
                          ;; slime-media
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
235
                          ;; slime-mrepl
507
4dd7b6320efc zstd alien errors
Richard Westhaver <ellis@rwest.io>
parents: 499
diff changeset
236
                          slime-sbcl-exts
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
237
                          slime-cape ;; ext
629
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
238
                          slime-repl-ansi-color
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
239
                          ;; slime-cl-indent
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
240
                          ;; slime-snapshot
507
4dd7b6320efc zstd alien errors
Richard Westhaver <ellis@rwest.io>
parents: 499
diff changeset
241
                          slime-sprof
4dd7b6320efc zstd alien errors
Richard Westhaver <ellis@rwest.io>
parents: 499
diff changeset
242
                          slime-tramp
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
243
                          ;; slime-typeout-frame
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
244
                          slime-xref-browser
629
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
245
                          slime-repl-ansi-color
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
246
                          ;; slime-highlight-edits
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
247
                          slime-asdf))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
248
   (put 'make-instance 'common-lisp-indent-function 1)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
249
   (put 'reinitialize-instance 'common-lisp-indent-function 1)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
250
   (slime-setup)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
251
   (defvar slime-toggle nil)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
252
   (defun slime-toggle ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
253
     "toggle between lisp file and slime-repl"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
254
     (interactive)
620
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
255
     (cond
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
256
      ((eq major-mode 'slime-repl-mode)
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
257
       (setq slime-toggle (pop-to-buffer (or slime-toggle (read-buffer "lisp buffer: ")))))
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
258
      ((not (eq major-mode 'slime-repl-mode))
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
259
       (if (slime-connected-p)
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
260
           (progn
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
261
             (setq slime-toggle (current-buffer))
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
262
             (slime-switch-to-output-buffer))
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
263
         (setq slime-toggle (current-buffer))
620
671f87e36e07 capf work
Richard Westhaver <ellis@rwest.io>
parents: 619
diff changeset
264
         (slime)))))
53
daad2b8bb63f init nlp
ellis <ellis@rwest.io>
parents: 45
diff changeset
265
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
266
   ;; X11-only (mcclim requires clx)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
267
   (defun clouseau-inspect (string)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
268
     "Inspect a lisp value with Clouseau. make sure to load clouseau
53
daad2b8bb63f init nlp
ellis <ellis@rwest.io>
parents: 45
diff changeset
269
 with a custom core or in your init file before using this
daad2b8bb63f init nlp
ellis <ellis@rwest.io>
parents: 45
diff changeset
270
 function: '(ql:quickload :clouseau)'."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
271
     (interactive
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
272
      (list (slime-read-from-minibuffer
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
273
             "Inspect value (evaluated): "
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
274
             (slime-sexp-at-point))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
275
     (let ((inspector 'cl-user::*clouseau-inspector*))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
276
       (slime-eval-async
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
277
           `(cl:progn
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
278
             (cl:defvar ,inspector nil)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
279
             ;; (Re)start the inspector if necessary.
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
280
             (cl:unless (cl:and (clim:application-frame-p ,inspector)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
281
                                (clim-internals::frame-process ,inspector))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
282
                        (cl:setf ,inspector (cl:nth-value 1 (clouseau:inspect nil :new-process t))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
283
             ;; Tell the inspector to visualize the correct datum.
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
284
             (cl:setf (clouseau:root-object ,inspector :run-hook-p t)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
285
                      (cl:eval (cl:read-from-string ,string)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
286
             ;; Return nothing.
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
287
             (cl:values)))))
53
daad2b8bb63f init nlp
ellis <ellis@rwest.io>
parents: 45
diff changeset
288
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
289
   (define-common-lisp-style "core" "Core Common Lisp Indentation Style"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
290
                             (:inherit "sbcl")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
291
                             (:indentation
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
292
                              (defpkg (as defpackage))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
293
                              (define-package (as defpackage))))
586
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
294
 
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
295
   ;; lisp font-lock defaults: https://www.n16f.net/blog/custom-font-lock-configuration-in-emacs/
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
296
   ;; (defface cl-character-face
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
297
   ;;   '((default :inherit font-lock-constant-face))
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
298
   ;;   "The face used to highlight Common Lisp character literals.")
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
299
 
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
300
   ;; (defface cl-standard-function-face
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
301
   ;;   '((default :inherit font-lock-keyword-face))
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
302
   ;;   "The face used to highlight standard Common Lisp function symbols.")
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
303
 
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
304
   ;; (defface cl-standard-value-face
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
305
   ;;   '((default :inherit font-lock-variable-name-face))
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
306
   ;;   "The face used to highlight standard Common Lisp value symbols.")
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
307
 
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
308
   ;; (defvar cl-font-lock-keywords
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
309
   ;;   (let* ((character-re (concat "#\\\\" lisp-mode-symbol-regexp "\\_>"))
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
310
   ;;          (function-re (concat "(" (regexp-opt cl-function-names t) "\\_>"))
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
311
   ;;          (value-re (regexp-opt cl-value-names 'symbols)))
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
312
   ;;     `((,character-re . 'cl-character-face)
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
313
   ;;       (,function-re
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
314
   ;;        (1 'cl-standard-function-face))
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
315
   ;;       (,value-re . 'cl-standard-value-face))))
7ce855f76e1d net/fetch upgrades, fixes, net/err -> net/condition
Richard Westhaver <ellis@rwest.io>
parents: 585
diff changeset
316
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
317
   (setq common-lisp-style-default "core")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
318
   ;; (define-key slime-prefix-map (kbd "i") 'clouseau-inspect)
622
c0062541039f plz work
Richard Westhaver <ellis@rwest.io>
parents: 621
diff changeset
319
   (setq slime-threads-update-interval 1)
c0062541039f plz work
Richard Westhaver <ellis@rwest.io>
parents: 621
diff changeset
320
   (add-hook 'slime-mode-hook #'slime-cape-maybe-enable 100)
c0062541039f plz work
Richard Westhaver <ellis@rwest.io>
parents: 621
diff changeset
321
   (add-hook 'slime-repl-mode-hook #'slime-cape-maybe-enable 100))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
322
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
323
 (use-package lisp-mode
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
324
   :ensure nil
629
ab02408636b7 elisp work, added slime-company (to be deprecated)
Richard Westhaver <ellis@rwest.io>
parents: 623
diff changeset
325
   :after slime
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
326
   :custom
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
327
   inferior-lisp-program "sbcl --dynamic-space-size=8G"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
328
   scheme-program-name "gsi"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
329
   guile-program "guile"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
330
   cmulisp-program "lisp"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
331
   scsh-program "scsh")
289
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 267
diff changeset
332
 
187
a962648ad6d5 add dir-locals and eglot-x
Richard Westhaver <ellis@rwest.io>
parents: 182
diff changeset
333
 ;;; Eglot
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
334
 (with-eval-after-load 'eglot
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
335
   (unless (package-installed-p 'eglot-x)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
336
     (package-vc-install '(eglot-x :url "https://vc.compiler.company/packy/eglot-x.git")))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
337
   (require 'eglot-x)
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
338
   (with-eval-after-load 'eglot-x
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
339
     (add-to-list 'eglot-server-programs
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
340
                  '((rust-ts-mode rust-mode) .
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
341
                    ("rust-analyzer" :initializationOptions (:check (:command "clippy")))))
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
342
     (eglot-x-setup)))
187
a962648ad6d5 add dir-locals and eglot-x
Richard Westhaver <ellis@rwest.io>
parents: 182
diff changeset
343
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
344
 ;;; Rust
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
345
 (add-hook 'rust-mode-hook 'eglot-ensure)
187
a962648ad6d5 add dir-locals and eglot-x
Richard Westhaver <ellis@rwest.io>
parents: 182
diff changeset
346
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
347
 (setq rust-rustfmt-switches nil
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
348
       rust-indent-offset 2)
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
349
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
350
 ;;; Python
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
351
 (setq python-indent-offset 2)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
352
 (add-hook 'python-mode-hook 'eglot-ensure)
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
353
 
189
3d78bed56188 apply clippy fixes
Richard Westhaver <ellis@rwest.io>
parents: 188
diff changeset
354
 ;;; Javascript
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
355
 (setq js-indent-level 2)
189
3d78bed56188 apply clippy fixes
Richard Westhaver <ellis@rwest.io>
parents: 188
diff changeset
356
 
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
357
 ;;; Bash
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
358
 (setq sh-basic-offset 2)
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
359
 
267
f3d814fb136a db upgrades, alik, ignoring c files (for now)
Richard Westhaver <ellis@rwest.io>
parents: 231
diff changeset
360
 ;;; Graphviz
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
361
 (use-package graphviz-dot-mode
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
362
   :config
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
363
   (setq graphviz-dot-indent-width 2))
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
364
 ;;; Comments
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
365
 (defcustom prog-comment-keywords
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
366
   '("TODO" "REVIEW" "FIX" "HACK" "RESEARCH")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
367
   "List of strings with comment keywords."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
368
   :group 'default)
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
369
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
370
 (defcustom prog-comment-timestamp-format-concise "%F"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
371
   "Specifier for date in `prog-comment-timestamp-keyword'.
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
372
 Refer to the doc string of `format-time-string' for the available
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
373
 options."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
374
   :group 'default)
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
375
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
376
 (defcustom prog-comment-timestamp-format-verbose "%F %T %z"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
377
   "Like `prog-comment-timestamp-format-concise', but longer."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
378
   :group 'default)
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
379
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
380
 ;;;###autoload
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
381
 (defun prog-comment-dwim (arg)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
382
   "Flexible, do-what-I-mean commenting.
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
383
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
384
 If region is active and ARG is either a numeric argument greater
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
385
 than one or a universal prefix (\\[universal-argument]), then
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
386
 apply `comment-kill' on all comments in the region.
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
387
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
388
 If the region is active and no ARG is supplied, or is equal to a
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
389
 numeric prefix of 1, then toggle the comment status of the region.
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
390
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
391
 Else toggle the comment status of the line at point.  With a
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
392
 numeric prefix ARG, do so for ARGth lines (negative prefix
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
393
 operates on the lines before point)."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
394
   (interactive "p")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
395
   (cond
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
396
    ((and (> arg 1) (use-region-p))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
397
     (let* ((beg (region-beginning))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
398
            (end (region-end))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
399
            (num (count-lines beg end)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
400
       (save-excursion
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
401
         (goto-char beg)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
402
         (comment-kill num))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
403
    ((use-region-p)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
404
     (comment-or-uncomment-region (region-beginning) (region-end)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
405
    (t
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
406
     (save-excursion (comment-line (or arg 1))))))
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
407
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
408
 (defvar prog-comment--keyword-hist '()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
409
   "Input history of selected comment keywords.")
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
410
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
411
 (defun prog-comment--keyword-prompt (keywords)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
412
   "Prompt for candidate among KEYWORDS."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
413
   (let ((def (car prog-comment--keyword-hist)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
414
     (completing-read
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
415
      (format "Select keyword [%s]: " def)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
416
      keywords nil nil nil 'prog-comment--keyword-hist def)))
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
417
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
418
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
419
 ;;;###autoload
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
420
 (defun prog-comment-timestamp-keyword (keyword &optional verbose)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
421
   "Add timestamped comment with KEYWORD.
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
422
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
423
 When called interactively, the list of possible keywords is that
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
424
 of `prog-comment-keywords', though it is possible to
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
425
 input arbitrary text.
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
426
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
427
 If point is at the beginning of the line or if line is empty (no
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
428
 characters at all or just indentation), the comment is started
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
429
 there in accordance with `comment-style'.  Any existing text
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
430
 after the point will be pushed to a new line and will not be
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
431
 turned into a comment.
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
432
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
433
 If point is anywhere else on the line, the comment is indented
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
434
 with `comment-indent'.
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
435
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
436
 The comment is always formatted as 'DELIMITER KEYWORD DATE:',
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
437
 with the date format being controlled by the variable
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
438
 `prog-comment-timestamp-format-concise'.
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
439
 
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
440
 With optional VERBOSE argument (such as a prefix argument
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
441
 `\\[universal-argument]'), use an alternative date format, as
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
442
 specified by `prog-comment-timestamp-format-verbose'."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
443
   (interactive
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
444
    (list
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
445
     (prog-comment--keyword-prompt prog-comment-keywords)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
446
     current-prefix-arg))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
447
   (let* ((date (if verbose
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
448
                    comment-timestamp-format-verbose
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
449
                  prog-comment-timestamp-format-concise))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
450
          (string (format "%s %s: " keyword (format-time-string date)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
451
          (beg (point)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
452
     (cond
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
453
      ((or (eq beg (pos-bol))
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
454
           (default-line-regexp-p 'empty))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
455
       (let* ((maybe-newline (unless (default-line-regexp-p 'empty 1) "\n")))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
456
         ;; NOTE 2021-07-24: we use this `insert' instead of
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
457
         ;; `comment-region' because of a yet-to-be-determined bug that
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
458
         ;; traps `undo' to the two states between the insertion of the
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
459
         ;; string and its transformation into a comment.
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
460
         (insert
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
461
          (concat comment-start
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
462
                  ;; NOTE 2021-07-24: See function `comment-add' for
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
463
                  ;; why we need this.
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
464
                  (make-string
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
465
                   (comment-add nil)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
466
                   (string-to-char comment-start))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
467
                  comment-padding
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
468
                  string
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
469
                  comment-end))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
470
         (indent-region beg (point))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
471
         (when maybe-newline
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
472
           (save-excursion (insert maybe-newline)))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
473
      (t
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
474
       (comment-indent t)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
475
       (insert (concat " " string))))))
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
476
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
477
 (setq hexl-bits 8)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
478
 (setq tab-width 4)
31
f28229bc9b58 emacs defaults
ellis <ellis@rwest.io>
parents: 30
diff changeset
479
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
480
 ;;; Keyboard Macros
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
481
 (defun toggle-macro-recording ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
482
   (interactive)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
483
   (if defining-kbd-macro
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
484
       (end-kbd-macro)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
485
     (start-kbd-macro nil)))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
486
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
487
 (defun play-macro-if-not-playing ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
488
   (interactive)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
489
   (if defining-kbd-macro
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
490
       (end-kbd-macro)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
491
     (call-last-kbd-macro)))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
492
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
493
 ;;; Registers
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
494
 ;; - additional register vtypes: buffer
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
495
 (defun decrement-register (number register)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
496
   "Subtract NUMBER from the contents of register REGISTER.
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
497
 Interactively, NUMBER is the prefix arg."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
498
   (interactive "p\ncDecrement register: ")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
499
   (increment-register (- number) register))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
500
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
501
 (defun copy-register (a b)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
502
   "Copy register A to B."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
503
   (interactive
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
504
    (list (register-read-with-preview "From register: ")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
505
          (register-read-with-preview "To register: ")))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
506
   (set-register b (get-register a)))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
507
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
508
 (defun buffer-to-register (register &optional delete)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
509
   "Put current buffer in register - this would also work for
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
510
   just buffers, as switch-to-buffer can use both, but it
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
511
   facilitates for easier saving/restoring of registers."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
512
   (interactive "cPut current buffername in register: \nP.")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
513
   (set-register register (cons 'buffer (buffer-name (current-buffer)))))
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
514
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
515
 (defun file-to-register (register &optional delete)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
516
   "This is better than put-buffer-in-register for file-buffers, because a closed
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
517
    file can be opened again, but does not work for no-file-buffers."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
518
   (interactive "cPut the filename of current buffer in register: \nP")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
519
   (set-register register (cons 'file (buffer-file-name (current-buffer)))))
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
520
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
521
 (defun file-query-to-register (register &optional delete)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
522
   (interactive
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
523
    (list
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
524
     (register-read-with-preview "File query to register: ")))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
525
   (set-register register (list 'file-query (buffer-file-name (current-buffer)) (point))))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
526
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
527
 ;; additional register-val handlers
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
528
 ;; (cl-defmethod register-val-jump-to :around ((val cons) delete)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
529
 ;;   (cond
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
530
 ;;    (t (cl-call-next-method val delete))))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
531
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
532
 ;;; Outlines
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
533
 (defun outline-hook (&optional rx)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
534
   "Enable `outline-minor-mode' and set `outline-regexp'."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
535
   (when rx (setq-local outline-regexp rx))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
536
   (outline-minor-mode 1))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
537
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
538
 (setq outline-minor-mode-use-buttons nil)
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
539
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
540
 (defun add-outline-hook (mode &optional rx)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
541
   (let ((sym (symb mode "-hook")))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
542
     (add-hook sym (lambda () (outline-hook rx)))))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
543
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
544
 (defmacro outline-hooks (&rest pairs)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
545
   `(mapc (lambda (x) (add-outline-hook (car x) (cadr x))) ',pairs))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
546
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
547
 (outline-hooks (asm-mode ";;;+")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
548
                (nasm-mode ";;;+")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
549
                (rust-mode "\\(//!\\|////+\\)")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
550
                (sh-mode "###+")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
551
                (sh-script-mode "###+")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
552
                (makefile-mode "###+")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
553
                (conf-mode "###+")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
554
                (common-lisp-mode)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
555
                (emacs-lisp-mode)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
556
                (lisp-data-mode)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
557
                (org-mode)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
558
                (css-mode)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
559
                (html-mode)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
560
                (skel-mode))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
561
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
562
 ;;; Scratch
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
563
 (defcustom default-scratch-buffer-mode 'lisp-interaction-mode
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
564
   "Default major mode for new scratch buffers"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
565
   :group 'default)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
566
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
567
 ;; Adapted from the `scratch.el' package by Ian Eure.
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
568
 (defun default-scratch-list-modes ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
569
   "List known major modes."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
570
   (cl-loop for sym the symbols of obarray
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
571
            for name = (symbol-name sym)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
572
            when (and (functionp sym)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
573
                      (not (member sym minor-mode-list))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
574
                      (string-match "-mode$" name)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
575
                      (not (string-match "--" name)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
576
            collect name))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
577
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
578
 (defun default-scratch-buffer-setup (region &optional mode)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
579
   "Add contents to `scratch' buffer and name it accordingly.
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
580
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
581
 REGION is added to the contents to the new buffer.
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
582
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
583
 Use the current buffer's major mode by default.  With optional
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
584
 MODE use that major mode instead."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
585
   (let* ((major (or mode major-mode))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
586
          (string (format "Scratch buffer for: %s\n\n" major))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
587
          (text (concat string region))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
588
          (buf (format "*Scratch for %s*" major)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
589
     (with-current-buffer (get-buffer-create buf)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
590
       (funcall major)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
591
       (save-excursion
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
592
         (insert text)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
593
         (goto-char (point-min))
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
594
         (comment-region (pos-bol) (pos-eol)))
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
595
       (vertical-motion 2))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
596
     (pop-to-buffer buf)))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
597
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
598
 ;;;###autoload
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
599
 (defun default-scratch-buffer (&optional arg)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
600
   "Produce a bespoke scratch buffer matching current major mode.
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
601
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
602
 With optional ARG as a prefix argument (\\[universal-argument]),
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
603
 use `default-scratch-buffer-mode'.
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
604
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
605
 With ARG as a double prefix argument, prompt for a major mode
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
606
 with completion.
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
607
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
608
 If region is active, copy its contents to the new scratch
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
609
 buffer."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
610
   (interactive "P")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
611
   (let* ((default-mode default-scratch-buffer-mode)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
612
          (modes (default-scratch-list-modes))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
613
          (region (with-current-buffer (current-buffer)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
614
                    (if (region-active-p)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
615
                        (buffer-substring-no-properties
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
616
                         (region-beginning)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
617
                         (region-end))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
618
                      "")))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
619
          (m))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
620
     (pcase (prefix-numeric-value arg)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
621
       (16 (progn
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
622
             (setq m (intern (completing-read "Select major mode: " modes nil t)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
623
             (default-scratch-buffer-setup region m)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
624
       (4 (default-scratch-buffer-setup region default-mode))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
625
       (_ (default-scratch-buffer-setup region)))))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
626
 
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
627
 ;;;###autoload
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
628
 (defun scratch-new ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
629
   "create a new scratch buffer. (could be *scratch* - *scratchN*)"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
630
   (interactive)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
631
   (let ((n 0)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
632
         bufname)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
633
     (while (progn
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
634
              (setq bufname
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
635
                    (concat "*scratch"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
636
                            (if (= n 0) "" (int-to-string n))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
637
                            "*"))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
638
              (setq n (1+ n))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
639
              (get-buffer bufname)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
640
     (switch-to-buffer (get-buffer-create bufname))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
641
     (insert initial-scratch-message)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
642
     (lisp-interaction-mode)))
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
643
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
644
 ;;; Shell
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
645
 (defun set-no-process-query-on-exit ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
646
   (let ((proc (get-buffer-process (current-buffer))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
647
     (when (processp proc)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
648
       (set-process-query-on-exit-flag proc nil))))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
649
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
650
 (add-hook 'shell-mode-hook 'set-no-process-query-on-exit)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
651
 (add-hook 'term-exec-hook 'set-no-process-query-on-exit)
30
bb274c6c126a emacs defaults and keys
ellis <ellis@rwest.io>
parents: 29
diff changeset
652
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
653
 ;;; Eshell
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
654
 (defun eshell-new()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
655
   "Open a new instance of eshell."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
656
   (interactive)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
657
   (eshell 'Z))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
658
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
659
 (setq eshell-highlight-prompt t
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
660
       eshell-hist-ignoredups t
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
661
       eshell-save-history-on-exit t
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
662
       eshell-prefer-lisp-functions nil
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
663
       eshell-destroy-buffer-when-process-dies t)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
664
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
665
 (add-hook 'eshell-mode-hook
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
666
           (lambda ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
667
             (eshell/alias "d" "dired $1")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
668
             (eshell/alias "ff" "find-file $1")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
669
             (eshell/alias "hgfe" "hg-fast-export.sh")))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
670
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
671
 (defun eshell/clear ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
672
   "Clear the eshell buffer."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
673
   (let ((inhibit-read-only t))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
674
     (erase-buffer)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
675
     (eshell-send-input)))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
676
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
677
 (defun eshell-quit-or-delete-char (arg)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
678
   (interactive "p")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
679
   (if (and (eolp) (looking-back eshell-prompt-regexp))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
680
       (progn
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
681
         (eshell-life-is-too-much) ; Why not? (eshell/exit)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
682
         (ignore-errors
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
683
           (delete-window)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
684
     (delete-forward-char arg)))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
685
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
686
 (add-hook 'eshell-mode-hook
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
687
           (lambda ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
688
             (bind-keys :map eshell-mode-map
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
689
                        ("C-d" . eshell-quit-or-delete-char))))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
690
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
691
 (defun eshell-next-prompt (n)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
692
   "Move to end of Nth next prompt in the buffer. See `eshell-prompt-regexp'."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
693
   (interactive "p")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
694
   (re-search-forward eshell-prompt-regexp nil t n)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
695
   (when eshell-highlight-prompt
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
696
     (while (not (get-text-property (line-beginning-position) 'read-only) )
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
697
       (re-search-forward eshell-prompt-regexp nil t n)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
698
   (eshell-skip-prompt))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
699
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
700
 (defun eshell-previous-prompt (n)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
701
   "Move to end of Nth previous prompt in the buffer. See `eshell-prompt-regexp'."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
702
   (interactive "p")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
703
   (backward-char)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
704
   (eshell-next-prompt (- n)))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
705
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
706
 (defun eshell-insert-history ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
707
   "Displays the eshell history to select and insert back into your eshell."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
708
   (interactive)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
709
   (insert (ido-completing-read "Eshell history: "
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
710
                                (delete-dups
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
711
                                 (ring-elements eshell-history-ring)))))
295
10353e203e13 rurik patches
Richard Westhaver <ellis@rwest.io>
parents: 290
diff changeset
712
 
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
713
 ;;; Eww
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
714
 (setopt
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
715
  browse-url-browser-function 'eww
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
716
  eww-auto-rename-buffer 'title
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
717
  eww-search-prefix "https://google.com/search?q=")
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
718
 
496
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
719
 ;; ref: https://github.com/oantolin/emacs-config/blob/master/my-lisp/shr-heading.el
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
720
 (defun shr-heading-next (&optional arg)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
721
   "Move forward by ARG headings (any h1-h4).
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
722
 If ARG is negative move backwards, ARG defaults to 1."
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
723
   (interactive "p")
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
724
   (unless arg (setq arg 1))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
725
   (catch 'return
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
726
     (dotimes (_ (abs arg))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
727
       (when (> arg 0) (end-of-line))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
728
       (if-let ((match
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
729
                 (funcall (if (> arg 0)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
730
                              #'text-property-search-forward
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
731
                            #'text-property-search-backward)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
732
                          'face '(shr-h1 shr-h2 shr-h3 shr-h4)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
733
                          (lambda (tags face)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
734
                            (cl-loop for x in (if (consp face) face (list face))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
735
                                     thereis (memq x tags))))))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
736
           (goto-char
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
737
            (if (> arg 0) (prop-match-beginning match) (prop-match-end match)))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
738
         (throw 'return nil))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
739
       (when (< arg 0) (beginning-of-line)))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
740
     (beginning-of-line)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
741
     (point)))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
742
 
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
743
 (defun shr-heading-previous (&optional arg)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
744
   "Move backward by ARG headings (any h1-h4).
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
745
 If ARG is negative move forwards instead, ARG defaults to 1."
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
746
   (interactive "p")
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
747
   (shr-heading-next (- (or arg 1))))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
748
 
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
749
 (defun shr-heading--line-at-point ()
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
750
   "Return the current line."
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
751
   (buffer-substring (line-beginning-position) (line-end-position)))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
752
 
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
753
 (defun shr-heading-setup-imenu ()
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
754
   "Setup imenu for h1-h4 headings in eww buffer.
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
755
 Add this function to appropriate major mode hooks such as
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
756
 `eww-mode-hook' or `elfeed-show-mode-hook'."
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
757
   (setq-local
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
758
    imenu-prev-index-position-function #'shr-heading-previous
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
759
    imenu-extract-index-name-function  #'shr-heading--line-at-point))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
760
 
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
761
 (defvar shr-heading-map
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
762
   (let ((map (make-sparse-keymap)))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
763
     (define-key map "n" #'shr-heading-next)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
764
     (define-key map "\C-n" #'shr-heading-next)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
765
     (define-key map "p" #'shr-heading-previous)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
766
     (define-key map "\C-p" #'shr-heading-previous)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
767
     map))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
768
 
497
bcf772e86fbc add std/task, some fixes and added cli/tools/systemd
Richard Westhaver <ellis@rwest.io>
parents: 496
diff changeset
769
 (add-hook 'eww-mode-hook 'shr-heading-setup-imenu)
bcf772e86fbc add std/task, some fixes and added cli/tools/systemd
Richard Westhaver <ellis@rwest.io>
parents: 496
diff changeset
770
 (add-hook 'eww-mode-hook (lambda () (define-key eww-mode-map "i" shr-heading-map)))
bcf772e86fbc add std/task, some fixes and added cli/tools/systemd
Richard Westhaver <ellis@rwest.io>
parents: 496
diff changeset
771
 
34
882a5c1e7b9f emacs config
ellis <ellis@rwest.io>
parents: 33
diff changeset
772
 ;;; Tramp
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
773
 (setopt tramp-default-method "ssh"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
774
         tramp-default-user user-login-name
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
775
         tramp-default-host "localhost")
295
10353e203e13 rurik patches
Richard Westhaver <ellis@rwest.io>
parents: 290
diff changeset
776
 
496
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
777
 ;;; Imenu
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
778
 (use-package imenu-list :ensure t)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 470
diff changeset
779
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
780
 ;;; Org
606
6fc04c4d465c emacs and rocksdb upgrades
Richard Westhaver <ellis@rwest.io>
parents: 604
diff changeset
781
 (require 'org)
6fc04c4d465c emacs and rocksdb upgrades
Richard Westhaver <ellis@rwest.io>
parents: 604
diff changeset
782
 (require 'org-agenda)
6fc04c4d465c emacs and rocksdb upgrades
Richard Westhaver <ellis@rwest.io>
parents: 604
diff changeset
783
 (require 'org-id)
6fc04c4d465c emacs and rocksdb upgrades
Richard Westhaver <ellis@rwest.io>
parents: 604
diff changeset
784
 (require 'org-protocol)
604
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
785
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
786
 (setq org-html-htmlize-output-type 'css
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
787
       org-html-head-include-default-style nil
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
788
       ;; cc default
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
789
       org-ascii-text-width 80)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
790
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
791
 (org-crypt-use-before-save-magic)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
792
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
793
 (setq org-structure-template-alist
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
794
       '(("s" . "src")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
795
         ("e" . "src emacs-lisp")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
796
         ("x" . "src shell")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
797
         ("l" . "src lisp")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
798
         ("h" . "export html")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
799
         ("p" . "src python")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
800
         ("r" . "src rust")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
801
         ("E" . "example")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
802
         ("q" . "quote")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
803
         ("c" . "center")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
804
         ("C" . "comment")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
805
         ("v" . "verse")))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
806
 
613
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
807
 (defun org-schedule-effort ()
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
808
 (interactive)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
809
   (save-excursion
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
810
     (org-back-to-heading t)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
811
     (let* (
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
812
         (element (org-element-at-point))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
813
         (effort (org-element-property :EFFORT element))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
814
         (scheduled (org-element-property :scheduled element))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
815
         (ts-year-start (org-element-property :year-start scheduled))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
816
         (ts-month-start (org-element-property :month-start scheduled))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
817
         (ts-day-start (org-element-property :day-start scheduled))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
818
         (ts-hour-start (org-element-property :hour-start scheduled))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
819
         (ts-minute-start (org-element-property :minute-start scheduled)) )
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
820
       (org-schedule nil (concat
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
821
         (format "%s" ts-year-start)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
822
         "-"
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
823
         (if (< ts-month-start 10)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
824
           (concat "0" (format "%s" ts-month-start))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
825
           (format "%s" ts-month-start))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
826
         "-"
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
827
         (if (< ts-day-start 10)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
828
           (concat "0" (format "%s" ts-day-start))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
829
           (format "%s" ts-day-start))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
830
         " "
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
831
         (if (< ts-hour-start 10)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
832
           (concat "0" (format "%s" ts-hour-start))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
833
           (format "%s" ts-hour-start))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
834
         ":"
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
835
         (if (< ts-minute-start 10)
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
836
           (concat "0" (format "%s" ts-minute-start))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
837
           (format "%s" ts-minute-start))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
838
         "+"
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
839
         effort)) )))
9ffe93dbe9b9 el tweaks
Richard Westhaver <ellis@rwest.io>
parents: 606
diff changeset
840
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
841
 (setopt org-preview-latex-image-directory "~/.emacs.d/.cache/ltximg"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
842
         org-latex-image-default-width "8cm"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
843
         org-refile-use-cache t
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
844
         org-refile-allow-creating-parent-nodes 'confirm
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
845
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
846
         org-refile-targets '((nil :maxlevel . 3)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
847
                              (org-agenda-files :maxlevel . 3))
604
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
848
         ;; org-agenda-files (list "inbox.org")
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
849
         org-agenda-include-diary t
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
850
         org-agenda-include-inactive-timestamps t
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
851
         org-confirm-babel-evaluate nil
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
852
         org-src-fontify-natively t
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
853
         org-src-tabs-act-natively t
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
854
         org-footnote-section nil
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
855
         org-log-into-drawer t
604
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
856
         org-log-refile 'time
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
857
         org-log-redeadline 'time
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
858
         org-log-states-order-reversed nil
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
859
         org-clock-persist 'history)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
860
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
861
 (add-hook 'after-init-hook #'org-clock-persistence-insinuate)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
862
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
863
 ;; archive
422
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
864
 (defun extract-org-directory-titles-as-list (&optional dir)
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
865
   (interactive "D")
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
866
   (print
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
867
    (delete nil
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
868
            (let ((case-fold-search t))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
869
              (mapcar (lambda (f)
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
870
                        (when (string-match "org$" f)
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
871
                          (with-temp-buffer
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
872
                            (insert-file-contents-literally
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
873
                             (concat (file-name-as-directory dir) f))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
874
                            (while (and (not (looking-at-p "#\\+TITLE:"))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
875
                                        (not (eobp)))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
876
                              (forward-line))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
877
                            (when (not (eobp))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
878
                              (cons f (substring (thing-at-point 'line) 9 -1))))))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
879
                      (directory-files dir))))))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
880
 
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
881
 (defun insert-directory-org-file-titles (&optional dir)
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
882
   (interactive "D")
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
883
   (let ((files-titles (extract-org-directory-titles-as-list dir)))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
884
     (dolist (ft files-titles)
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
885
       (insert (concat "[[file:" (car ft)"][" (cdr ft) "]]\n")))))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
886
 
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
887
 (defun insert-directory-org-files (&optional dir)
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
888
   (interactive "D")
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
889
   (let ((files (directory-files dir)))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
890
     (dolist (f files)
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
891
       (insert (concat "[[file:" f "][" (file-name-base f) "]]\n")))))
3e0a434b0c56 init alik installer example, more emacs-lisp
Richard Westhaver <ellis@rwest.io>
parents: 421
diff changeset
892
 
447
1365263e8311 publish updates
Richard Westhaver <ellis@rwest.io>
parents: 429
diff changeset
893
 (defun include-directory-org-files (&optional dir)
1365263e8311 publish updates
Richard Westhaver <ellis@rwest.io>
parents: 429
diff changeset
894
   (interactive "D")
1365263e8311 publish updates
Richard Westhaver <ellis@rwest.io>
parents: 429
diff changeset
895
   (let ((files (directory-files dir)))
1365263e8311 publish updates
Richard Westhaver <ellis@rwest.io>
parents: 429
diff changeset
896
     (dolist (f files)
1365263e8311 publish updates
Richard Westhaver <ellis@rwest.io>
parents: 429
diff changeset
897
       (insert (concat "#+INCLUDE: " f "\n")))))
1365263e8311 publish updates
Richard Westhaver <ellis@rwest.io>
parents: 429
diff changeset
898
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
899
 (defun org-todo-at-date (date)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
900
   "create a todo entry for a given date."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
901
   (interactive (list (org-time-string-to-time (org-read-date))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
902
   (cl-flet ((org-current-effective-time (&rest r) date)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
903
             (org-today (&rest r) (time-to-days date)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
904
     (cond ((eq major-mode 'org-mode) (org-todo))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
905
           ((eq major-mode 'org-agenda-mode) (org-agenda-todo)))))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
906
 
429
a698dd5de562 babel setup
Richard Westhaver <ellis@rwest.io>
parents: 428
diff changeset
907
 (defun org-agenda-show-week-all (&optional arg ) (interactive "P") (org-agenda arg "n"))
a698dd5de562 babel setup
Richard Westhaver <ellis@rwest.io>
parents: 428
diff changeset
908
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
909
 (defun org-ask-location ()
606
6fc04c4d465c emacs and rocksdb upgrades
Richard Westhaver <ellis@rwest.io>
parents: 604
diff changeset
910
   "prompt for a location."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
911
   (let* ((org-refile-targets '((nil :maxlevel . 9)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
912
          (hd (condition-case nil
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
913
                  (car (org-refile-get-location))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
914
                (error (car org-refile-history)))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
915
     (goto-char (point-min))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
916
     (outline-next-heading)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
917
     (if (re-search-forward
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
918
          (format org-complex-heading-regexp-format (regexp-quote hd))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
919
          nil t)
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
920
         (goto-char (line-beginning-position))
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
921
       (goto-char (point-max))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
922
       (or (bolp) (insert "\n"))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
923
       (insert "* " hd "\n")))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
924
   (end-of-line))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
925
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
926
 (defun org-capture-fileref-snippet (f type headers func-name)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
927
   (let* ((code-snippet
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
928
           (buffer-substring-no-properties (mark) (- (point) 1)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
929
          (file-name   (buffer-file-name))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
930
          (file-base   (file-name-nondirectory file-name))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
931
          (line-number (line-number-at-pos (region-beginning)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
932
          (initial-txt (if (null func-name)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
933
                           (format "From [[file:%s::%s][%s]]:"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
934
                                   file-name line-number file-base)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
935
                         (format "From ~%s~ (in [[file:%s::%s][%s]]):"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
936
                                 func-name file-name line-number
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
937
                                 file-base))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
938
     (format "
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
939
     %s
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
940
     #+BEGIN_%s %s
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
941
  %s
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
942
     #+END_%s" initial-txt type headers code-snippet type)))
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
943
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
944
 (defun org-capture-clip-snippet (f)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
945
   "Given a file, F, this captures the currently selected text
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
946
      within an Org EXAMPLE block and a backlink to the file."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
947
   (with-current-buffer (find-buffer-visiting f)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
948
     (org-capture-fileref-snippet f "EXAMPLE" "" nil)))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
949
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
950
 (defun org-capture-code-snippet (f)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
951
   "Given a file, F, this captures the currently selected text
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
952
      within an Org SRC block with a language based on the current mode
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
953
      and a backlink to the function and the file."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
954
   (with-current-buffer (find-buffer-visiting f)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
955
     (let ((org-src-mode (replace-regexp-in-string "-mode" "" (format "%s" major-mode)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
956
           (func-name (which-function)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
957
       (org-capture-fileref-snippet f "SRC" org-src-mode func-name))))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
958
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
959
 (defun region-to-clocked-task (start end)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
960
   "Copies the selected text to the currently clocked in org-mode task."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
961
   (interactive "r")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
962
   (org-capture-string (buffer-substring-no-properties start end) "3"))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
963
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
964
 (setq org-global-properties
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
965
       '(quote (("EFFORT_ALL" . "0:15 0:30 0:45 1:00 2:00 3:00 4:00 5:00 6:00 0:00")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
966
                ("STYLE_ALL" . "habit"))))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
967
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
968
 (defun org-mode-ask-effort ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
969
   "Ask for an effort estimate when clocking in."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
970
   (unless (org-entry-get (point) "Effort")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
971
     (let ((effort
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
972
            (completing-read
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
973
             "Effort: "
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
974
             (org-entry-get-multivalued-property (point) "Effort"))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
975
       (unless (equal effort "")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
976
         (org-set-property "Effort" effort)))))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
977
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
978
 (add-hook 'org-clock-in-prepare-hook
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
979
           'org-mode-ask-effort)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
980
 
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
981
 ;;;###autoload
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
982
 (defun org-adjust-tags-column-reset-tags ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
983
   "In org-mode buffers it will reset tag position according to
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
984
 `org-tags-column'."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
985
   (when (and
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
986
          (not (string= (buffer-name) "*Remember*"))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
987
          (eql major-mode 'org-mode))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
988
     (let ((b-m-p (buffer-modified-p)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
989
       (condition-case nil
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
990
           (save-excursion
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
991
             (goto-char (point-min))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
992
             (command-execute 'outline-next-visible-heading)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
993
             ;; disable (message) that org-set-tags generates
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
994
             (cl-flet ((message (&rest ignored) nil))
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
995
                   (org-set-tags 1 t))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
996
             (set-buffer-modified-p b-m-p))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
997
         (error nil)))))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
998
 
580
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
999
 ;; TODO 2024-08-05: infer logbook column-titles/props
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1000
 (defun column-display-value-transformer (column-title value)
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1001
   "Modifies the value to display in column view."
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1002
   (let ((title (upcase column-title)))
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1003
     (when (and (member title '("UPDATED" "NOTE")))
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1004
       (org-back-to-heading)
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1005
       (re-search-forward
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1006
        "Note taken on \\[\\(.*\\)\\] \\\\\\\\\\\n +\\(.*\\) *$"
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1007
        (org-entry-end-position) t))
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1008
     (if (equal column-title "UPDATED")
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1009
         (match-string-no-properties 1)
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1010
       (match-string-no-properties 2))))
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1011
 
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1012
 (setq org-columns-modify-value-for-display-function
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1013
       #'column-display-value-transformer)
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 507
diff changeset
1014
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1015
 ;;;###autoload
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1016
 (defun org-align-all-tables ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1017
   "align all tables in current buffer"
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1018
   (interactive)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1019
   (org-table-map-tables 'org-table-align 'quietly))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1020
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1021
 (defun org-remove-redundant-tags ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1022
   "Remove redundant tags of headlines in current buffer.
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1023
 
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1024
 A tag is considered redundant if it is local to a headline and
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1025
 inherited by a parent headline."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1026
   (interactive)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1027
   (when (eq major-mode 'org-mode)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1028
     (save-excursion
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1029
       (org-map-entries
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1030
        (lambda ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1031
          (let ((alltags (split-string (or (org-entry-get (point) "ALLTAGS") "") ":"))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1032
                local inherited tag)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1033
            (dolist (tag alltags)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1034
              (if (get-text-property 0 'inherited tag)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1035
                  (push tag inherited) (push tag local)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1036
            (dolist (tag local)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1037
              (if (member tag inherited) (org-toggle-tag tag 'off)))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1038
        t nil))))
308
e912dc076208 refactor lisp apps
Richard Westhaver <ellis@rwest.io>
parents: 297
diff changeset
1039
 
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1040
 ;;;; Agenda
604
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
1041
 (cl-pushnew '("w" "Work in progress tasks" ((todo "WIP") (agenda))) org-agenda-custom-commands)
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
1042
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1043
 (defvar org-agenda-overriding-header)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1044
 (defvar org-agenda-sorting-strategy)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1045
 (defvar org-agenda-restrict)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1046
 (defvar org-agenda-restrict-begin)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1047
 (defvar org-agenda-restrict-end)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1048
 
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1049
 ;;;###autoload
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1050
 (defun org-agenda-reschedule-to-today ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1051
   (interactive)
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
1052
   (cl-flet ((org-read-date (&rest rest) (current-time)))
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1053
         (call-interactively 'org-agenda-schedule)))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1054
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1055
 ;; Patch org-mode to use vertical splitting
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1056
 (defadvice org-prepare-agenda (after org-fix-split)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1057
   (toggle-window-split))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1058
 (ad-activate 'org-prepare-agenda)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1059
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1060
 (add-hook 'org-agenda-mode-hook (lambda () (hl-line-mode 1)))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1061
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1062
 (defun org-agenda-log-mode-colorize-block ()
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1063
   "Set different line spacing based on clock time duration."
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1064
   (save-excursion
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1065
     (let* ((colors (cl-case (alist-get 'background-mode (frame-parameters))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1066
                      (light
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1067
                       (list "#F6B1C3" "#FFFF9D" "#BEEB9F" "#ADD5F7"))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1068
                      (dark
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1069
                       (list "#aa557f" "DarkGreen" "DarkSlateGray" "DarkSlateBlue"))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1070
            pos
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1071
            duration)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1072
       (nconc colors colors)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1073
       (goto-char (point-min))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1074
       (while (setq pos (next-single-property-change (point) 'duration))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1075
         (goto-char pos)
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
1076
         (when (and (not (equal pos (pos-bol)))
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1077
                    (setq duration (org-get-at-bol 'duration)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1078
           ;; larger duration bar height
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1079
           (let ((line-height (if (< duration 15) 1.0 (+ 0.5 (/ duration 30))))
451
8e94959e96bd build updates, incorporate cargo
Richard Westhaver <ellis@rwest.io>
parents: 447
diff changeset
1080
                 (ov (make-overlay (pos-bol) (1+ (pos-eol)))))
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1081
             (overlay-put ov 'face `(:background ,(car colors) :foreground "black"))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1082
             (setq colors (cdr colors))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1083
             (overlay-put ov 'line-height line-height)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1084
             (overlay-put ov 'line-spacing (1- line-height))))))))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1085
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1086
 (add-hook 'org-agenda-finalize-hook #'org-agenda-log-mode-colorize-block)
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1087
 
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1088
 ;;;###autoload
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1089
 (defun org-agenda-current-subtree-or-region (only-todos)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1090
   "Display an agenda view for the current subtree or region.
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1091
  With prefix, display only TODO-keyword items."
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1092
   (interactive "P")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1093
   (let ((starting-point (point))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1094
         header)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1095
     (with-current-buffer (or (buffer-base-buffer (current-buffer))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1096
                              (current-buffer))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1097
       (if (use-region-p)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1098
           (progn
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1099
             (setq header "Region")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1100
             (put 'org-agenda-files 'org-restrict (list (buffer-file-name (current-buffer))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1101
             (setq org-agenda-restrict (current-buffer))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1102
             (move-marker org-agenda-restrict-begin (region-beginning))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1103
             (move-marker org-agenda-restrict-end
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1104
                          (save-excursion
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1105
                            ;; If point is at beginning of line, include
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1106
                            ;; heading on that line by moving forward 1.
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1107
                            (goto-char (1+ (region-end)))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1108
                            (org-end-of-subtree))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1109
         ;; No region; restrict to subtree.
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1110
         (save-excursion
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1111
           (save-restriction
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1112
             ;; In case the command was called from an indirect buffer, set point
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1113
             ;; in the base buffer to the same position while setting restriction.
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1114
             (widen)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1115
             (goto-char starting-point)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1116
             (setq header "Subtree")
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1117
             (org-agenda-set-restriction-lock))))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1118
       ;; NOTE: Unlike other agenda commands, binding `org-agenda-sorting-strategy'
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1119
       ;; around `org-search-view' seems to have no effect.
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1120
       (let ((org-agenda-sorting-strategy '(priority-down timestamp-up))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1121
             (org-agenda-overriding-header header))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1122
         (org-search-view (if only-todos t nil) "*"))
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1123
       (org-agenda-remove-restriction-lock t)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1124
       (message nil))))
21
3a0dac7e29ae Signed-off-by: ellis <ellis@rwest.io>
ellis <ellis@rwest.io>
parents:
diff changeset
1125
 
428
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1126
 (defun org-export-translate-to-lang (term-translations &optional lang)
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1127
   "Adds desired translations to `org-export-dictionary'.
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1128
    TERM-TRANSLATIONS is alist consisted of term you want to translate
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1129
    and its corresponding translation, first as :default then as :html and
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1130
    :utf-8. LANG is language you want to translate to."
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1131
   (dolist (term-translation term-translations)
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1132
     (let* ((term (car term-translation))
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1133
            (translation-default (nth 1 term-translation))
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1134
            (translation-html (nth 2 term-translation))
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1135
            (translation-utf-8 (nth 3 term-translation))
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1136
            (term-list (assoc term org-export-dictionary))
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1137
            (term-langs (cdr term-list)))
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1138
       (setcdr term-list (append term-langs
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1139
                                 (list
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1140
                                  (list lang
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1141
                                        :default translation-default
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1142
                                        :html translation-html
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1143
                                        :utf-8 translation-utf-8)))))))
af3d873a0312 clean.theme upgrades
Richard Westhaver <ellis@rwest.io>
parents: 422
diff changeset
1144
 
604
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
1145
 ;;; Dictionary
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
1146
 (setq dictionary-server "compiler.company"
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
1147
       switch-to-buffer-obey-display-actions t)
587
Richard Westhaver <ellis@rwest.io>
parents: 586
diff changeset
1148
 
604
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
1149
 ;;; Ispell
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
1150
 ;; requires aspell and a hunspell dictionary (hunspell-en_us)
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
1151
 (setq-default ispell-program-name "aspell")
74a55d5decce emacs org libraries and upgrades
Richard Westhaver <ellis@rwest.io>
parents: 596
diff changeset
1152
 (add-hook 'mail-send-hook  #'ispell-message)
587
Richard Westhaver <ellis@rwest.io>
parents: 586
diff changeset
1153
 
421
05e9cbc641dd break out templates from sk.el to skt.el
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
1154
 ;;; Skel
05e9cbc641dd break out templates from sk.el to skt.el
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
1155
 (add-to-load-path user-emacs-lib-directory)
05e9cbc641dd break out templates from sk.el to skt.el
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
1156
 (require 'sk)
05e9cbc641dd break out templates from sk.el to skt.el
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
1157
 (require 'skt)
05e9cbc641dd break out templates from sk.el to skt.el
Richard Westhaver <ellis@rwest.io>
parents: 406
diff changeset
1158
 
330
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1159
 (provide 'default)
7c3bbb64cc73 print methods for skel objects, tweaking *no-exit* behavior
Richard Westhaver <ellis@rwest.io>
parents: 314
diff changeset
1160
 ;; default.el ends here