package publish

This commit is contained in:
Vanessa McHale 2018-02-26 17:11:07 -06:00
parent 578e4fa52c
commit acbf438de8

View file

@ -5,156 +5,18 @@ if !exists('main_syntax')
let main_syntax = 'ats' let main_syntax = 'ats'
endif endif
" comment highlighting syn keyword atsTodo TODO FIXME contained
syn keyword atsTodo TODO FIXME NOTE contained syn match atsComment "\v\/\/.*$"
syn match atscCommentError display "\*/" syn region atsNestComment start="(\*" end="\*)" contains=atsNestComment,atsTodo,@Spell
syn match atscCommentStartError display "/\*"me=e-1 contained
syn region atscComment matchgroup=atscCommentStart start="/\*" end="\*/" contains=atsTodo,@Spell,atscCommentStartError
syn match atsNestedCommentError display "\*)"
" mercilessly ripped from d.vim
syn region atsNestedComment start="(\*" end="\*)" contains=atsNestedComment,atsTodo,@Spell
syn match atsComment "//.*" contains=atsTodo
" syn keyword atsKeyword staload overload with fun
" denotation highlighting
"
" special characters syn keyword atsType void bool string char int uint charNZ strnptr Strptr0 Strptr1
syn match atsSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
syn match atsSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)"
syn match atsSpecial '\\n'
syn match atsSpecial '@'
" syn match atsSpecial '#'
syn match atsFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
syn region atsStringDenot start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=atsSpecial,atsFormat,atsSpecial,@Spell
syn match atsCharDenot "'[^\\]'"
syn match atsCharDenot "'[^']*'" contains=atsSpecial
syn keyword atsBoolDenot true false highlight link atsComment Comment
syn case ignore highlight link atsNestComment Comment
syn match atsNumbers display transparent "\<\d\|\.\d" contains=atsNumber,atsFloat,atsOctalError,atsOctal highlight link atsKeyword Keyword
syn match atsNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" highlight link atsType Type
syn match atsNumber display contained "0x\x\+\(u\=l\{0,2}\ll\=\u\)\>"
" flag the first zero of an octal number as something special
syn match atsOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=atsOctalZero
syn match atsFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\="
syn match atsFloat display contained "\.\d\+\(e[-+]\=\d\+\)\>"
syn match atsFloat display contained "\d\+e[-+]\=\d\+\>"
" flag an octal number with wrong digits
syn match atsOctalError display contained "0\o*[89]\d*"
syn case match
syn region atsIncludes oneline start='#include' end='"' contains=atsStringDenot
syn match atsIdent "[A-Za-z_][0-9A-Za-z_\']*"
" embedded C
" %{^ %} %{ %} %{$ %} %{# %}
if main_syntax !=# 'c' || exists('c')
syn include @atsC syntax/c.vim
unlet b:current_syntax
syn region embC start=+%{[^#$]\=+ keepend end=+%}+ contains=@atsC
endif
"
" keyword highlighting
"
" keyword highlighting
syn keyword atsKeyword prefix postfix infix infixl infixr op addr
syn keyword atsKeyword staload stadef sta dynload stacst assertloc macdef
syn keyword atsCond if then else case sif when ifcase
syn keyword atsRepeat while
syn keyword atsOperator mod
syn keyword atsException exception raise try
syn keyword atsStatement import let in where local
syn keyword atsStatement val and fnx fun fn llam lam fix rec var of assume castfn prfun prfn
syn keyword atsStatement begin end
syn keyword atsTypedef typedef sortdef viewtypedef vtypedef viewdef
syn keyword atsStructure datatype datavtype abstype dataviewtype dataprop dataview propdef absview
syn keyword atsExternal extern implement primplmnt
syn keyword atsKeyword symintr overload with
syn keyword atsKeyword prval praxi datasort
syn keyword atsSorts bool char int absprop prop type view viewtype nat absvtype absviewtype vtype
syn keyword atsTypes string float double void
syn match atsSym "[%&+-\./:=@~`^|*!$#?]+\|[%&+-\./:=@~`^|*<>]+"
" C preprocessor directives
syn region atsPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=atsComment,atsCommentError
syn match atsPreCondit display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
syn region atsCppOut start="^\s*\(%\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=atsCppOut2
syn region atsCppOut2 contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=atsCppSkip
syn region atsCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|print\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=atsCppSkip
syn region atsIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match atsIncluded display contained "<[^>]*>"
syn match atsInclude "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=atsIncluded
syn cluster atsPreProcGroup contains=atsPreCondit,atsIncluded,atsInclude,atsDefine,atsCppOut,atsCppOut2,atsCppSkip
syn region atsDefine matchgroup=atsPreCondit start="\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$"
syn region atsPreProc matchgroup=atsPreCondit start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend
"
" linking
"
" don't use standard HiLink, it won't work with included syntax files
command! -nargs=+ AtsHiLink hi def link <args>
" includes
AtsHiLink atsIncludes Special
AtsHiLink atsSpecial Special
" comments
AtsHiLink atsCommentStart atsComment
AtsHiLink atsNestedComment Comment
AtsHiLink atscCommentStart Comment
AtsHiLink atscComment Comment
AtsHiLink atsComment Comment
" delimiters
AtsHiLink atsEncl Keyword
" constants and denotations
AtsHiLink atsBoolDenot Boolean
AtsHiLink atsCharsDenot String
AtsHiLink atsCharDenot Character
AtsHiLink atsStringDenot String
AtsHiLink atsNumber Number
AtsHiLink atsOctal Number
AtsHiLink atsOctalZero PreProc " link this to Error if you want
AtsHiLink atsFloat Float
AtsHiLink atsOctalError atsError
" identifiers
AtsHiLink atsIdent Identifier
" various keywords
AtsHiLink atsKey Keyword
AtsHiLink atsOperator Operator
AtsHiLink atsCond Conditional
AtsHiLink atsRepeat Repeat
AtsHiLink atsException Exception
AtsHiLink atsStatement Statement
AtsHiLink atsKeyword Statement
AtsHiLink atsTypedef Typedef
AtsHiLink atsStructure Structure
AtsHiLink atsExternal StorageClass
AtsHiLink atsTypes Type
AtsHiLink atsSorts Type
AtsHiLink atsSym Operator
AtsHiLink atsEncl Keyword
" embedded C
AtsHiLink embC Special
AtsHiLink atsPreProc PreProc
AtsHiLink atsCommentError atsError
AtsHiLink atscCommentStartError atsError
AtsHiLink atscCommentError atsError
AtsHiLink atsNestedCommentError atsError
AtsHiLink atsError Error
AtsHiLink atsAllErrs Error
delcommand AtsHiLink
let b:current_syntax = 'ats' let b:current_syntax = 'ats'