neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

slang.vim (3302B)


      1 " Vim syntax file
      2 " Language:	S-Lang
      3 " Maintainer:	Jan Hlavacek <lahvak@math.ohio-state.edu>
      4 " Last Change:	980216
      5 
      6 " quit when a syntax file was already loaded
      7 if exists("b:current_syntax")
      8  finish
      9 endif
     10 
     11 syn keyword slangStatement	break return continue EXECUTE_ERROR_BLOCK
     12 syn match slangStatement	"\<X_USER_BLOCK[0-4]\>"
     13 syn keyword slangLabel		case
     14 syn keyword slangConditional	!if if else switch
     15 syn keyword slangRepeat		while for _for loop do forever
     16 syn keyword slangDefinition	define typedef variable struct
     17 syn keyword slangOperator	or and andelse orelse shr shl xor not
     18 syn keyword slangBlock		EXIT_BLOCK ERROR_BLOCK
     19 syn match slangBlock		"\<USER_BLOCK[0-4]\>"
     20 syn keyword slangConstant	NULL
     21 syn keyword slangType		Integer_Type Double_Type Complex_Type String_Type Struct_Type Ref_Type Null_Type Array_Type DataType_Type
     22 
     23 syn match slangOctal		"\<0\d\+\>" contains=slangOctalError
     24 syn match slangOctalError	"[89]\+" contained
     25 syn match slangHex		"\<0[xX][0-9A-Fa-f]*\>"
     26 syn match slangDecimal		"\<[1-9]\d*\>"
     27 syn match slangFloat		"\<\d\+\."
     28 syn match slangFloat		"\<\d\+\.\d\+\([Ee][-+]\=\d\+\)\=\>"
     29 syn match slangFloat		"\<\d\+\.[Ee][-+]\=\d\+\>"
     30 syn match slangFloat		"\<\d\+[Ee][-+]\=\d\+\>"
     31 syn match slangFloat		"\.\d\+\([Ee][-+]\=\d\+\)\=\>"
     32 syn match slangImaginary	"\.\d\+\([Ee][-+]\=\d*\)\=[ij]\>"
     33 syn match slangImaginary	"\<\d\+\(\.\d*\)\=\([Ee][-+]\=\d\+\)\=[ij]\>"
     34 
     35 syn region slangString oneline start='"' end='"' skip='\\"'
     36 syn match slangCharacter	"'[^\\]'"
     37 syn match slangCharacter	"'\\.'"
     38 syn match slangCharacter	"'\\[0-7]\{1,3}'"
     39 syn match slangCharacter	"'\\d\d\{1,3}'"
     40 syn match slangCharacter	"'\\x[0-7a-fA-F]\{1,2}'"
     41 
     42 syn match slangDelim		"[][{};:,]"
     43 syn match slangOperator		"[-%+/&*=<>|!~^@]"
     44 
     45 "catch errors caused by wrong parenthesis
     46 syn region slangParen	matchgroup=slangDelim transparent start='(' end=')' contains=ALLBUT,slangParenError
     47 syn match slangParenError	")"
     48 
     49 syn match slangComment		"%.*$"
     50 syn keyword slangOperator	sizeof
     51 
     52 syn region slangPreCondit start="^\s*#\s*\(ifdef\>\|ifndef\>\|iftrue\>\|ifnfalse\>\|iffalse\>\|ifntrue\>\|if\$\|ifn\$\|\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=cComment,slangString,slangCharacter,slangNumber
     53 
     54 " Define the default highlighting.
     55 " Only when an item doesn't have highlighting yet
     56 
     57 hi def link slangDefinition	Type
     58 hi def link slangBlock		slangDefinition
     59 hi def link slangLabel		Label
     60 hi def link slangConditional	Conditional
     61 hi def link slangRepeat		Repeat
     62 hi def link slangCharacter	Character
     63 hi def link slangFloat		Float
     64 hi def link slangImaginary	Float
     65 hi def link slangDecimal		slangNumber
     66 hi def link slangOctal		slangNumber
     67 hi def link slangHex		slangNumber
     68 hi def link slangNumber		Number
     69 hi def link slangParenError	Error
     70 hi def link slangOctalError	Error
     71 hi def link slangOperator		Operator
     72 hi def link slangStructure	Structure
     73 hi def link slangInclude		Include
     74 hi def link slangPreCondit	PreCondit
     75 hi def link slangError		Error
     76 hi def link slangStatement	Statement
     77 hi def link slangType		Type
     78 hi def link slangString		String
     79 hi def link slangConstant		Constant
     80 hi def link slangRangeArray	slangConstant
     81 hi def link slangComment		Comment
     82 hi def link slangSpecial		SpecialChar
     83 hi def link slangTodo		Todo
     84 hi def link slangDelim		Delimiter
     85 
     86 
     87 let b:current_syntax = "slang"
     88 
     89 " vim: ts=8