1
0
mirror of https://github.com/gryf/.vim.git synced 2025-12-17 19:40:29 +01:00
Files
.vim/syntax/pd_opl.vim

72 lines
2.4 KiB
VimL

" Vim syntax file
" Language: OpenUI/OPL
" Maintainer: Roman 'gryf' Dobosz
" $Id: opl.vim,v 1.0 2011/01/09 17:34:11 vimboss Exp $
" Open UI Language
if exists("b:current_syntax")
finish
endif
syn region OPLString start=+"+ end=+"+ contains=@Spell
syn region OPLSString start=+'+ end=+'+ contains=@Spell
syn match OPLNumber "\<\d\+\>" display
syn match OPLFloat "\<\d\+\.\d\+\>"
"syn match OPLFloat "\.\d\+\>"
syn keyword OPLCommentTodo TODO FIXME XXX TBD
syn match OPLLineComment "\/\/.*" contains=@Spell,OPLCommentTodo
syn region OPLComment start="/\*" end="\*/" contains=@Spell,OPLCommentTodo
syn keyword OPLConditional if else when goto
syn keyword OPLRepeat for while
syn keyword OPLConstant TRUE FALSE true false NULL
syn keyword OPLType OuiBooleanT OuiCharT OuiDecimalT OuiFloatT OuiIntegerT
syn keyword OPLType OuiLongT OuiPointerT OuiShortT OuiStringT
syn keyword OPLType array bool char const constant enum float inst
syn keyword OPLType int long message record short string
syn keyword OPLStatement class of return const var module on message
syn keyword OPLStatement initially instance private public type var
syn keyword OPLStatement variable when while
syn keyword OPLOperator and in not div
syn keyword OPLStatement class function nextgroup=OPLFunction skipwhite
syn match OPLFunction "[a-zA-Z_][a-zA-Z0-9_]*" display contained
syn match OPLSpecial "::\~\?\zs\h\w*\ze([^)]*\()\s*\(const\)\?\)\?"
syn match OPLKeyword "\^\w*\~\?"
" Highlight Class and Function names
syn match OPLCustomParen "(" "contains=Paren,cCppParen
syn match OPLCustomFunction "\w\+\s*(" contains=OPLCustomParen
"syn match OPLCustomScope "::"
"syn match OPLCustomClass "\w\+\s*::" contains=OPLCustomScope
" Folding
syn region OPLFold start="{" end="}" transparent fold
"syn sync fromstart
setlocal foldmethod=syntax
setlocal nofoldenable
" Define the default highliting
hi def link OPLComment Comment
hi def link OPLLineComment Comment
hi def link OPLNumber Number
hi def link OPLFloat Float
hi def link OPLFunction Function
hi def link OPLConstant Constant
hi def link OPLStatement Statement
hi def link OPLString String
hi def link OPLSString String
hi def link OPLType Type
hi def link OPLConditional Conditional
hi def link OPLCommentTodo Todo
hi def link OPLSpecial Special
hi def link OPLKeyword Keyword
hi def link OPLCustomFunction Special
let b:current_syntax = "opl"
" vim: ts=8