view runtime/syntax/gdresource.vim @ 35714:f7c1a8e37c0b v9.1.0592

patch 9.1.0592: runtime: filetype: Mediawiki files are not recognized Commit: https://github.com/vim/vim/commit/b5844104ab1259e061e023ea6259e4eb002e7170 Author: AvidSeeker <avidseeker7@protonmail.com> Date: Tue Jul 16 21:10:50 2024 +0200 patch 9.1.0592: runtime: filetype: Mediawiki files are not recognized Problem: filetype: Mediawiki files are not recognized Solution: detect "*.mw" and "*.wiki" as mediawiki filetype, include basic syntax and filetype plugins. (AvidSeeker) closes: #15266 Signed-off-by: AvidSeeker <avidseeker7@protonmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Wed, 17 Jul 2024 08:13:58 +0200
parents ebed259f919f
children
line wrap: on
line source

" Vim syntax file for Godot resource (scenes)
" Language:     gdresource
" Maintainer:   Maxim Kim <habamax@gmail.com>
" Filenames:    *.tscn, *.tres
" Website:      https://github.com/habamax/vim-gdscript

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