]> Creatis software - bbtk.git/commitdiff
emacs lisp code for bbs files syntax highlight in (x)emacs. Read README.txt
authorguigues <guigues>
Wed, 30 Jan 2008 09:41:21 +0000 (09:41 +0000)
committerguigues <guigues>
Wed, 30 Jan 2008 09:41:21 +0000 (09:41 +0000)
kernel/appli/bbi/REAME.txt [new file with mode: 0644]
kernel/appli/bbi/bbs-mode.el [new file with mode: 0644]

diff --git a/kernel/appli/bbi/REAME.txt b/kernel/appli/bbi/REAME.txt
new file mode 100644 (file)
index 0000000..72e110d
--- /dev/null
@@ -0,0 +1,11 @@
+The file bbs-mode.el is a (x)emacs lisp script 
+providing highlight syntax for bbi scripts (.bbs)
+
+To use it : 
+1) put it into your .emacs or .xemacs folder
+2) edit the file init.el of .(x)emacs folder and add the lines :
+;; highlight syntax for bbi scripts
+(require 'bbs-mode)
+(add-to-list 'auto-mode-alist '("\\.bbs\\'" . bbs-mode))
+
+
diff --git a/kernel/appli/bbi/bbs-mode.el b/kernel/appli/bbi/bbs-mode.el
new file mode 100644 (file)
index 0000000..16007a0
--- /dev/null
@@ -0,0 +1,86 @@
+;=============================================================================
+; bbs-mode.el = Emacs major mode for editing bbi script files (.bbs).
+
+; Add bbs listfile names to the mode list.
+(setq auto-mode-alist
+         (append
+          '(("\\.bbs\\'" . bbs-mode))
+          auto-mode-alist))
+; Note, add the above setq auto-mode-alist to your .emacs
+; along with the following to have the mode loaded when
+; a *.mac file is loaded in emacs.
+; (autoload 'bbs-mode "bbs-mode.el" t)
+
+; Default indentation increment.
+(defvar bbs-tab-width 2)
+
+; Define keyword highlighting.
+(defconst bbs-font-lock-defaults
+  (list
+   (regexp-opt '(
+                "author"
+                "config"
+                "connect"
+                "define"
+                "delete"
+                "description"
+                "endefine"
+                "endpackage"
+                "exec"
+                "graph"
+                "help"
+                "include"
+                "input"
+                "load"
+                "message"
+                "new"
+                "output"
+                "package"
+                "print"
+                "quit"
+                "reset"
+                "set"
+                "unload"
+                ) t )
+   "Highlighting expressions for bbs mode.")
+  )
+
+; Define a variable to hold the syntax table.
+(defvar bbs-mode-syntax-table nil "Syntax table for bbs-mode.")
+
+; If bbs mode file is reloaded, we want the syntax table to be
+; regenerated when bbs-mode is called.
+(setq bbs-mode-syntax-table nil)
+
+; Let users hook to bbs mode.
+(defvar bbs-mode-hook nil)
+
+; Mode startup function.
+(defun bbs-mode ()
+  "Major mode for editing bbtk script files (.bbs)."
+  (interactive)
+  (kill-all-local-variables)
+  (setq major-mode 'bbs-mode)
+  (setq mode-name "bbs")
+                                       ; Create the syntax table
+  (setq bbs-mode-syntax-table (make-syntax-table))
+  (set-syntax-table bbs-mode-syntax-table)
+  (modify-syntax-entry ?_  "w" bbs-mode-syntax-table)
+  (modify-syntax-entry ?\(  "()" bbs-mode-syntax-table)
+  (modify-syntax-entry ?\)  ")(" bbs-mode-syntax-table)
+  (modify-syntax-entry ?# "<" bbs-mode-syntax-table)
+  (modify-syntax-entry ?\n ">" bbs-mode-syntax-table)
+  
+                                       ; Setup font-lock mode.
+  (make-local-variable 'font-lock-defaults)
+  (setq font-lock-defaults '(bbs-font-lock-defaults))
+
+  ; Setup comment syntax.
+  (make-local-variable 'comment-start)
+  (setq comment-start "#")
+
+  (run-hooks 'bbs-mode-hook))
+
+; This file provides bbs-mode.
+(provide 'bbs-mode)
+