I broke up with neovim....vim is my best friend now
This commit is contained in:
180
dot_vim/plugged/pony-vim-syntax/syntax/pony.vim
Normal file
180
dot_vim/plugged/pony-vim-syntax/syntax/pony.vim
Normal file
@@ -0,0 +1,180 @@
|
||||
" Vim syntax file
|
||||
" Language: Pony
|
||||
" Maintainer: You
|
||||
" Last Change: 2015 May 6
|
||||
" Original Author: David Leonard
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" For syntastic as the 'pony' filetype is not officially registered.
|
||||
if exists('g:syntastic_extra_filetypes')
|
||||
call add(g:syntastic_extra_filetypes, 'pony')
|
||||
else
|
||||
let g:syntastic_extra_filetypes = ['pony']
|
||||
endif
|
||||
|
||||
" TODO add markdown to triple-comments
|
||||
|
||||
syn case match
|
||||
|
||||
" Sync at the beginning of classes, functions
|
||||
syn sync match ponySync grouphere NONE "^\s*\%(class\|fun\|be\|new\)\s\+[a-zA-Z_]"
|
||||
|
||||
" Constants
|
||||
syn region ponyString start=+"+ skip=+\\"+ end=+"+ contains=ponyEscape
|
||||
syn region ponyTripleString start=+"""+ end=+"""+ contains=ponyEscape,@markdownBlock
|
||||
syn match ponyEscape contained "\\x\x\{2}"
|
||||
syn match ponyEscape contained "\\u\x\{4}"
|
||||
syn match ponyEscape contained "\\U\x\{6}"
|
||||
syn match ponyEscape contained "\\[\\abefnrtv\"'0]"
|
||||
|
||||
hi def link ponyString String
|
||||
hi def link ponyTripleString String
|
||||
hi def link ponyEscape Character
|
||||
|
||||
syn match ponyInt "\d\+"
|
||||
syn match ponyIntError "0[bx]"
|
||||
syn match ponyInt "0x\x\+"
|
||||
syn match ponyInt "0b[01]\+"
|
||||
syn match ponyCharError "'"
|
||||
syn match ponyChar "'[^\\']'"
|
||||
syn match ponyChar "'\\[\\abefnrtv\"'0]'" contains=ponyEscape
|
||||
syn match ponyChar "'\\x\x\{2}'" contains=ponyEscape
|
||||
syn match ponyChar "'\\u\x\{4}'" contains=ponyEscape
|
||||
syn match ponyChar "'\\U\x\{6}'" contains=ponyEscape
|
||||
syn keyword ponyBoolean true false
|
||||
syn match ponyReal "\d\+\%(\.\d\+\)\=[Ee][+-]\=\d\+"
|
||||
syn match ponyReal "\d\+\.\d\+\%([Ee][+-]\=\d\+\)\="
|
||||
|
||||
hi def link ponyInt Number
|
||||
hi def link ponyChar Number
|
||||
hi def link ponyBoolean Boolean
|
||||
hi def link ponyReal Float
|
||||
hi def link ponyCharError Error
|
||||
hi def link ponyIntError Error
|
||||
|
||||
" Identifiers
|
||||
|
||||
syn match ponyId "\<\a[a-zA-Z0-9_']*" nextgroup=ponyCap,ponyCapMod
|
||||
syn match ponyPrivateId "\<_[a-zA-Z0-9_']\+"
|
||||
syn cluster PonyIdentifier contains=ponyId,ponyPrivateId
|
||||
"hi def link ponyId Identifier
|
||||
"hi def link ponyPrivateId Identifier
|
||||
|
||||
syn keyword ponyBuiltinClass Array ArrayKeys ArrayValues ArrayPairs
|
||||
syn keyword ponyBuiltinClass Env Pointer String StringValues
|
||||
hi def link ponyBuiltinClass Structure
|
||||
|
||||
syn keyword ponyBuiltinType Number Signed Unsigned Float
|
||||
syn keyword ponyBuiltinType I8 I16 I32 I64 I128 U8 U16 U32 U64 U128 F32 F64
|
||||
syn keyword ponyBuiltinType EventID Align IntFormat NumberPrefix FloatFormat
|
||||
hi def link ponyBuiltinType Type
|
||||
|
||||
syn keyword ponyBuiltinIface Arithmetic Logical Bits Comparable Ordered
|
||||
syn keyword ponyBuiltinIface EventNotify Iterator ReadSeq StdinNotify Seq
|
||||
syn keyword ponyBuiltinIface Stringable Bytes BytesList Stream Any
|
||||
hi def link ponyBuiltinIface Type
|
||||
|
||||
syn region ponyMethodDecl matchgroup=ponyMethodKeyword start=+\<\%(fun\|be\|new\)\>+ end=+[[({]\@=+ contains=ponyCap,ponyMethod,@PonyComment
|
||||
syn keyword ponyMethodKeyword contained fun be new
|
||||
syn match ponyMethod contained "\<\a[a-zA-Z0-9_']*"
|
||||
syn match ponyMethod contained "\<_[a-zA-Z0-9_']\+"
|
||||
hi def link ponyMethod Function
|
||||
hi def link ponyMethodKeyword Keyword
|
||||
|
||||
syn region ponyVarDecl matchgroup=ponyVarKeyword start=+\<\%(var\|let\|embed\)\>+ end=+[:=]\@=+ contains=ponyVar,@PonyComment
|
||||
syn keyword ponyVarKeyword contained var let embed
|
||||
syn match ponyVar contained "\<\a[a-zA-Z0-9_']*"
|
||||
syn match ponyVar contained "\<_[a-zA-Z0-9_']\+"
|
||||
hi def link ponyVar Identifier
|
||||
hi def link ponyVarKeyword Keyword
|
||||
|
||||
" Operators and delimiters
|
||||
|
||||
syn match ponyCapModError +[\^\!]+
|
||||
hi def link ponyCapModError Error
|
||||
|
||||
syn match ponyQuestion +?+
|
||||
hi def link ponyQuestion StorageClass
|
||||
|
||||
syn match ponyAt +@+
|
||||
hi def link ponyAt Delimiter
|
||||
|
||||
syn match ponyAtOpError +@[^ \-[("a-zA-Z_]+
|
||||
syn match ponyAtIdError +@\s\+[^"a-zA-Z_]+
|
||||
hi def link ponyAtIdError Error
|
||||
hi def link ponyAtOpError Error
|
||||
|
||||
syn keyword ponyOp1 and or xor is isnt not consume
|
||||
syn match ponyOp2 +\([=!]=\|[<>]=\|<<\|>>\|@-\|[-+<>*/%&|]\)+
|
||||
hi def link ponyOp1 Operator
|
||||
hi def link ponyOp2 Operator
|
||||
|
||||
" Keywords
|
||||
|
||||
syn keyword ponyUse use
|
||||
hi def link ponyUse Include
|
||||
|
||||
syn keyword ponyStatement return break continue
|
||||
syn keyword ponyKeyword error
|
||||
syn keyword ponyConditional if then else elseif match
|
||||
syn keyword ponyKeyword do end
|
||||
syn keyword ponyKeyword in
|
||||
syn keyword ponyRepeat while repeat until for
|
||||
syn keyword ponyKeyword with
|
||||
syn keyword ponyTry try recover
|
||||
syn keyword ponyKeyword this box
|
||||
syn keyword ponyKeyword as where
|
||||
hi def link ponyStatement Statement
|
||||
hi def link ponyConditional Conditional
|
||||
hi def link ponyRepeat Repeat
|
||||
hi def link ponyKeyword Keyword
|
||||
hi def link ponyTry Exception
|
||||
|
||||
syn keyword ponyTypedef type
|
||||
syn keyword ponyStructure interface trait primitive class actor
|
||||
hi def link ponyTypedef Typedef
|
||||
hi def link ponyStructure Structure
|
||||
|
||||
syn keyword ponyCap iso trn ref val box tag nextgroup=ponyCapMod
|
||||
syn match ponyCapMod contained +[\^\!]+
|
||||
hi def link ponyCap StorageClass
|
||||
hi def link ponyCapMod StorageClass
|
||||
|
||||
syn keyword ponySpecial compiler_intrinsic
|
||||
hi def link ponySpecial Special
|
||||
|
||||
syn keyword ponyAny _
|
||||
hi def link ponyAny Special
|
||||
|
||||
" Parentheses
|
||||
|
||||
syn match ponyParenError +[()]+
|
||||
syn region ponyParen transparent start=+(+ end=+)+ contains=TOP,ponyParenError
|
||||
syn match ponyArrayError +[\[\]]+
|
||||
syn region ponyArray transparent start=+\[+ end=+]+ contains=TOP,ponyArrayError
|
||||
syn match ponyConstError +[{}]+
|
||||
syn region ponyConst transparent start=+{+ end=+}+ contains=TOP,ponyConstError
|
||||
|
||||
hi def link ponyParenError Error
|
||||
hi def link ponyArrayError Error
|
||||
hi def link ponyConstError Error
|
||||
|
||||
" Methods
|
||||
|
||||
syn match ponyIntroducer +=>+
|
||||
hi def link ponyIntroducer Delimiter
|
||||
|
||||
" Comments
|
||||
syn region ponyLineComment start=+//+ end=+$+ contains=ponyTodo keepend
|
||||
syn region ponyNestedComment start=+/\*+ end=+\*/+ contains=ponyTodo,ponyNestedComment
|
||||
syn cluster ponyComment contains=ponyLineComment,ponyNestedComment
|
||||
syn keyword ponyTodo contained TODO FIXME XXX
|
||||
|
||||
hi def link ponyLineComment Comment
|
||||
hi def link ponyNestedComment Comment
|
||||
hi def link ponyTodo Todo
|
||||
|
||||
let b:current_syntax = "pony"
|
||||
Reference in New Issue
Block a user