mirror of
				https://git.proxmox.com/git/mirror_frr
				synced 2025-10-31 20:23:36 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			EmacsLisp
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			EmacsLisp
		
	
	
	
	
	
| ;; -*- 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))
 | 
