diff options
-rw-r--r-- | init.el | 22 | ||||
-rw-r--r-- | lisp/+org.el | 47 | ||||
-rw-r--r-- | lisp/acdw.el | 2 |
3 files changed, 58 insertions, 13 deletions
diff --git a/init.el b/init.el index e03e28f..0011380 100644 --- a/init.el +++ b/init.el | |||
@@ -490,14 +490,14 @@ | |||
490 | "|" "DONE(d!)") | 490 | "|" "DONE(d!)") |
491 | (sequence "|" "CANCELED(k!)") | 491 | (sequence "|" "CANCELED(k!)") |
492 | (sequence "MEETING(m)"))) | 492 | (sequence "MEETING(m)"))) |
493 | (setf (alist-get "\\.x?html?\\'" org-file-apps nil nil #'equal) | ||
494 | #'+org-open-html) | ||
495 | (:bind "RET" #'+org-return-dwim | 493 | (:bind "RET" #'+org-return-dwim |
496 | "<S-return>" #'+org-table-copy-down | 494 | "<S-return>" #'+org-table-copy-down |
497 | "C-c C-l" #'+org-insert-link-dwim | 495 | "C-c C-l" #'+org-insert-link-dwim |
498 | "C-c C-n" #'+org-next-heading-widen | 496 | "C-c C-n" #'+org-next-heading-widen |
499 | "C-c C-p" #'+org-previous-heading-widen | 497 | "C-c C-p" #'+org-previous-heading-widen |
500 | "C-c C-o" #'+org-open-at-point-dwim) | 498 | "C-c C-o" #'+org-open-at-point-dwim |
499 | "`" #'+org-insert-tilde | ||
500 | "~" #'+org-insert-backtick) | ||
501 | (:local-hook user-save-hook #'+org-before-save@prettify-buffer) | 501 | (:local-hook user-save-hook #'+org-before-save@prettify-buffer) |
502 | (advice-add #'org-delete-backward-char :override #'+org-delete-backward-char) | 502 | (advice-add #'org-delete-backward-char :override #'+org-delete-backward-char) |
503 | ;; (define-advice org-open-at-point (:around (fn &rest r) open-external) | 503 | ;; (define-advice org-open-at-point (:around (fn &rest r) open-external) |
@@ -506,7 +506,9 @@ | |||
506 | ;; (apply fn r))) | 506 | ;; (apply fn r))) |
507 | (with-eval-after-load 'org | 507 | (with-eval-after-load 'org |
508 | (org-clock-persistence-insinuate) | 508 | (org-clock-persistence-insinuate) |
509 | (org-link-set-parameters "tel" :follow #'+org-tel-open)) | 509 | (org-link-set-parameters "tel" :follow #'+org-tel-open) |
510 | (setf (alist-get "\\.x?html?\\'" org-file-apps nil nil #'equal) | ||
511 | #'+org-open-html)) | ||
510 | ;; Extra keywords | 512 | ;; Extra keywords |
511 | (font-lock-add-keywords | 513 | (font-lock-add-keywords |
512 | 'org-mode | 514 | 'org-mode |
@@ -514,12 +516,12 @@ | |||
514 | ("^ *\\([-]\\) " | 516 | ("^ *\\([-]\\) " |
515 | (0 (compose-region (match-beginning 1) (match-end 1) "•"))) | 517 | (0 (compose-region (match-beginning 1) (match-end 1) "•"))) |
516 | ("^ *\\([+]\\) " | 518 | ("^ *\\([+]\\) " |
517 | (0 (compose-region (match-beginning 1) (match-end 1) "◦")))) | 519 | (0 (compose-region (match-beginning 1) (match-end 1) "◦"))))) |
518 | (with-eval-after-load 'form-feed | 520 | (with-eval-after-load 'form-feed |
519 | ;; Horizontal lines | 521 | ;; Horizontal lines |
520 | (font-lock-add-keywords | 522 | (font-lock-add-keywords |
521 | 'org-mode | 523 | 'org-mode |
522 | '(("^-----+" 0 'form-feed--font-lock-face t)))))) | 524 | '(("^-----+" . form-feed--font-lock-face))))) |
523 | 525 | ||
524 | (setup org-agenda | 526 | (setup org-agenda |
525 | (:option org-agenda-skip-deadline-if-done t | 527 | (:option org-agenda-skip-deadline-if-done t |
diff --git a/lisp/+org.el b/lisp/+org.el index 5869622..0f2c625 100644 --- a/lisp/+org.el +++ b/lisp/+org.el | |||
@@ -447,10 +447,53 @@ the deletion might narrow the column." | |||
447 | (defun +org-open-html (file-path link-string) | 447 | (defun +org-open-html (file-path link-string) |
448 | "Open FILE-PATH with `browse-url'. | 448 | "Open FILE-PATH with `browse-url'. |
449 | This function is intended to use with `org-file-apps'. See the | 449 | This function is intended to use with `org-file-apps'. See the |
450 | documentation of that function for a description of the two | 450 | documentation of that function for a description of the two |
451 | arguments here, FILE-PATH and LINK-STRING." | 451 | arguments here, FILE-PATH and LINK-STRING." |
452 | (message "Opening %s (%s)..." file-path link-string) | 452 | (message "Opening %s (%s)..." file-path link-string) |
453 | (browse-url file-path)) | 453 | (browse-url file-path)) |
454 | 454 | ||
455 | (defun +org-insert-horizontal-rule (prefix) | ||
456 | "Insert a horizontal rule (-----) after the current line. | ||
457 | With PREFIX, insert before the current line." | ||
458 | (interactive "P") | ||
459 | (if prefix | ||
460 | (move-beginning-of-line nil) | ||
461 | (move-end-of-line nil) | ||
462 | (forward-line 1)) | ||
463 | (insert "-----\n")) | ||
464 | |||
465 | ;;; Make code snippets in org-mode easier to type | ||
466 | ;; http://mbork.pl/2022-01-17_Making_code_snippets_in_Org-mode_easier_to_type | ||
467 | |||
468 | (defun +org-insert-backtick () | ||
469 | "Insert a backtick using `org-self-insert-command'." | ||
470 | (interactive) | ||
471 | (setq last-command-event ?`) | ||
472 | (call-interactively #'org-self-insert-command)) | ||
473 | |||
474 | (defvar-local +org-insert-tilde-language nil | ||
475 | "Default language name in the current Org file. | ||
476 | If nil, `org-insert-tilde' after 2 tildes inserts an \"example\" | ||
477 | block. If a string, it inserts a \"src\" block with the given | ||
478 | language name.") | ||
479 | |||
480 | (defun +org-insert-tilde () | ||
481 | "Insert a tilde using `org-self-insert-command'." | ||
482 | (interactive) | ||
483 | (if (string= (buffer-substring-no-properties (- (point) 3) (point)) | ||
484 | "\n~~") | ||
485 | (progn (delete-char -2) | ||
486 | (if +org-insert-tilde-language | ||
487 | (insert (format "#+begin_src %s\n#+end_src" | ||
488 | +org-insert-tilde-language)) | ||
489 | (insert "#+begin_example\n#+end_example")) | ||
490 | (forward-line -1) | ||
491 | (if (string= +org-insert-tilde-language "") | ||
492 | (move-end-of-line nil) | ||
493 | ;;(org-edit-special) ; Useful really only with splits. | ||
494 | )) | ||
495 | (setq last-command-event ?~) | ||
496 | (call-interactively #'org-self-insert-command))) | ||
497 | |||
455 | (provide '+org) | 498 | (provide '+org) |
456 | ;;; +org.el ends here | 499 | ;;; +org.el ends here |
diff --git a/lisp/acdw.el b/lisp/acdw.el index 17741ab..28ea108 100644 --- a/lisp/acdw.el +++ b/lisp/acdw.el | |||
@@ -128,7 +128,7 @@ I keep forgetting how they differ." | |||
128 | 128 | ||
129 | (defmacro +defvar (var value &rest _) | 129 | (defmacro +defvar (var value &rest _) |
130 | "Quick way to `setq' a variable from a `defvar' form." | 130 | "Quick way to `setq' a variable from a `defvar' form." |
131 | (declare (doc-string 3)) | 131 | (declare (doc-string 3) (indent 2)) |
132 | `(setq ,var ,value)) | 132 | `(setq ,var ,value)) |
133 | 133 | ||
134 | (defmacro +with-message (message &rest body) | 134 | (defmacro +with-message (message &rest body) |