- ;; -*- 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))