source: devel-tools/trunk/vim/syntax/refal.vim @ 3476

Last change on this file since 3476 was 3476, checked in by orlov, 13 years ago
  • tfunc and public keywords highlighting.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1" Vim syntax file
2" Language:     Refal
3" Maintainer:   Andrey Slepuhin <pooh@msu.ru>
4" Last Change:  $Date: 2008-03-10 16:30:39 +0000 (Mon, 10 Mar 2008) $ by Anton Orlov <orlov@mccme.ru>
5
6" For version 5.x: Clear all syntax items
7" For version 6.x: Quit when a syntax file was already loaded
8if version < 600
9        syntax clear
10elseif exists("b:current_syntax")
11        finish
12endif
13
14if version >= 600
15        setlocal iskeyword=a-z,A-Z,48-57,-,_,.,?,!
16else
17        set iskeyword=a-z,A-Z,48-57,-,_,.,?,!
18endif
19
20syn match       Directive       "\$\(module\|use\|import\|t\=func?\=\|const\)"
21syn match       Directive       "\$\(box\|table\|vector\|string\|channel\)"
22syn match       Directive       "\$\(traceall\|trace\|extern\|public\)"
23syn match       Operator        "\$\(r\|l\|iter\)"
24syn match       Operator        "\$\(fail\|error\|trap\|with\)"
25syn match       String          "[A-Z?!_][A-Za-z0-9_\-?!.]*"
26syn region      String          start="\"" end="\"" skip="\\."
27syn region      String          start="\'" end="\'" skip="\\."
28syn match       Variable        "[estv]\.\=[A-Za-z0-9_\-?!]*" contains=VarType
29syn match       VarType         "[estv]" contained nextgroup=VarName
30syn match       VarName         "[A-Za-z0-9_\-?]*" contained
31syn match       VarName         "\.[A-Za-z0-9_\-?]*"hs=s+1 contained
32
33syn match       ParenError      ")"
34syn match       FunError        ">"
35syn match       BlockError      "}"
36syn match       CommentError    "*/"
37
38if exists("refal_space_errors")
39        syn match       SpaceError      "\s*$"
40endif
41
42syn match       Comment         "//.*" contains=SpaceError
43syn match       Comment         "\*.*" contains=SpaceError
44syn region      Comment         start="/\*" end="\*/"
45
46syn region      ObjExpression   start="(" end=")" contains=@ObjExpression2
47syn region      FunExpression   matchgroup=Funcall start="<[A-Z?!][A-Za-z0-9_\-?!.]*"hs=s+1 matchgroup=FunExpression end=">" contains=@FunExpression2
48syn region      FunExpression   matchgroup=Funcall start="<\"[A-Za-z0-9_\-?\+\*\/\\\ \.\,\:\!<>=]*\""hs=s+1 matchgroup=FunExpression end=">" contains=@FunExpression2
49syn region      Block           start="{" end="}" contains=@Block2
50syn cluster     ObjExpression2  contains=String,Variable,ObjExpression,FunExpression,FunError,SpaceError,Operator,Comment
51syn cluster     FunExpression2  contains=String,Variable,ObjExpression,FunExpression,ParenError,SpaceError,Operator,Comment
52syn cluster     Block2          contains=String,Variable,ObjExpression,FunExpression,Block,ParenError,FunError,SpaceError,Operator,Comment
53
54syntax sync ccomment
55syntax sync lines=200
56
57" Define the default highlighting.
58" For version 5.7 and earlier: only when not done already
59" For version 5.8 and later: only when an item doesn't have highlighting yet
60if version >= 508 || !exists("did_refal_syntax_inits")
61        if version < 508
62                let did_refal_syntax_inits = 1
63                command -nargs=+ HiLink hi link <args>
64        else
65                command -nargs=+ HiLink hi def link <args>
66        endif
67
68        HiLink Directive        Include
69        hi link String          Identifier
70"       HiLink Variable         Type
71"       HiLink VarType          Type
72        HiLink VarType          Operator
73        HiLink VarName          Type
74        HiLink ParenError       Error
75        HiLink FunError         Error
76        HiLink BlockError       Error
77        HiLink SpaceError       Error
78        HiLink FunCall          Statement
79"       HiLink ObjExpression    Error
80
81        delcommand HiLink
82endif
83
84let b:current_syntax = "refal"
Note: See TracBrowser for help on using the repository browser.