;; -*- lisp -*- ;;; zebra-mode.el -- major mode for editing zebra configuration file. ;; Copyright (C) 1998 Kunihiro Ishiguro ;; Author: 1998 Kunihiro Ishiguro ;; SeonMeyong HEO ;; Maintainer: kunihiro@zebra.org ;; seirios@Matrix.IRI.Co.JP ;; Created: Jan 28 1998 ;; Version: Alpha 0.2 ;; Keywords: zebra bgpd ripd ripngd languages ;; You can get the latest version of zebra from ;; ;; http://www.zebra.org/ ;; ;; Install this Emacs Lisp code ;; ;; Compile zebra.el ;; % $(EMACS) -batch -f batch-byte-compile zebra.el ;; Install zebra.el,zebra.elc to Emacs-load-path ;; % cp zebra.el zebra.elc $(emacs-load-path) ;; Add .emacs or (site-load.el | site-start.el) ;; (auto-load 'zebra-mode "zebra" nil t) ;; (auto-load 'bgp-mode "zebra" nil t) ;; (auto-load 'rip-mode "zebra" nil t) ;; ;;; Code: ;; Set keywords (defvar zebra-font-lock-keywords (list '("#.*$" . font-lock-comment-face) '("!.*$" . font-lock-comment-face) '("no\\|interface" . font-lock-type-face) '("ip6\\|ip\\|route\\|address" . font-lock-function-name-face) '("ipforward\\|ipv6forward" . font-lock-keyword-face) '("hostname\\|password\\|enable\\|logfile\\|no" . font-lock-keyword-face)) "Default value to highlight in zebra mode.") (defvar bgp-font-lock-keywords (list '("#.*$" . font-lock-comment-face) '("!.*$" . font-lock-comment-face) '("no\\|router" . font-lock-type-face) '("bgp\\|router-id\\|neighbor\\|network" . font-lock-function-name-face) '("ebgp\\|multihop\\|next\\|zebra\\|remote-as" . font-lock-keyword-face) '("hostname\\|password\\|enable\\|logfile\\|no" . font-lock-keyword-face)) "Default value to highlight in bgp mode.") (defvar rip-font-lock-keywords (list '("#.*$" . font-lock-comment-face) '("!.*$" . font-lock-comment-face) '("no\\|router\\|interface\\|ipv6\\|ip6\\|ip" . font-lock-type-face) '("ripng\\|rip\\|recive\\|advertize\\|accept" . font-lock-function-name-face) '("version\\|network" . font-lock-function-name-face) '("default\\|none\\|zebra" . font-lock-keyword-face) '("hostname\\|password\\|enable\\|logfile\\|no" . font-lock-keyword-face)) "Default value to highlight in bgp mode.") ;; set font-lock-mode (defun zebra-font-lock () (make-local-variable 'font-lock-defaults) (setq font-lock-defaults '(zebra-font-lock-keywords nil t))) (defun bgp-font-lock () (make-local-variable 'font-lock-defaults) (setq font-lock-defaults '(bgp-font-lock-keywords nil t))) (defun rip-font-lock () (make-local-variable 'font-lock-defaults) (setq font-lock-defaults '(rip-font-lock-keywords nil t))) ;; define Major mode (defun major-mode-define () (interactive) (progn (setq comment-start "[#!]" comment-end "" comment-start-skip "!+ ") (run-hooks 'zebra-mode-hook) (cond ((string< "20" emacs-version) (font-lock-mode))))) (defun zebra-mode () (progn (setq mode-name "zebra") (zebra-font-lock)) (major-mode-define)) (defun bgp-mode () (progn (setq mode-name "bgp") (bgp-font-lock)) (major-mode-define)) (defun rip-mode () (progn (setq mode-name "rip") (rip-font-lock)) (major-mode-define))