neovim

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

fan.vim (5445B)


      1 " Vim syntax file
      2 " Language:     Fantom
      3 " Maintainer:   Kamil Toman <kamil.toman@gmail.com>
      4 " Last Change:  2010 May 27
      5 " Based on Java syntax file by Claudio Fleiner <claudio@fleiner.com>
      6 
      7 " Quit when a syntax file was already loaded
      8 if exists("b:current_syntax")
      9  finish
     10 endif
     11 
     12 " keyword definitions
     13 syn keyword fanExternal	        using native
     14 syn keyword fanError		goto void serializable volatile
     15 syn keyword fanConditional	if else switch
     16 syn keyword fanRepeat		do while for foreach each
     17 syn keyword fanBoolean		true false
     18 syn keyword fanConstant 	null
     19 syn keyword fanTypedef		this super
     20 syn keyword fanOperator	        new is isnot as
     21 syn keyword fanLongOperator     plus minus mult div mod get set slice lshift rshift and or xor inverse negate increment decrement equals compare
     22 syn keyword fanType		Void Bool Int Float Decimal Str Duration Uri Type Range List Map Obj
     23 syn keyword fanStatement	return
     24 syn keyword fanStorageClass	static const final
     25 syn keyword fanSlot      	virtual override once
     26 syn keyword fanField      	readonly
     27 syn keyword fanExceptions	throw try catch finally
     28 syn keyword fanAssert		assert
     29 syn keyword fanTypedef		class enum mixin
     30 syn match   fanFacet            "@[_a-zA-Z][_a-zA-Z0-9_]*\>"
     31 syn keyword fanBranch		break continue
     32 syn keyword fanScopeDecl	public internal protected private abstract
     33 
     34 if exists("fan_space_errors")
     35  if !exists("fan_no_trail_space_error")
     36    syn match   fanSpaceError  "\s\+$"
     37  endif
     38  if !exists("fan_no_tab_space_error")
     39    syn match   fanSpaceError  " \+\t"me=e-1
     40  endif
     41 endif
     42 
     43 syn region  fanLabelRegion     transparent matchgroup=fanLabel start="\<case\>" matchgroup=NONE end=":" contains=fanNumber,fanCharacter
     44 syn keyword fanLabel		default
     45 syn keyword fanLabel		case
     46 
     47 " The following cluster contains all fan groups except the contained ones
     48 syn cluster fanTop add=fanExternal,fanError,fanConditional,fanRepeat,fanBoolean,fanConstant,fanTypedef,fanOperator,fanLongOperator,fanType,fanType,fanStatement,fanStorageClass,fanSlot,fanField,fanExceptions,fanAssert,fanClassDecl,fanTypedef,fanFacet,fanBranch,fanScopeDecl,fanLabelRegion,fanLabel
     49 
     50 " Comments
     51 syn keyword fanTodo		 contained TODO FIXME XXX
     52 syn region  fanComment		 start="/\*"  end="\*/" contains=@fanCommentSpecial,fanTodo,fanComment,@Spell
     53 syn match   fanCommentStar      contained "^\s*\*[^/]"me=e-1
     54 syn match   fanCommentStar      contained "^\s*\*$"
     55 syn match   fanLineComment      "//.*" contains=@fanCommentSpecial2,fanTodo,@Spell
     56 syn match   fanDocComment       "\*\*.*" contains=@fanCommentSpecial2,fanTodo,@Spell
     57 hi def link fanCommentString fanString
     58 hi def link fanComment2String fanString
     59 hi def link fanCommentCharacter fanCharacter
     60 
     61 syn cluster fanTop add=fanComment,fanLineComment,fanDocComment
     62 
     63 " match the special comment /**/
     64 syn match   fanComment		 "/\*\*/"
     65 
     66 " Strings and constants
     67 syn match   fanSpecialError    	 	contained "\\."
     68 syn match   fanSpecialCharError 	contained "[^']"
     69 syn match   fanSpecialChar      	contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\|\$\)"
     70 syn match   fanStringSubst      	contained "\$[A-Za-z][A-Za-z_.]*"
     71 syn match   fanStringSubst      	contained "\${[^}]*}"
     72 syn region  fanString		start=+"+ end=+"+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell
     73 syn region  fanTripleString	start=+"""+ end=+"""+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell
     74 syn region  fanDSL		start=+<|+ end=+|>+ 
     75 syn match   fanUri		 "`[^`]*`"
     76 syn match   fanCharacter	 "'[^']*'" contains=fanSpecialChar,fanSpecialCharError
     77 syn match   fanCharacter	 "'\\''" contains=fanSpecialChar
     78 syn match   fanCharacter	 "'[^\\]'"
     79 syn match   fanNumber		 "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
     80 syn match   fanNumber		 "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
     81 syn match   fanNumber		 "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
     82 syn match   fanNumber		 "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
     83 
     84 syn cluster fanTop add=fanString,fanCharacter,fanNumber,fanSpecial,fanStringError
     85 
     86 " The default highlighting.
     87 hi def link fanBranch			Conditional
     88 hi def link fanLabel			Label
     89 hi def link fanUserLabel		Label
     90 hi def link fanConditional		Conditional
     91 hi def link fanRepeat			Repeat
     92 hi def link fanExceptions		Exception
     93 hi def link fanAssert			Statement
     94 hi def link fanStorageClass		StorageClass
     95 hi def link fanSlot        		StorageClass
     96 hi def link fanField        		StorageClass
     97 hi def link fanScopeDecl		StorageClass
     98 hi def link fanBoolean		Boolean
     99 hi def link fanSpecial		Special
    100 hi def link fanSpecialError		Error
    101 hi def link fanSpecialCharError	Error
    102 hi def link fanTripleString		String
    103 hi def link fanString			String
    104 hi def link fanDSL			String
    105 hi def link fanCharacter		String
    106 hi def link fanStringSubst		Identifier
    107 hi def link fanUri			SpecialChar
    108 hi def link fanSpecialChar		SpecialChar
    109 hi def link fanNumber			Number
    110 hi def link fanError			Error
    111 hi def link fanStringError		Error
    112 hi def link fanStatement		Statement
    113 hi def link fanOperator		Operator
    114 hi def link fanLongOperator		Operator
    115 hi def link fanComment		Comment
    116 hi def link fanDocComment		Comment
    117 hi def link fanLineComment		Comment
    118 hi def link fanConstant		Constant
    119 hi def link fanTypedef		Typedef
    120 hi def link fanTodo			Todo
    121 hi def link fanFacet                  PreProc
    122 
    123 hi def link fanCommentTitle		SpecialComment
    124 hi def link fanCommentStar		SpecialComment
    125 hi def link fanType			Identifier
    126 hi def link fanExternal		Include
    127 
    128 hi def link fanSpaceError		Error
    129 
    130 let b:current_syntax = "fan"
    131 
    132 " vim: ts=8