mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-03 20:38:59 +00:00 
			
		
		
		
	
		
			
	
	
		
			70 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			70 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| 
								 | 
							
								" Vim syntax file
							 | 
						||
| 
								 | 
							
								" Language:	Asterisk Extension Language
							 | 
						||
| 
								 | 
							
								" Maintainer:	tilghman
							 | 
						||
| 
								 | 
							
								" Last Change:	2009 Mar 04 
							 | 
						||
| 
								 | 
							
								" version 0.1
							 | 
						||
| 
								 | 
							
								"
							 | 
						||
| 
								 | 
							
								if version < 600
							 | 
						||
| 
								 | 
							
								  syntax clear
							 | 
						||
| 
								 | 
							
								elseif exists("b:current_syntax")
							 | 
						||
| 
								 | 
							
								  finish
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								syn sync clear
							 | 
						||
| 
								 | 
							
								syn sync fromstart
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								syn keyword     aelTodo            TODO contained
							 | 
						||
| 
								 | 
							
								syn keyword     aelKeyword         context includes macro globals if else switch case default catch return switches includes for ignorepat
							 | 
						||
| 
								 | 
							
								syn match       aelComment         "//.*" contains=aelTodo
							 | 
						||
| 
								 | 
							
								syn match       aelContext         "\s+\zs[[:alpha:]][[:alnum:]\-_]*\ze\s*{"
							 | 
						||
| 
								 | 
							
								" Macro declaration
							 | 
						||
| 
								 | 
							
								syn match       aelMacro           "[[:alpha:]][[:alnum:]\-_]*(.\{-})\ze\s*{" contains=aelVar,aelFunction,aelExp,aelArgs
							 | 
						||
| 
								 | 
							
								" Macro reference
							 | 
						||
| 
								 | 
							
								syn match       aelMacro           "&[[:alpha:]][[:alnum:]\-_]*(.\{-});" contains=aelVar,aelFunction,aelExp,aelArgs
							 | 
						||
| 
								 | 
							
								" Ranges or other pattern characters
							 | 
						||
| 
								 | 
							
								syn match       aelExten           "\zs_\(\[[[:alnum:]#*\-]\+\]\|[[:alnum:]#*\-]\)\+[\.!]\?\ze\s+=>"
							 | 
						||
| 
								 | 
							
								syn match       aelExten           "\zs[[:alnum:]#*]\+\ze\s*=>"
							 | 
						||
| 
								 | 
							
								syn match       aelApp             "\s\+\zs[[:alpha:]][[:alpha:]_]\+\ze[; ]"
							 | 
						||
| 
								 | 
							
								syn match       aelApp             "\s\+\zs[[:alpha:]][[:alpha:]_]\+\ze(.\{-});"
							 | 
						||
| 
								 | 
							
								syn match       aelLabel           "[[:alpha:]][[:alnum:]]*\ze:"
							 | 
						||
| 
								 | 
							
								syn region      aelVar             matchgroup=aelVarStart start="\${" end="}" contains=aelVar,aelFunction,aelExp
							 | 
						||
| 
								 | 
							
								syn match       aelVar             "\zs[[:alpha:]][[:alnum:]_]*\ze=" contains=aelVar,aelFunction,aelExp
							 | 
						||
| 
								 | 
							
								" Retrieving the value of a function
							 | 
						||
| 
								 | 
							
								syn match       aelFunction        "\${_\{0,2}[[:alpha:]][[:alnum:]_]*(.\{-})}" contains=aelVar,aelFunction,aelExp
							 | 
						||
| 
								 | 
							
								" Setting a function
							 | 
						||
| 
								 | 
							
								syn match       aelFunction        "(\zs[[:alpha:]][[:alnum:]_]*(.\{-})\ze=" contains=aelVar,aelFunction,aelExp
							 | 
						||
| 
								 | 
							
								syn region      aelExp             matchgroup=aelExpStart start="\$\[" end="]" contains=aelVar,aelFunction,aelExp
							 | 
						||
| 
								 | 
							
								syn match       aelArgs            "([[:alnum:]_, ]*)" contains=aelArgsElement contained
							 | 
						||
| 
								 | 
							
								syn match       aelArgsElement     "[[:alpha:]][[:alnum:]_]*" contained
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								" Define the default highlighting.
							 | 
						||
| 
								 | 
							
								" For version 5.7 and earlier: only when not done already
							 | 
						||
| 
								 | 
							
								" For version 5.8 and later: only when an item doesn't have highlighting yet
							 | 
						||
| 
								 | 
							
								if version >= 508 || !exists("did_conf_syntax_inits")
							 | 
						||
| 
								 | 
							
								  if version < 508
							 | 
						||
| 
								 | 
							
								    let did_conf_syntax_inits = 1
							 | 
						||
| 
								 | 
							
								    command -nargs=+ HiLink hi link <args>
							 | 
						||
| 
								 | 
							
								  else
							 | 
						||
| 
								 | 
							
								    command -nargs=+ HiLink hi def link <args>
							 | 
						||
| 
								 | 
							
								  endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  HiLink        aelComment         Comment
							 | 
						||
| 
								 | 
							
								  HiLink        aelContext         Preproc
							 | 
						||
| 
								 | 
							
								  HiLink        aelMacro           Preproc
							 | 
						||
| 
								 | 
							
								  HiLink        aelExten           Type
							 | 
						||
| 
								 | 
							
								  HiLink        aelLabel           Type
							 | 
						||
| 
								 | 
							
								  HiLink        aelApp             Preproc
							 | 
						||
| 
								 | 
							
								  HiLink        aelVar             String
							 | 
						||
| 
								 | 
							
								  HiLink        aelVarStart        String
							 | 
						||
| 
								 | 
							
								  HiLink        aelArgsElement     String
							 | 
						||
| 
								 | 
							
								  HiLink        aelFunction        Function
							 | 
						||
| 
								 | 
							
								  HiLink        aelExp             Type
							 | 
						||
| 
								 | 
							
								  HiLink        aelExpStart        Type
							 | 
						||
| 
								 | 
							
								  HiLink        aelKeyword         Statement
							 | 
						||
| 
								 | 
							
								  HiLink        aelError           Error
							 | 
						||
| 
								 | 
							
								 delcommand HiLink
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								let b:current_syntax = "ael" 
							 | 
						||
| 
								 | 
							
								" vim: ts=8 sw=2
							 | 
						||
| 
								 | 
							
								
							 |