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
48 "Highlighting expressions for bbs mode.")
51 ; Define a variable to hold the syntax table.
52 (defvar bbs-mode-syntax-table nil "Syntax table for bbs-mode.")
54 ; If bbs mode file is reloaded, we want the syntax table to be
55 ; regenerated when bbs-mode is called.
56 (setq bbs-mode-syntax-table nil)
58 ; Let users hook to bbs mode.
59 (defvar bbs-mode-hook nil)
61 ; Mode startup function.
63 "Major mode for editing bbtk script files (.bbs)."
65 (kill-all-local-variables)
66 (setq major-mode 'bbs-mode)
67 (setq mode-name "bbs")
68 ; Create the syntax table
69 (setq bbs-mode-syntax-table (make-syntax-table))
70 (set-syntax-table bbs-mode-syntax-table)
71 (modify-syntax-entry ?_ "w" bbs-mode-syntax-table)
72 (modify-syntax-entry ?\( "()" bbs-mode-syntax-table)
73 (modify-syntax-entry ?\) ")(" bbs-mode-syntax-table)
74 (modify-syntax-entry ?# "<" bbs-mode-syntax-table)
75 (modify-syntax-entry ?\n ">" bbs-mode-syntax-table)
77 ; Setup font-lock mode.
78 (make-local-variable 'font-lock-defaults)
79 (setq font-lock-defaults '(bbs-font-lock-defaults))
81 ; Setup comment syntax.
82 (make-local-variable 'comment-start)
83 (setq comment-start "#")
85 (run-hooks 'bbs-mode-hook))
87 ; This file provides bbs-mode.