1 ;=============================================================================
2 ; bbs-mode.el = Emacs major mode for editing bbi script files (.bbs).
4 ; Add bbs listfile names to the mode list.
7 '(("\\.bbs\\'" . bbs-mode))
9 ; Note, add the above setq auto-mode-alist to your .emacs
10 ; along with the following to have the mode loaded when
11 ; a *.mac file is loaded in emacs.
12 ; (autoload 'bbs-mode "bbs-mode.el" t)
14 ; Default indentation increment.
15 (defvar bbs-tab-width 2)
17 ; Define keyword highlighting.
18 (defconst bbs-font-lock-defaults
47 "Highlighting expressions for bbs mode.")
50 ; Define a variable to hold the syntax table.
51 (defvar bbs-mode-syntax-table nil "Syntax table for bbs-mode.")
53 ; If bbs mode file is reloaded, we want the syntax table to be
54 ; regenerated when bbs-mode is called.
55 (setq bbs-mode-syntax-table nil)
57 ; Let users hook to bbs mode.
58 (defvar bbs-mode-hook nil)
60 ; Mode startup function.
62 "Major mode for editing bbtk script files (.bbs)."
64 (kill-all-local-variables)
65 (setq major-mode 'bbs-mode)
66 (setq mode-name "bbs")
67 ; Create the syntax table
68 (setq bbs-mode-syntax-table (make-syntax-table))
69 (set-syntax-table bbs-mode-syntax-table)
70 (modify-syntax-entry ?_ "w" bbs-mode-syntax-table)
71 (modify-syntax-entry ?\( "()" bbs-mode-syntax-table)
72 (modify-syntax-entry ?\) ")(" bbs-mode-syntax-table)
73 (modify-syntax-entry ?# "<" bbs-mode-syntax-table)
74 (modify-syntax-entry ?\n ">" bbs-mode-syntax-table)
76 ; Setup font-lock mode.
77 (make-local-variable 'font-lock-defaults)
78 (setq font-lock-defaults '(bbs-font-lock-defaults))
80 ; Setup comment syntax.
81 (make-local-variable 'comment-start)
82 (setq comment-start "#")
84 (run-hooks 'bbs-mode-hook))
86 ; This file provides bbs-mode.