Differences From
Artifact [c864d8c09d]:
561 561 (setq-local revert-buffer-function #'sbbs--reload-thread))
562 562
563 563 (defvar sbbs-compose-mode-map
564 564 (let ((map (make-sparse-keymap)))
565 565 (define-key map (kbd "C-c C-c") #'sbbs-compose-create)
566 566 map))
567 567
568 +(defvar sbbs--font-lock
569 + ;; stolen/based on from http://textboard.org/prog/81/5
570 + '(;; code
571 + ("^```\\(.*\n\\)*?```\n?" . 'sbbs--code-face)
572 + ;; bold
573 + ("\\*\\*[^ ].*?\\*\\*" . 'bold)
574 + ;; italic
575 + ("__[^ ].*?__" . 'italic)
576 + ;; monospaced
577 + ("==[^ ].*?==" . 'shadow)
578 + ;; spoiler
579 + ("~~[^ ].*?~~" . 'sbbs--spoiler-face)
580 + ;; references
581 + (">>\\([[:digit:]]+\\(?:-[[:digit:]]+\\)?\\(?:,[[:digit:]]+\\(?:-[[:digit:]]+\\)?\\)*\\)"
582 + . 'link)
583 + ;; quotes
584 + ("^>.*" . font-lock-comment-face))
585 + "Highlighting for SchemeBBS posts")
586 +
568 587 (define-derived-mode sbbs-compose-mode text-mode "SchemeBBS Compose"
569 588 "Major mode for composing replies and starting new threads."
589 + (setq-local comment-start ">")
590 + (setq-local comment-start-skip "^>")
591 + (setq-local font-lock-defaults '(sbbs--font-lock))
592 + (setq-local font-lock-multiline t)
570 593 (setq-local fill-column most-positive-fixnum)
571 594 (message "Press C-c C-c to send"))
572 595
573 596 (provide 'sbbs)
574 597
575 598 ;;; sbbs.el ends here