| 
									
										
										
										
											2022-08-30 20:26:34 +01:00
										 |  |  | " Vim syntax file for Godot gdscript | 
					
						
							|  |  |  | " Language:     gdscript | 
					
						
							|  |  |  | " Maintainer:   Maxim Kim <habamax@gmail.com> | 
					
						
							| 
									
										
										
										
											2022-09-04 17:45:43 +01:00
										 |  |  | " Website:      https://github.com/habamax/vim-gdscript | 
					
						
							| 
									
										
										
										
											2022-08-30 20:26:34 +01:00
										 |  |  | " Filenames:    *.gd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if exists("b:current_syntax") | 
					
						
							|  |  |  |     finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-04 17:45:43 +01:00
										 |  |  | let s:keepcpo = &cpo | 
					
						
							| 
									
										
										
										
											2022-08-30 20:26:34 +01:00
										 |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syntax sync maxlines=100 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword gdscriptConditional if else elif match | 
					
						
							|  |  |  | syn keyword gdscriptRepeat for while break continue | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword gdscriptOperator is as not and or in | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match gdscriptBlockStart ":\s*$" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword gdscriptKeyword null self owner parent tool | 
					
						
							|  |  |  | syn keyword gdscriptBoolean false true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword gdscriptStatement remote master puppet remotesync mastersync puppetsync sync | 
					
						
							|  |  |  | syn keyword gdscriptStatement return pass | 
					
						
							|  |  |  | syn keyword gdscriptStatement static const enum | 
					
						
							|  |  |  | syn keyword gdscriptStatement breakpoint assert | 
					
						
							|  |  |  | syn keyword gdscriptStatement onready | 
					
						
							|  |  |  | syn keyword gdscriptStatement class_name extends | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword gdscriptType void bool int float String contained | 
					
						
							| 
									
										
										
										
											2022-09-18 13:04:22 +01:00
										 |  |  | syn match gdscriptType ":\s*\zs\h\w*" contained | 
					
						
							|  |  |  | syn match gdscriptType "->\s*\zs\h\w*" contained | 
					
						
							| 
									
										
										
										
											2022-08-30 20:26:34 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | syn keyword gdscriptStatement var nextgroup=gdscriptTypeDecl skipwhite | 
					
						
							|  |  |  | syn keyword gdscriptStatement const nextgroup=gdscriptTypeDecl skipwhite | 
					
						
							| 
									
										
										
										
											2022-09-18 13:04:22 +01:00
										 |  |  | syn match gdscriptTypeDecl "\h\w*\s*:\s*\h\w*" contains=gdscriptType contained skipwhite | 
					
						
							|  |  |  | syn match gdscriptTypeDecl "->\s*\h\w*" contains=gdscriptType skipwhite | 
					
						
							| 
									
										
										
										
											2022-08-30 20:26:34 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | syn keyword gdscriptStatement export nextgroup=gdscriptExportTypeDecl skipwhite | 
					
						
							| 
									
										
										
										
											2022-09-18 13:04:22 +01:00
										 |  |  | syn match gdscriptExportTypeDecl "(.\{-}[,)]" contains=gdscriptOperator,gdscriptType contained skipwhite | 
					
						
							| 
									
										
										
										
											2022-08-30 20:26:34 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | syn keyword gdscriptStatement setget nextgroup=gdscriptSetGet,gdscriptSetGetSeparator skipwhite | 
					
						
							|  |  |  | syn match gdscriptSetGet "\h\w*" nextgroup=gdscriptSetGetSeparator display contained skipwhite | 
					
						
							|  |  |  | syn match gdscriptSetGetSeparator "," nextgroup=gdscriptSetGet display contained skipwhite | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword gdscriptStatement class func signal nextgroup=gdscriptFunctionName skipwhite | 
					
						
							|  |  |  | syn match gdscriptFunctionName "\h\w*" nextgroup=gdscriptFunctionParams display contained skipwhite | 
					
						
							|  |  |  | syn match gdscriptFunctionParams "(.*)" contains=gdscriptTypeDecl display contained skipwhite | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match gdscriptNode "\$\h\w*\%(/\h\w*\)*" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match gdscriptComment "#.*$" contains=@Spell,gdscriptTodo | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region gdscriptString matchgroup=gdscriptQuotes | 
					
						
							|  |  |  |       \ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1" | 
					
						
							|  |  |  |       \ contains=gdscriptEscape,@Spell | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region gdscriptString matchgroup=gdscriptTripleQuotes | 
					
						
							|  |  |  |       \ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend | 
					
						
							|  |  |  |       \ contains=gdscriptEscape,@Spell | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match gdscriptEscape +\\[abfnrtv'"\\]+ contained | 
					
						
							|  |  |  | syn match gdscriptEscape "\\$" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Numbers | 
					
						
							|  |  |  | syn match gdscriptNumber "\<0x\%(_\=\x\)\+\>" | 
					
						
							|  |  |  | syn match gdscriptNumber "\<0b\%(_\=[01]\)\+\>" | 
					
						
							|  |  |  | syn match gdscriptNumber "\<\d\%(_\=\d\)*\>" | 
					
						
							|  |  |  | syn match gdscriptNumber "\<\d\%(_\=\d\)*\%(e[+-]\=\d\%(_\=\d\)*\)\=\>" | 
					
						
							|  |  |  | syn match gdscriptNumber "\<\d\%(_\=\d\)*\.\%(e[+-]\=\d\%(_\=\d\)*\)\=\%(\W\|$\)\@=" | 
					
						
							|  |  |  | syn match gdscriptNumber "\%(^\|\W\)\@1<=\%(\d\%(_\=\d\)*\)\=\.\d\%(_\=\d\)*\%(e[+-]\=\d\%(_\=\d\)*\)\=\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " XXX, TODO, etc | 
					
						
							|  |  |  | syn keyword gdscriptTodo TODO XXX FIXME HACK NOTE BUG contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | hi def link gdscriptStatement Statement | 
					
						
							|  |  |  | hi def link gdscriptKeyword Keyword | 
					
						
							|  |  |  | hi def link gdscriptConditional Conditional | 
					
						
							|  |  |  | hi def link gdscriptBoolean Boolean | 
					
						
							|  |  |  | hi def link gdscriptOperator Operator | 
					
						
							|  |  |  | hi def link gdscriptRepeat Repeat | 
					
						
							|  |  |  | hi def link gdscriptSetGet Function | 
					
						
							|  |  |  | hi def link gdscriptFunctionName Function | 
					
						
							|  |  |  | hi def link gdscriptBuiltinStruct Typedef | 
					
						
							|  |  |  | hi def link gdscriptComment Comment | 
					
						
							|  |  |  | hi def link gdscriptString String | 
					
						
							|  |  |  | hi def link gdscriptQuotes String | 
					
						
							|  |  |  | hi def link gdscriptTripleQuotes String | 
					
						
							|  |  |  | hi def link gdscriptEscape Special | 
					
						
							|  |  |  | hi def link gdscriptNode PreProc | 
					
						
							|  |  |  | hi def link gdscriptType Type | 
					
						
							|  |  |  | hi def link gdscriptNumber Number | 
					
						
							|  |  |  | hi def link gdscriptBlockStart Special | 
					
						
							|  |  |  | hi def link gdscriptTodo Todo | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "gdscript" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let &cpo = s:keepcpo | 
					
						
							|  |  |  | unlet s:keepcpo |