initial commit
This commit is contained in:
commit
2cf1603699
3 changed files with 104 additions and 0 deletions
9
README.md
Normal file
9
README.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
junos.vim
|
||||
=========
|
||||
|
||||
Vim syntax for Junos configuration files.
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
[MIT](http://opensource.org/licenses/MIT)
|
5
ftdetect/junos.vim
Normal file
5
ftdetect/junos.vim
Normal file
|
@ -0,0 +1,5 @@
|
|||
" Vim ftdetect file
|
||||
" Language: junos
|
||||
" Maintainer: Makoto Momota <makoto.momota@gmail.com>
|
||||
" Latest Revision: 21 Jun. 2016
|
||||
autocmd BufNewFile,BufReadPost *.junos set filetype=junos
|
90
syntax/junos.vim
Normal file
90
syntax/junos.vim
Normal file
|
@ -0,0 +1,90 @@
|
|||
" Vim syntax file
|
||||
" Language: junos
|
||||
" Maintainer: Makoto Momota <makoto.momota@gmail.com>
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
setlocal iskeyword+=-
|
||||
setlocal iskeyword+=.
|
||||
setlocal iskeyword+=_
|
||||
|
||||
syn match junosDef /\s\u\S\+/
|
||||
|
||||
syn keyword junosCond if else for-each
|
||||
syn keyword junosCond to-zone from-zone match then from to match
|
||||
|
||||
syn keyword junosLabel system chassis firewall security rule rule-set pool
|
||||
|
||||
syn keyword junosKeyword class user link-mode port-mode speed address route nat policy vlan-id
|
||||
syn keyword junosKeyword source-address destination-address source-port destination-port
|
||||
syn keyword junosKeyword static filter term routing-instances routing-engine line-card next-hop storm-control
|
||||
syn keyword junosKeyword redundancy-group cluster vrrp-group virtual-router
|
||||
syn keyword junosKeyword alg log login
|
||||
syn match junosKeyword /interfaces\=/
|
||||
syn match junosKeyword /vlans\=/
|
||||
syn match junosKeyword /members\=/
|
||||
syn match junosKeyword /\(security\-\)\?zones\=/
|
||||
syn match junosKeyword /protocols\=/
|
||||
syn match junosKeyword /applications\=/
|
||||
|
||||
syn keyword junosProtocol ip ipv6 inet inet6 tcp udp
|
||||
syn keyword junosProtocol snmp ntp syslog ssh ftp ftp-data dns sql
|
||||
syn keyword junosProtocol bgp ospf ospf3 rip ripng isis
|
||||
syn keyword junosProtocol igmp igmp-snooping lldp lldp-med mld mld-snooping msdp mstp mvrp mpls vrrp lacp
|
||||
syn keyword junosProtocol stp sflow vstp dot1x msrp msrpc sunrpc icmp ping pim rstp rsvp netconf
|
||||
syn keyword junosProtocol junos-http junos-https junos-ftp junos-ssh junos-icmp-all junos-ntp junos-smtp
|
||||
syn keyword junosProtocol junos-udp junos-telnet junos-bgp junos-syslog
|
||||
syn match junosProtocol /\s802\.3ad\s/
|
||||
syn match junosProtocol /\s802\.1Q\s/
|
||||
|
||||
syn keyword junosAction any deny permit accept reject discard disable enable
|
||||
|
||||
syn keyword junosConfigure set delete rename insert request show
|
||||
syn keyword junosConfigure 100m 1g 10g trunk access
|
||||
syn keyword junosConfigure full-duplex automatic auto-negotiation input output
|
||||
|
||||
syn keyword junosFunction id host host-name
|
||||
syn match junosFunction /[a-z]\+:[-a-z]\+/
|
||||
syn match junosFunction /unit\s[0-9]\+/
|
||||
syn match junosFunction /vlan\.[0-9]\+/
|
||||
syn match junosFunction /node[0-9]\+/
|
||||
|
||||
syn match junosComment "description.*$"
|
||||
syn match junosComment "\s*#.*$"
|
||||
syn region junosComment contained start='/*' end='*/'
|
||||
|
||||
syn match junosString "\"[^"]*\""
|
||||
syn match junosVar "\$\<[-_a-zA-Z0-9]*\>"
|
||||
syn match junosVar /\d\+/
|
||||
|
||||
syn keyword junosInterface lo0
|
||||
syn match junosInterface "\(xe\|ge\|vcp\)\-[0-9]\+\/[0-9]\+\/[0-9]\+\(
\|\n\|\s\|\.[0-9]\+\)"
|
||||
syn match junosInterface "ae[0-9]\+\(
\|\n\|\s\|\.[0-9]\+\)"
|
||||
syn match junosInterface "reth[0-9]\+\(
\|\n\|\s\|\.[0-9]\+\)"
|
||||
syn match junosInterface "fab[0-9]\+\(
\|\n\|\s\|\.[0-9]\+\)"
|
||||
syn match junosInterface "vcp\-[0-9]\+\(
\|\n\|\s\|\.[0-9]\+\)"
|
||||
syn match junosInterface "virtual\-chassis"
|
||||
syn match junosInterface "vlan\sunit\s[0-9]\+"
|
||||
|
||||
" IPv4: complex version
|
||||
syn match junosIpv4 /\(25[0-5]\|2[0-4]\d\|[01]\?\d\{1,2}\)\(\.\(25[0-5]\|2[0-4]\d\|[01]\?\d\{1,2}\)\)\{3}/
|
||||
syn match junosIpv4 /\(25[0-5]\|2[0-4]\d\|[01]\?\d\{1,2}\)\(\.\(25[0-5]\|2[0-4]\d\|[01]\?\d\{1,2}\)\)\{3}\/[0-9]\{1,2\}/
|
||||
|
||||
|
||||
hi link junosKeyword Statement
|
||||
hi link junosInterface Underlined
|
||||
hi link junosProtocol Type
|
||||
hi link junosAction Error
|
||||
hi link junosFunction Function
|
||||
hi link junosLabel Identifier
|
||||
hi link junosCond Type
|
||||
hi link junosComment Comment
|
||||
hi link junosString String
|
||||
hi link junosVar Identifier
|
||||
hi link junosConfigure Function
|
||||
hi link junosDef String
|
||||
hi link junosIpv4 Underlined
|
||||
|
||||
let b:current_syntax = "junos"
|
Loading…
Reference in a new issue