79 lines
2.4 KiB
VimL
79 lines
2.4 KiB
VimL
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
syntax match jackError "\v^\s*[A-Za-z_]+"
|
|
|
|
syntax match jackIdentifier "\v<Math>"
|
|
syntax match jackIdentifier "\v<String>"
|
|
syntax match jackIdentifier "\v<Array>"
|
|
syntax match jackIdentifier "\v<Output>"
|
|
syntax match jackIdentifier "\v<Screen>"
|
|
syntax match jackIdentifier "\v<Keyboard>"
|
|
syntax match jackIdentifier "\v<Memory>"
|
|
syntax match jackIdentifier "\v<Sys>"
|
|
|
|
syntax match jackKeyword "\v\s*<class>"
|
|
syntax match jackFunction "\v\s*<constructor>"
|
|
syntax match jackFunction "\v\s*<method>"
|
|
syntax match jackFunction "\v\s*<function>"
|
|
|
|
syntax match jackType "\v<int>"
|
|
syntax match jackType "\v<boolean>"
|
|
syntax match jackType "\v<char>"
|
|
syntax match jackType "\v<void>"
|
|
|
|
syntax match jackKeyword "\v\s*<var>"
|
|
syntax match jackKeyword "\v\s*<static>"
|
|
syntax match jackKeyword "\v\s*<field>"
|
|
|
|
syntax match jackConditional "\v\s*<let>"
|
|
syntax match jackConditional "\v\s*<do>"
|
|
syntax match jackConditional "\v\s*<if>"
|
|
syntax match jackConditional "\v\s*<else>"
|
|
syntax match jackConditional "\v\s*<while>"
|
|
syntax match jackConditional "\v\s*<return>"
|
|
|
|
syntax match jackConstant "\v<true>"
|
|
syntax match jackConstant "\v<false>"
|
|
syntax match jackConstant "\v<null>"
|
|
|
|
syntax match jackKeyword "\v<this>"
|
|
|
|
syntax match jackOperator "\v\+"
|
|
syntax match jackOperator "\v-"
|
|
syntax match jackOperator "\v\*"
|
|
syntax match jackOperator "\v/"
|
|
syntax match jackOperator "\v\&"
|
|
syntax match jackOperator "\v\|"
|
|
syntax match jackOperator "\v\~"
|
|
syntax match jackOperator "\v\<"
|
|
syntax match jackOperator "\v\>"
|
|
|
|
syntax match jackNumber "\v<([1-9][0-9]*|[0-9])>"
|
|
syntax region jackString start=/\v"/ skip=/\v\\./ end=/\v"/
|
|
|
|
syntax match jackTodo "\vTODO:?" contained
|
|
syntax match jackTodo "\vFIXME:?" contained
|
|
syntax match jackTodo "\vXXX:?" contained
|
|
|
|
syntax match jackComment "\v//.*$" contains=jackTodo
|
|
syntax region jackComment start="\v/\*\*" end="\v\*/" contains=jackTodo
|
|
syntax region jackComment start="\v/\*" end="\v\*/" contains=jackTodo
|
|
|
|
highlight link jackError Error
|
|
highlight link jackIdentifier Identifier
|
|
highlight link jackString String
|
|
highlight link jackComment Comment
|
|
highlight link jackTodo Todo
|
|
highlight link jackFunction Function
|
|
highlight link jackConditional Conditional
|
|
highlight link jackType Type
|
|
highlight link jackConstant Constant
|
|
highlight link jackOperator Operator
|
|
highlight link jackKeyword Keyword
|
|
highlight link jackString String
|
|
highlight link jackNumber Number
|
|
|
|
let b:current_syntax = "jack"
|