sbbs.el

Diff
Login

Differences From Artifact [2fdcb74ccb]:

To Artifact [a32d58a0ff]:


    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"))