mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file for Godot resource (scenes)
 | 
						|
" Language:     gdresource
 | 
						|
" Maintainer:   Maxim Kim <habamax@gmail.com>
 | 
						|
" Filenames:    *.tscn, *.tres
 | 
						|
 | 
						|
if exists("b:current_syntax")
 | 
						|
    finish
 | 
						|
endif
 | 
						|
 | 
						|
let s:keepcpo= &cpo
 | 
						|
set cpo&vim
 | 
						|
 | 
						|
syn match gdResourceNumber "\<0x\%(_\=\x\)\+\>"
 | 
						|
syn match gdResourceNumber "\<0b\%(_\=[01]\)\+\>"
 | 
						|
syn match gdResourceNumber "\<\d\%(_\=\d\)*\>"
 | 
						|
syn match gdResourceNumber "\<\d\%(_\=\d\)*\%(e[+-]\=\d\%(_\=\d\)*\)\=\>"
 | 
						|
syn match gdResourceNumber "\<\d\%(_\=\d\)*\.\%(e[+-]\=\d\%(_\=\d\)*\)\=\%(\W\|$\)\@="
 | 
						|
syn match gdResourceNumber "\%(^\|\W\)\@1<=\%(\d\%(_\=\d\)*\)\=\.\d\%(_\=\d\)*\%(e[+-]\=\d\%(_\=\d\)*\)\=\>"
 | 
						|
 | 
						|
syn keyword gdResourceKeyword true false
 | 
						|
 | 
						|
syn region gdResourceString
 | 
						|
      \ start=+[uU]\="+ end='"' skip='\\\\\|\\"'
 | 
						|
      \ contains=@Spell keepend
 | 
						|
 | 
						|
" Section
 | 
						|
syn region gdResourceSection matchgroup=gdResourceSectionDelimiter
 | 
						|
      \ start='^\[' end=']\s*$'
 | 
						|
      \ oneline keepend
 | 
						|
      \ contains=gdResourceSectionName,gdResourceSectionAttribute
 | 
						|
 | 
						|
syn match gdResourceSectionName '\[\@<=\S\+' contained skipwhite
 | 
						|
syn match gdResourceSectionAttribute '\S\+\s*=\s*\S\+'
 | 
						|
      \ skipwhite keepend contained
 | 
						|
      \ contains=gdResourceSectionAttributeName,gdResourceSectionAttributeValue
 | 
						|
syn match gdResourceSectionAttributeName '\S\+\ze\(\s*=\)' skipwhite contained
 | 
						|
syn match gdResourceSectionAttributeValue '\(=\s*\)\zs\S\+\ze' skipwhite
 | 
						|
      \ contained
 | 
						|
      \ contains=gdResourceString,gdResourceNumber,gdResourceKeyword
 | 
						|
 | 
						|
 | 
						|
" Section body
 | 
						|
syn match gdResourceAttribute '^\s*\S\+\s*=.*$'
 | 
						|
      \ skipwhite keepend
 | 
						|
      \ contains=gdResourceAttributeName,gdResourceAttributeValue
 | 
						|
 | 
						|
syn match gdResourceAttributeName '\S\+\ze\(\s*=\)' skipwhite contained
 | 
						|
syn match gdResourceAttributeValue '\(=\s*\)\zs.*$' skipwhite
 | 
						|
      \ contained
 | 
						|
      \ contains=gdResourceString,gdResourceNumber,gdResourceKeyword
 | 
						|
 | 
						|
 | 
						|
hi def link gdResourceNumber Constant
 | 
						|
hi def link gdResourceKeyword Constant
 | 
						|
hi def link gdResourceSectionName Statement
 | 
						|
hi def link gdResourceSectionDelimiter Delimiter
 | 
						|
hi def link gdResourceSectionAttributeName Type
 | 
						|
hi def link gdResourceAttributeName Identifier
 | 
						|
hi def link gdResourceString String
 | 
						|
 | 
						|
let b:current_syntax = "gdresource"
 | 
						|
 | 
						|
let &cpo = s:keepcpo
 | 
						|
unlet s:keepcpo
 |