mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +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"
 | 
