neovim/runtime/syntax/psl.vim

84 lines
2.5 KiB
VimL
Raw Normal View History

" Vim syntax file
" Language: Property Specification Language (PSL)
" Maintainer: Daniel Kho <daniel.kho@logik.haus>
" Last Changed: 2021 Apr 17 by Daniel Kho
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Read in VHDL syntax files
runtime! syntax/vhdl.vim
unlet b:current_syntax
let s:cpo_save = &cpo
set cpo&vim
" case is not significant
syn case ignore
" Add ! character to keyword recognition.
setlocal iskeyword+=33
" PSL keywords
syn keyword pslOperator A AF AG AX
syn keyword pslOperator E EF EG EX
syn keyword pslOperator F G U W X X!
syn keyword pslOperator abort always assert assume async_abort
syn keyword pslOperator before before! before!_ before_ bit bitvector boolean
syn keyword pslOperator clock const countones cover
syn keyword pslOperator default
syn keyword pslOperator ended eventually!
syn keyword pslOperator fairness fell for forall
syn keyword pslOperator hdltype
syn keyword pslOperator in inf inherit isunknown
syn keyword pslOperator mutable
syn keyword pslOperator never next next! next_a next_a! next_e next_e! next_event next_event! next_event_a next_event_a! next_event_e next_event_e! nondet nondet_vector numeric
syn keyword pslOperator onehot onehot0
syn keyword pslOperator property prev
syn keyword pslOperator report restrict restrict! rose
syn keyword pslOperator sequence stable string strong sync_abort
syn keyword pslOperator union until until! until!_ until_
syn keyword pslOperator vmode vpkg vprop vunit
syn keyword pslOperator within
"" Common keywords with VHDL
"syn keyword pslOperator and is not or to
" PSL operators
syn match pslOperator "=>\||=>"
syn match pslOperator "<-\|->"
syn match pslOperator "@"
"Modify the following as needed. The trade-off is performance versus functionality.
syn sync minlines=600
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link pslSpecial Special
hi def link pslStatement Statement
hi def link pslCharacter Character
hi def link pslString String
hi def link pslVector Number
hi def link pslBoolean Number
hi def link pslTodo Todo
hi def link pslFixme Fixme
hi def link pslComment Comment
hi def link pslNumber Number
hi def link pslTime Number
hi def link pslType Type
hi def link pslOperator Operator
hi def link pslError Error
hi def link pslAttribute Special
hi def link pslPreProc PreProc
let b:current_syntax = "psl"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8