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