Differences From
Artifact [2fdcb74ccb]:
66 66 (defcustom sbbs-open-at-last-post nil
67 67 "Jump to last post in a thread when opening a thread."
68 68 :type 'boolean)
69 69
70 70 (defcustom sbbs-kill-threads-on-quit t
71 71 "Kill all thread buffers when quitting a board buffer."
72 72 :type 'boolean)
73 +
74 +(defcustom sbbs-format-word-at-point t
75 + "Format the word at point if no region is active."
76 + :type 'boolean)
73 77
74 78 (defface sbbs--semi-spoiler-face
75 79 '((((background light)) :background "gray80" :foreground "black")
76 80 (((background dark)) :background "gray20" :foreground "white"))
77 81 "Face for spoiler text in threads.")
78 82
79 83 (defface sbbs--spoiler-face
................................................................................
629 633 sbbs--thread-id id
630 634 sbbs--board board)
631 635 (switch-to-buffer (current-buffer)))))
632 636
633 637 (defun sbbs-compose-format (style)
634 638 "Insert string STYLE around region or point."
635 639 (save-excursion
636 - (if (region-active-p)
637 - (let ((beg (region-beginning))
638 - (end (region-end)))
639 - (goto-char end)
640 - (insert style)
641 - (goto-char beg)
642 - (insert style))
643 - (insert style style)))
640 + (cond
641 + ((use-region-p)
642 + (let ((beg (region-beginning))
643 + (end (region-end)))
644 + (goto-char end)
645 + (insert style)
646 + (goto-char beg)
647 + (insert style)))
648 + (sbbs-format-word-at-point
649 + (save-mark-and-excursion
650 + (let ((bounds (bounds-of-thing-at-point 'word)))
651 + (if bounds
652 + (progn
653 + (set-mark (car bounds))
654 + (goto-char (cdr bounds))
655 + (sbbs-compose-format style))
656 + (let ((sbbs-format-word-at-point nil))
657 + (sbbs-compose-format style))))))
658 + ((insert style style))))
644 659 (when (or (not (region-active-p)) (< (point) (mark)))
645 660 (forward-char (length style))))
646 661
647 662 (defun sbbs-compose-format-code ()
648 663 "Insert code syntax markers."
649 664 (interactive)
650 665 (sbbs-compose-format "```\n"))