closes: #12836 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Viktor Szépe <viktor@szepe.net>
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	ChaiScript
 | |
| " Maintainer:	Jason Turner <lefticus 'at' gmail com>
 | |
| 
 | |
| " Quit when a (custom) syntax file was already loaded
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| end
 | |
| 
 | |
| syn case match
 | |
| 
 | |
| " syncing method
 | |
| syn sync fromstart
 | |
| 
 | |
| " Strings
 | |
| syn region chaiscriptString        start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=chaiscriptSpecial,chaiscriptEval,@Spell
 | |
| 
 | |
| " Escape characters
 | |
| syn match  chaiscriptSpecial       contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}" 
 | |
| 
 | |
| " String evals
 | |
| syn region chaiscriptEval          contained start="${" end="}" 
 | |
|  
 | |
| " integer number
 | |
| syn match  chaiscriptNumber        "\<\d\+\>"
 | |
| 
 | |
| " floating point number, with dot, optional exponent
 | |
| syn match  chaiscriptFloat         "\<\d\+\.\d*\%(e[-+]\=\d\+\)\=\>"
 | |
| 
 | |
| " floating point number, starting with a dot, optional exponent
 | |
| syn match  chaiscriptFloat         "\.\d\+\%(e[-+]\=\d\+\)\=\>"
 | |
| 
 | |
| " floating point number, without dot, with exponent
 | |
| syn match  chaiscriptFloat         "\<\d\+e[-+]\=\d\+\>"
 | |
| 
 | |
| " Hex strings
 | |
| syn match  chaiscriptNumber        "\<0x\x\+\>"
 | |
| 
 | |
| " Binary strings
 | |
| syn match  chaiscriptNumber        "\<0b[01]\+\>"
 | |
| 
 | |
| " Various language features
 | |
| syn keyword chaiscriptCond         if else
 | |
| syn keyword chaiscriptRepeat       while for do
 | |
| syn keyword chaiscriptStatement    break continue return
 | |
| syn keyword chaiscriptExceptions   try catch throw
 | |
| 
 | |
| "Keyword
 | |
| syn keyword chaiscriptKeyword      def true false attr
 | |
| 
 | |
| "Built in types
 | |
| syn keyword chaiscriptType         fun var
 | |
| 
 | |
| "Built in funcs, keep it simple
 | |
| syn keyword chaiscriptFunc         eval throw
 | |
| 
 | |
| "Let's treat all backtick operator function lookups as built in too
 | |
| syn region  chaiscriptFunc         matchgroup=chaiscriptFunc start="`" end="`"
 | |
| 
 | |
| " Account for the "[1..10]" syntax, treating it as an operator
 | |
| " Intentionally leaving out all of the normal, well known operators
 | |
| syn match   chaiscriptOperator     "\.\."
 | |
| 
 | |
| " Guard separator as an operator
 | |
| syn match   chaiscriptOperator     ":"
 | |
| 
 | |
| " Comments
 | |
| syn match   chaiscriptComment      "//.*$" contains=@Spell
 | |
| syn region  chaiscriptComment      matchgroup=chaiscriptComment start="/\*" end="\*/" contains=@Spell
 | |
| 
 | |
| 
 | |
| 
 | |
| hi def link chaiscriptExceptions	Exception
 | |
| hi def link chaiscriptKeyword		Keyword
 | |
| hi def link chaiscriptStatement		Statement
 | |
| hi def link chaiscriptRepeat		Repeat
 | |
| hi def link chaiscriptString		String
 | |
| hi def link chaiscriptNumber		Number
 | |
| hi def link chaiscriptFloat		Float
 | |
| hi def link chaiscriptOperator		Operator
 | |
| hi def link chaiscriptConstant		Constant
 | |
| hi def link chaiscriptCond		Conditional
 | |
| hi def link chaiscriptFunction		Function
 | |
| hi def link chaiscriptComment		Comment
 | |
| hi def link chaiscriptTodo		Todo
 | |
| hi def link chaiscriptError		Error
 | |
| hi def link chaiscriptSpecial		SpecialChar
 | |
| hi def link chaiscriptFunc		Identifier
 | |
| hi def link chaiscriptType		Type
 | |
| hi def link chaiscriptEval	        Special
 | |
| 
 | |
| let b:current_syntax = "chaiscript"
 | |
| 
 | |
| " vim: nowrap sw=2 sts=2 ts=8 noet
 |