You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.2 KiB
VimL
64 lines
2.2 KiB
VimL
2 years ago
|
" Vim syntax file
|
||
|
" Language: gaybuild
|
||
|
" Maintainer: anna <owo@fef.moe>
|
||
|
" Latest Revision: 29 August 2022
|
||
|
|
||
|
if exists('b:current_syntax')
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
syn match gaybuildLink contained '\vhttps?\:\/\/([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z0-9\-]+\.?(:[1-9][0-9]*)?(\/[^/!"#? \t]*)*(\?[a-zA-T0-9_]+(\=[^/!"#? \t]*))?(#[^/!"#?\. \t]*)?'
|
||
|
hi def link gaybuildLink Underlined
|
||
|
syn keyword gaybuildTodo contained TODO FIXME XXX NOTE WARNING ATTENTION
|
||
|
hi def link gaybuildTodo Todo
|
||
|
syn match gaybuildComment '#.*$' contains=gaybuildTodo,gaybuildLink
|
||
|
hi def link gaybuildComment Comment
|
||
|
|
||
|
syn match gaybuildStringEsc contained '\\.'
|
||
|
hi def link gaybuildStringEsc SpecialChar
|
||
|
syn region gaybuildString start='"' skip=/\\./ end='"' contains=gaybuildStringEsc
|
||
|
hi def link gaybuildString String
|
||
|
|
||
|
syn match gaybuildIdent '[a-zA-Z_][a-zA-Z0-9_]*'
|
||
|
hi def link gaybuildIdent Identifier
|
||
|
|
||
|
syn match gaybuildFnName '[a-zA-Z_][a-zA-Z0-9_]*('he=e-1,me=e-1
|
||
|
hi def link gaybuildFnName Function
|
||
|
|
||
|
syn match gaybuildOperator '\v[=+\-*/]\=?'
|
||
|
syn match gaybuildOperator '\v\<\<?\=?'
|
||
|
syn match gaybuildOperator '\v\>\>?\=?'
|
||
|
syn match gaybuildOperator '\v\|[|\=]?'
|
||
|
syn match gaybuildOperator '\v\&[&\=]?'
|
||
|
syn match gaybuildOperator '\v\^\=?'
|
||
|
hi def link gaybuildOperator Operator
|
||
|
|
||
|
syn match gaybuildNumberErr '0[0-9]+'
|
||
|
hi def link gaybuildNumberErr Error
|
||
|
|
||
|
syn match gaybuildNumber '\v0[^\0-9]|$'
|
||
|
syn match gaybuildNumber '0x[0-9a-fA-F]+'
|
||
|
syn match gaybuildNumber '0o[0-7]+'
|
||
|
syn match gaybuildNumber '0b[01]+'
|
||
|
syn match gaybuildNumber '[1-9][0-9]*'
|
||
|
hi def link gaybuildNumber Number
|
||
|
|
||
|
syn keyword gaybuildLoopKeyword for while
|
||
|
hi def link gaybuildLoopKeyword Repeat
|
||
|
|
||
|
syn keyword gaybuildCondKeyword if else
|
||
|
hi def link gaybuildCondKeyword Conditional
|
||
|
|
||
|
syn keyword gaybuildKeyword break depend fn include return set source target type var
|
||
|
hi def link gaybuildKeyword Statement
|
||
|
|
||
|
syn keyword gaybuildBool true false
|
||
|
hi def link gaybuildBool Boolean
|
||
|
|
||
|
syn region gaybuildParens start='(' end=')' fold transparent
|
||
|
syn region gaybuildBlock start='{' end='}' fold transparent
|
||
|
|
||
|
let b:current_syntax = 'gaybuild'
|
||
|
|
||
|
" vim: set et sw=4 sts=4 ts=8:
|