Add initial HLDS highlighting for Vim

This commit is contained in:
Midgard 2020-01-24 01:17:30 +01:00
parent a3af7476c7
commit 9f2edb2f81
Signed by: midgard
GPG key ID: 511C112F1331BBB4
3 changed files with 53 additions and 0 deletions

1
etc/vim/ftdetect.vim Normal file
View file

@ -0,0 +1 @@
au BufRead,BufNewFile *.hlds set filetype=hlds

1
etc/vim/ftplugin.vim Normal file
View file

@ -0,0 +1 @@
setlocal noexpandtab

51
etc/vim/syntax.vim Normal file
View file

@ -0,0 +1,51 @@
" Vim syntax file
" Language: HLDS
" Maintainer: Zeus WPI
" quit when a syntax file was already loaded.
if exists("b:current_syntax")
finish
endif
" We need nocompatible mode in order to continue lines with backslashes.
" Original setting will be restored.
let s:cpo_save = &cpo
set cpo&vim
syn match hldsLocationAttribute "^\t[a-z0-9_-]\+ " display contained nextgroup=hldsLocationAttributeValue
syn match hldsLocationAttributeValue "[^\n]\+$" display contained
syn region hldsLocationHeader matchgroup=hldsLocationHeaderDelim
\ start="^====*$" end="^====*$"
\ contains=hldsLocationAttribute
syn keyword hldsBlockType base nextgroup=hldsBlockIdAftrKywrd skipwhite
syn keyword hldsChoiceType single_choice multi_choice nextgroup=hldsBlockIdAftrKywrd skipwhite
syn match hldsBlockId "^[a-z0-9_-]\+: "
syn match hldsBlockIdAftrKywrd "[a-z0-9_-]\+: " contained
syn match hldsTag " {[a-z0-9_-]\+}"
syn match hldsPrice "€ *[0-9]\+\(\.[0-9]\+\|\)"
" trailing whitespace
syn match hldsSpaceError display excludenl "\s\+$"
" spaces instead of tabs
syn match hldsSpaceError display "^\t* "
" The default highlight links. Can be overridden later.
hi def link hldsLocationHeader Function
hi def link hldsLocationHeaderDelim hldsLocationHeader
hi def link hldsLocationAttribute hldsLocationHeader
hi def link hldsChoiceType Statement
hi def link hldsBlockType Statement
hi def link hldsBlockId Include
hi def link hldsBlockIdAftrKywrd hldsBlockId
hi def link hldsPrice Number
hi def link hldsTag String
hi def link hldsSpaceError Error
let b:current_syntax = "hlds"
let &cpo = s:cpo_save
unlet s:cpo_save