From: guigues Date: Wed, 30 Jan 2008 09:41:21 +0000 (+0000) Subject: emacs lisp code for bbs files syntax highlight in (x)emacs. Read README.txt X-Git-Tag: r0.6.1~303 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=55821e36ece5e33134c7ebaa895831198a5920d3;p=bbtk.git emacs lisp code for bbs files syntax highlight in (x)emacs. Read README.txt --- diff --git a/kernel/appli/bbi/REAME.txt b/kernel/appli/bbi/REAME.txt new file mode 100644 index 0000000..72e110d --- /dev/null +++ b/kernel/appli/bbi/REAME.txt @@ -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 index 0000000..16007a0 --- /dev/null +++ b/kernel/appli/bbi/bbs-mode.el @@ -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) +