]>
Commit | Line | Data |
---|---|---|
718e3744 | 1 | ;; -*- lisp -*- |
2 | ;;; zebra-mode.el -- major mode for editing zebra configuration file. | |
3 | ||
4 | ;; Copyright (C) 1998 Kunihiro Ishiguro | |
5 | ||
6 | ;; Author: 1998 Kunihiro Ishiguro | |
7 | ;; SeonMeyong HEO | |
8 | ;; Maintainer: kunihiro@zebra.org | |
9 | ;; seirios@Matrix.IRI.Co.JP | |
10 | ;; Created: Jan 28 1998 | |
11 | ;; Version: Alpha 0.2 | |
12 | ;; Keywords: zebra bgpd ripd ripngd languages | |
13 | ||
14 | ;; You can get the latest version of zebra from | |
15 | ;; | |
16 | ;; http://www.zebra.org/ | |
17 | ;; | |
18 | ;; Install this Emacs Lisp code | |
19 | ;; | |
20 | ;; Compile zebra.el | |
21 | ;; % $(EMACS) -batch -f batch-byte-compile zebra.el | |
22 | ;; Install zebra.el,zebra.elc to Emacs-load-path | |
23 | ;; % cp zebra.el zebra.elc $(emacs-load-path) | |
24 | ;; Add .emacs or (site-load.el | site-start.el) | |
25 | ;; (auto-load 'zebra-mode "zebra" nil t) | |
26 | ;; (auto-load 'bgp-mode "zebra" nil t) | |
27 | ;; (auto-load 'rip-mode "zebra" nil t) | |
28 | ;; | |
29 | ||
30 | ;;; Code: | |
31 | ||
32 | ;; Set keywords | |
33 | ||
34 | (defvar zebra-font-lock-keywords | |
35 | (list | |
36 | '("#.*$" . font-lock-comment-face) | |
37 | '("!.*$" . font-lock-comment-face) | |
38 | '("no\\|interface" . font-lock-type-face) | |
39 | '("ip6\\|ip\\|route\\|address" . font-lock-function-name-face) | |
40 | '("ipforward\\|ipv6forward" . font-lock-keyword-face) | |
41 | '("hostname\\|password\\|enable\\|logfile\\|no" . font-lock-keyword-face)) | |
42 | "Default value to highlight in zebra mode.") | |
43 | ||
44 | (defvar bgp-font-lock-keywords | |
45 | (list | |
46 | '("#.*$" . font-lock-comment-face) | |
47 | '("!.*$" . font-lock-comment-face) | |
48 | '("no\\|router" . font-lock-type-face) | |
49 | '("bgp\\|router-id\\|neighbor\\|network" . font-lock-function-name-face) | |
50 | '("ebgp\\|multihop\\|next\\|zebra\\|remote-as" . font-lock-keyword-face) | |
51 | '("hostname\\|password\\|enable\\|logfile\\|no" . font-lock-keyword-face)) | |
52 | "Default value to highlight in bgp mode.") | |
53 | ||
54 | (defvar rip-font-lock-keywords | |
55 | (list | |
56 | '("#.*$" . font-lock-comment-face) | |
57 | '("!.*$" . font-lock-comment-face) | |
58 | '("no\\|router\\|interface\\|ipv6\\|ip6\\|ip" . font-lock-type-face) | |
59 | '("ripng\\|rip\\|recive\\|advertize\\|accept" . font-lock-function-name-face) | |
60 | '("version\\|network" . font-lock-function-name-face) | |
61 | '("default\\|none\\|zebra" . font-lock-keyword-face) | |
62 | '("hostname\\|password\\|enable\\|logfile\\|no" . font-lock-keyword-face)) | |
63 | "Default value to highlight in bgp mode.") | |
64 | ||
65 | ;; set font-lock-mode | |
66 | ||
67 | (defun zebra-font-lock () | |
68 | (make-local-variable 'font-lock-defaults) | |
69 | (setq font-lock-defaults '(zebra-font-lock-keywords nil t))) | |
70 | ||
71 | (defun bgp-font-lock () | |
72 | (make-local-variable 'font-lock-defaults) | |
73 | (setq font-lock-defaults '(bgp-font-lock-keywords nil t))) | |
74 | ||
75 | (defun rip-font-lock () | |
76 | (make-local-variable 'font-lock-defaults) | |
77 | (setq font-lock-defaults '(rip-font-lock-keywords nil t))) | |
78 | ||
79 | ;; define Major mode | |
80 | ||
81 | (defun major-mode-define () | |
82 | (interactive) | |
83 | (progn | |
84 | (setq comment-start "[#!]" | |
85 | comment-end "" | |
86 | comment-start-skip "!+ ") | |
87 | (run-hooks 'zebra-mode-hook) | |
88 | (cond | |
89 | ((string< "20" emacs-version) | |
90 | (font-lock-mode))))) | |
91 | ||
92 | (defun zebra-mode () | |
93 | (progn | |
94 | (setq mode-name "zebra") | |
95 | (zebra-font-lock)) | |
96 | (major-mode-define)) | |
97 | ||
98 | (defun bgp-mode () | |
99 | (progn | |
100 | (setq mode-name "bgp") | |
101 | (bgp-font-lock)) | |
102 | (major-mode-define)) | |
103 | ||
104 | (defun rip-mode () | |
105 | (progn | |
106 | (setq mode-name "rip") | |
107 | (rip-font-lock)) | |
108 | (major-mode-define)) |