mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			92 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language:        MikroTik RouterOS Script
 | 
						|
" Maintainer:      zainin <z@wintr.dev>
 | 
						|
" Original Author: ndbjorne @ MikroTik forums
 | 
						|
" Last Change:     2021 Nov 14
 | 
						|
 | 
						|
" quit when a syntax file was already loaded
 | 
						|
if exists("b:current_syntax")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
syn case ignore
 | 
						|
 | 
						|
syn iskeyword @,48-57,-
 | 
						|
 | 
						|
" comments
 | 
						|
syn match   routerosComment      /^\s*\zs#.*/
 | 
						|
 | 
						|
" options submenus: /interface ether1 etc
 | 
						|
syn match   routerosSubMenu      "\([a-z]\)\@<!/[a-zA-Z0-9-]*"
 | 
						|
 | 
						|
" variables are matched by looking at strings ending with "=", e.g. var=
 | 
						|
syn match   routerosVariable     "[a-zA-Z0-9-/]*\(=\)\@="
 | 
						|
syn match   routerosVariable     "$[a-zA-Z0-9-]*"
 | 
						|
 | 
						|
" colored for clarity
 | 
						|
syn match   routerosDelimiter    "[,=]"
 | 
						|
" match slash in CIDR notation (1.2.3.4/24, 2001:db8::/48, ::1/128)
 | 
						|
syn match   routerosDelimiter    "\(\x\|:\)\@<=\/\(\d\)\@="
 | 
						|
" dash in IP ranges
 | 
						|
syn match   routerosDelimiter    "\(\x\|:\)\@<=-\(\x\|:\)\@="
 | 
						|
 | 
						|
" match service names after "set", like in original routeros syntax
 | 
						|
syn match   routerosService      "\(set\)\@<=\s\(api-ssl\|api\|dns\|ftp\|http\|https\|pim\|ntp\|smb\|ssh\|telnet\|winbox\|www\|www-ssl\)"
 | 
						|
 | 
						|
" colors various interfaces
 | 
						|
syn match   routerosInterface    "bridge\d\+\|ether\d\+\|wlan\d\+\|pppoe-\(out\|in\)\d\+"
 | 
						|
 | 
						|
syn keyword routerosBoolean      yes no true false
 | 
						|
 | 
						|
syn keyword routerosConditional  if
 | 
						|
 | 
						|
" operators
 | 
						|
syn match   routerosOperator     " \zs[-+*<>=!~^&.,]\ze "
 | 
						|
syn match   routerosOperator     "[<>!]="
 | 
						|
syn match   routerosOperator     "<<\|>>"
 | 
						|
syn match   routerosOperator     "[+-]\d\@="
 | 
						|
 | 
						|
syn keyword routerosOperator     and or in
 | 
						|
 | 
						|
" commands
 | 
						|
syn keyword routerosCommands     beep delay put len typeof pick log time set find environment
 | 
						|
syn keyword routerosCommands     terminal error parse resolve toarray tobool toid toip toip6
 | 
						|
syn keyword routerosCommands     tonum tostr totime add remove enable disable where get print
 | 
						|
syn keyword routerosCommands     export edit find append as-value brief detail count-only file
 | 
						|
syn keyword routerosCommands     follow follow-only from interval terse value-list without-paging
 | 
						|
syn keyword routerosCommands     return
 | 
						|
 | 
						|
" variable types
 | 
						|
syn keyword routerosType         global local
 | 
						|
 | 
						|
" loop keywords
 | 
						|
syn keyword routerosRepeat       do while for foreach
 | 
						|
 | 
						|
syn match   routerosSpecial      "[():[\]{|}]"
 | 
						|
 | 
						|
syn match   routerosLineContinuation "\\$"
 | 
						|
 | 
						|
syn match   routerosEscape       "\\["\\nrt$?_abfv]" contained display
 | 
						|
syn match   routerosEscape       "\\\x\x"            contained display
 | 
						|
 | 
						|
syn region  routerosString       start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=routerosEscape,routerosLineContinuation
 | 
						|
 | 
						|
hi link routerosComment              Comment
 | 
						|
hi link routerosSubMenu              Function
 | 
						|
hi link routerosVariable             Identifier
 | 
						|
hi link routerosDelimiter            Operator
 | 
						|
hi link routerosEscape               Special
 | 
						|
hi link routerosService              Type
 | 
						|
hi link routerosInterface            Type
 | 
						|
hi link routerosBoolean              Boolean
 | 
						|
hi link routerosConditional          Conditional
 | 
						|
hi link routerosOperator             Operator
 | 
						|
hi link routerosCommands             Operator
 | 
						|
hi link routerosType                 Type
 | 
						|
hi link routerosRepeat               Repeat
 | 
						|
hi link routerosSpecial              Delimiter
 | 
						|
hi link routerosString               String
 | 
						|
hi link routerosLineContinuation     Special
 | 
						|
 | 
						|
let b:current_syntax = "routeros"
 |