2014-07-10 21:05:51 -07:00
|
|
|
" Vim syntax file
|
2022-06-17 11:38:21 -07:00
|
|
|
" Language: Icon
|
|
|
|
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
|
|
|
" Previous Maintainer: Wendell Turner <wendell@adsi-m4.com> (invalid last known address)
|
|
|
|
" Last Change: 2022 Jun 16
|
|
|
|
" Contributor: eschen@alumni.princeton.edu 2002.09.18
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" Prelude {{{1
|
2017-04-28 12:06:44 -07:00
|
|
|
if exists("b:current_syntax")
|
2014-07-10 21:05:51 -07:00
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
syn iskeyword @,48-57,_,192-255,&
|
|
|
|
|
|
|
|
" Not Top {{{1
|
|
|
|
syn cluster iconNotTop contains=iconDocField,iconIncluded,iconStringSpecial,iconTodo,@Spell
|
|
|
|
|
|
|
|
" Whitespace errors {{{1
|
2014-07-10 21:05:51 -07:00
|
|
|
if exists("icon_space_errors")
|
2022-06-17 11:38:21 -07:00
|
|
|
if !exists("icon_no_trail_space_error")
|
|
|
|
syn match iconSpaceError "\s\+$" display excludenl
|
|
|
|
endif
|
|
|
|
if !exists("icon_no_tab_space_error")
|
|
|
|
syn match iconSpaceError " \+\t"me=e-1 display
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
endif
|
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" Reserved words {{{1
|
|
|
|
syn keyword iconReserved break by case create default do else every fail if
|
|
|
|
syn keyword iconReserved initial next not of repeat return suspend then to
|
|
|
|
syn keyword iconReserved until while
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
syn keyword iconStorageClass global static local record invocable
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
syn keyword iconLink link
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" Procedure definitions {{{1
|
|
|
|
if exists("icon_no_procedure_fold")
|
|
|
|
syn region iconProcedure matchgroup=iconReserved start="\<procedure\>" end="\<end\>" contains=ALLBUT,@iconNotTop
|
|
|
|
else
|
|
|
|
syn region iconProcedure matchgroup=iconReserved start="\<procedure\>" end="\<end\>" contains=ALLBUT,@iconNotTop fold
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" Keywords {{{1
|
|
|
|
syn keyword iconKeyword &allocated &ascii &clock &collections &cset ¤t
|
|
|
|
syn keyword iconKeyword &date &dateline &digits &dump &e &error &errornumber
|
|
|
|
syn keyword iconKeyword &errortext &errorvalue &errout &fail &features &file
|
|
|
|
syn keyword iconKeyword &host &input &lcase &letters &level &line &main &null
|
|
|
|
syn keyword iconKeyword &output &phi &pi &pos &progname &random ®ions
|
|
|
|
syn keyword iconKeyword &source &storage &subject &time &trace &ucase &version
|
|
|
|
|
|
|
|
" Graphics keywords
|
|
|
|
syn keyword iconKeyword &col &control &interval &ldrag &lpress &lrelease
|
|
|
|
syn keyword iconKeyword &mdrag &meta &mpress &mrelease &rdrag &resize &row
|
|
|
|
syn keyword iconKeyword &rpress &rrelease &shift &window &x &y
|
|
|
|
|
|
|
|
" Functions {{{1
|
|
|
|
syn keyword iconFunction abs acos any args asin atan bal callout center char
|
|
|
|
syn keyword iconFunction chdir close collect copy cos cset delay delete detab
|
|
|
|
syn keyword iconFunction display dtor entab errorclear exit exp find flush
|
|
|
|
syn keyword iconFunction function get getch getche getenv iand icom image
|
|
|
|
syn keyword iconFunction insert integer ior ishift ixor kbhit key left list
|
|
|
|
syn keyword iconFunction loadfunc log many map match member move name numeric
|
|
|
|
syn keyword iconFunction open ord pop pos proc pull push put read reads real
|
|
|
|
syn keyword iconFunction remove rename repl reverse right rtod runerr save
|
|
|
|
syn keyword iconFunction seek self seq serial set sin sort sortf sqrt stop
|
|
|
|
syn keyword iconFunction string system tab table tan trim type upto variable
|
|
|
|
syn keyword iconFunction where write writes
|
|
|
|
|
|
|
|
" Graphics functions
|
|
|
|
syn keyword iconFunction Active Alert Bg CenterString Clip Clone Color
|
|
|
|
syn keyword iconFunction ColorDialog ColorValue CopyArea Couple DrawArc
|
|
|
|
syn keyword iconFunction DrawCircle DrawCurve DrawImage DrawLine DrawPoint
|
|
|
|
syn keyword iconFunction DrawPolygon DrawRectangle DrawSegment DrawString
|
|
|
|
syn keyword iconFunction Enqueue EraseArea Event Fg FillArc FillCircle
|
|
|
|
syn keyword iconFunction FillPolygon FillRectangle Font FreeColor GotoRC
|
|
|
|
syn keyword iconFunction GotoXY LeftString Lower NewColor Notice OpenDialog
|
|
|
|
syn keyword iconFunction PaletteChars PaletteColor PaletteGrays PaletteKey
|
|
|
|
syn keyword iconFunction Pattern Pending Pixel Raise ReadImage RightString
|
|
|
|
syn keyword iconFunction SaveDialog SelectDialog Shade TextDialog TextWidth
|
|
|
|
syn keyword iconFunction ToggleDialog Uncouple WAttrib WClose WDefault WDelay
|
|
|
|
syn keyword iconFunction WDone WFlush WOpen WQuit WRead WReads WriteImage
|
|
|
|
syn keyword iconFunction WSync WWrite WWrites
|
|
|
|
|
|
|
|
" String and character constants {{{1
|
|
|
|
syn match iconStringSpecial "\\x\x\{2}\|\\\o\{3\}\|\\[bdeflnrtv\"\'\\]\|\\^[a-zA-Z0-9]" contained
|
|
|
|
syn match iconStringSpecial "\\$" contained
|
|
|
|
syn match iconStringSpecial "_\ze\s*$" contained
|
|
|
|
|
|
|
|
syn region iconString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=iconStringSpecial
|
|
|
|
syn region iconCset start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=iconStringSpecial
|
|
|
|
|
|
|
|
" Bracket errors {{{1
|
|
|
|
|
|
|
|
if !exists("icon_no_bracket_errors")
|
|
|
|
" catch errors caused by wrong brackets (ACE 2002.09.18)
|
|
|
|
syn cluster iconBracketGroup contains=iconBracketError,iconIncluded
|
|
|
|
syn region iconBracket start='\[' end='\]' contains=ALLBUT,@iconBracketGroup,@iconNotTop transparent
|
|
|
|
syn match iconBracketError "]"
|
|
|
|
|
|
|
|
"catch errors caused by wrong braces (ACE 2002.09.18)
|
|
|
|
syn cluster iconBraceGroup contains=iconBraceError,iconIncluded
|
|
|
|
syn region iconBrace start='{' end='}' contains=ALLBUT,@iconBraceGroup,@iconNotTop transparent
|
|
|
|
syn match iconBraceError "}"
|
|
|
|
|
|
|
|
"catch errors caused by wrong parenthesis
|
|
|
|
syn cluster iconParenGroup contains=iconParenError,iconIncluded
|
|
|
|
syn region iconParen start='(' end=')' contains=ALLBUT,@iconParenGroup,@iconNotTop transparent
|
|
|
|
syn match iconParenError ")"
|
|
|
|
end
|
|
|
|
|
|
|
|
" Numbers {{{1
|
|
|
|
syn case ignore
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" integer
|
|
|
|
syn match iconInteger "\<\d\+\>"
|
|
|
|
syn match iconInteger "\<\d\{1,2}[rR][a-zA-Z0-9]\+\>"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" real with trailing dot
|
|
|
|
syn match iconReal "\<\d\+\."
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" real, with dot, optional exponent
|
|
|
|
syn match iconReal "\<\d\+\.\d*\%(e[-+]\=\d\+\)\=\>"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" real, with leading dot, optional exponent
|
|
|
|
syn match iconReal "\.\d\+\%(e[-+]\=\d\+\)\=\>"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" real, without dot, with exponent
|
|
|
|
syn match iconReal "\<\d\+e[-+]\=\d\+\>"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
syn cluster iconNumber contains=iconInteger,iconReal
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
syn case match
|
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" Comments {{{1
|
|
|
|
syn keyword iconTodo TODO FIXME XXX BUG contained
|
|
|
|
syn match iconComment "#.*" contains=iconTodo,iconSpaceError,@Spell
|
|
|
|
syn match iconDocField "^#\s\+\zs\%(File\|Subject\|Authors\=\|Date\|Version\|Links\|Requires\|See also\):" contained
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
if exists("icon_no_comment_fold")
|
|
|
|
syn region iconDocumentation start="\%^#\{2,}\%(\n#\+\%(\s\+.*\)\=\)\+" end="^#\+\n\s*$" contains=iconDocField keepend
|
|
|
|
else
|
|
|
|
syn region iconMultilineComment start="^\s*#.*\n\%(^\s*#\)\@=" end="^\s*#.*\n\%(^\s*#\)\@!" contains=iconComment keepend fold transparent
|
|
|
|
syn region iconDocumentation start="\%^#\{2,}\%(\n#\)\+" end="^#\+\n\%([^#]\|$\)" contains=iconDocField keepend fold
|
|
|
|
endif
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" Preprocessor {{{1
|
|
|
|
syn match iconPreInclude '^\s*\zs$\s*include\>\ze\s*"' nextgroup=iconIncluded skipwhite
|
|
|
|
syn match iconIncluded '"[^"]\+"' contained
|
|
|
|
|
|
|
|
syn region iconPreDefine start="^\s*\zs$\s*\%(define\|undef\)\>" end="$" oneline contains=ALLBUT,@iconPreGroup
|
|
|
|
syn region iconPreProc start="^\s*\zs$\s*\%(error\|line\)\>" end="$" oneline contains=ALLBUT,@iconPreGroup
|
|
|
|
syn region iconPreConditional start="^\s*\zs$\s*\%(if\|ifdef\|ifndef\|elif\|else\|endif\)\>" end="$" oneline contains=iconComment,iconString,iconCset,iconNumber,iconSpaceError
|
|
|
|
|
|
|
|
syn cluster iconPreGroup contains=iconPreCondit,iconPreInclude,iconIncluded,iconPreDefine
|
|
|
|
|
|
|
|
syn match iconPreSymbol "_V\d\+"
|
|
|
|
syn keyword iconPreSymbol _ACORN _AMIGA _ARM_FUNCTIONS _ASCII _CALLING
|
|
|
|
syn keyword iconPreSymbol _CO_EXPRESSIONS _COMPILED _DIRECT_EXECUTION
|
|
|
|
syn keyword iconPreSymbol _DOS_FUNCTIONS _EBCDIC _EVENT_MONITOR
|
|
|
|
syn keyword iconPreSymbol _EXECUTABLE_IMAGES _EXTERNAL_FUNCTIONS
|
|
|
|
syn keyword iconPreSymbol _EXTERNAL_VALUES _INTERPRETED _KEYBOARD_FUNCTIONS
|
|
|
|
syn keyword iconPreSymbol _LARGE_INTEGERS _MACINTOSH _MEMORY_MONITOR _MSDOS
|
|
|
|
syn keyword iconPreSymbol _MSDOS_386 _MULTIREGION _MULTITASKING _OS2 _PIPES
|
|
|
|
syn keyword iconPreSymbol _PORT _PRESENTATION_MGR _RECORD_IO _STRING_INVOKE
|
|
|
|
syn keyword iconPreSymbol _SYSTEM_FUNCTION _UNIX _VISUALIZATION _VMS
|
|
|
|
syn keyword iconPreSymbol _WINDOW_FUNCTIONS _X_WINDOW_SYSTEM
|
|
|
|
|
|
|
|
" Syncing {{{1
|
2014-07-10 21:05:51 -07:00
|
|
|
if !exists("icon_minlines")
|
2022-06-17 11:38:21 -07:00
|
|
|
let icon_minlines = 250
|
2014-07-10 21:05:51 -07:00
|
|
|
endif
|
|
|
|
exec "syn sync ccomment iconComment minlines=" . icon_minlines
|
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" Default Highlighting {{{1
|
2017-04-28 12:06:44 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
hi def link iconParenError iconError
|
|
|
|
hi def link iconBracketError iconError
|
|
|
|
hi def link iconBraceError iconError
|
|
|
|
hi def link iconSpaceError iconError
|
|
|
|
hi def link iconError Error
|
2017-04-28 12:14:34 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
hi def link iconInteger Number
|
|
|
|
hi def link iconReal Float
|
|
|
|
hi def link iconString String
|
|
|
|
hi def link iconCset String
|
|
|
|
hi def link iconStringSpecial SpecialChar
|
2017-04-28 12:14:34 -07:00
|
|
|
|
|
|
|
hi def link iconPreProc PreProc
|
2022-06-17 11:38:21 -07:00
|
|
|
hi def link iconIncluded iconString
|
|
|
|
hi def link iconPreInclude Include
|
|
|
|
hi def link iconPreSymbol iconPreProc
|
|
|
|
hi def link iconPreDefine Define
|
|
|
|
hi def link iconPreConditional PreCondit
|
2017-04-28 12:14:34 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
hi def link iconStatement Statement
|
|
|
|
hi def link iconStorageClass StorageClass
|
|
|
|
hi def link iconFunction Function
|
|
|
|
hi def link iconReserved Label
|
|
|
|
hi def link iconLink Include
|
|
|
|
hi def link iconKeyword Keyword
|
2017-04-28 12:14:34 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
hi def link iconComment Comment
|
|
|
|
hi def link iconTodo Todo
|
|
|
|
hi def link iconDocField SpecialComment
|
|
|
|
hi def link iconDocumentation Comment
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" Postscript {{{1
|
2014-07-10 21:05:51 -07:00
|
|
|
let b:current_syntax = "icon"
|
|
|
|
|
2022-06-17 11:38:21 -07:00
|
|
|
" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:
|