changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate emacs/default.el

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