Fixed allSelectorsSent because a simpler implementation was overriding the original.
[cslatevm.git] / etc / slate.vim
blob51848104e9c6962a9e497ccc5ec4d0275e215d2e
1 " Slate syntax file
2 " Language:     Slate
4 " For version 5.x: Clear all syntax items
5 " For version 6.x: Quit when a syntax file was already loaded
6 if version < 600
7   syntax clear
8 elseif exists("b:current_syntax")
9   finish
10 endif
12 " some Smalltalk keywords and standard methods
13 syn keyword     slateOddballs   True False Nil
14 syn match       slateControl    "\<resend\>"
15 syn match       slateControl    "\^"
16 syn match       slateControl    ":="
17 syn match       slateControl    "=:="
18 syn match       slateControl    "@"
19 syn match       slateIgnore     "_"
20 syn match       slateArgument   ":"
21 syn match       slateStatement  "\."
23 " the block of local variables of a method
24 syn region slateLocalVariables  start="|" end="|" contains=slateInputVariable
26 " the Smalltalk comment
27 syn region slateComment start="\"" skip="\\\"" end="\"" contains=slateEscape
29 " the Smalltalk strings and single characters
30 syn region slateString  start='\'' skip="\\'" end='\'' contains=slateEscape
31 syn match  slateEscape     contained "\\."
32 syn match  slateCharacter       "$."
33 syn match  slateCharacter  "$\\." contains=slateEscape
35 syn case ignore
37 syn match slateInputVariable       contained "\(:\<[a-z_][a-z0-9_]*\>\)"
39 " the symbols prefixed by a '#'
40 " syn match  slateSymbol        "\(#\<[a-z_][a-z0-9_:]*\>\)" contains=slateArgument
41 syn match  slateSymbol  "\(#\<[^'        ]*\>\)" contains=slateArgument
42 syn match  slateSymbol  "\(#'[^']*'\)" contains=slateArgument
44 " some representations of numbers
45 syn match  slateNumber  "\<\d\+\(u\=l\=\|lu\|f\)\>"
46 syn match  slateFloat   "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
47 syn match  slateFloat   "\<\d\+e[-+]\=\d\+[fl]\=\>"
49 syn case match
51 " a try to highlight paren mismatches
52 syn region slateParen   transparent matchgroup=slateParenChars start='(' matchgroup=slateParenChars end=')' matchgroup=NONE contains=ALLBUT,slateParenError
53 syn match  slateParenError      ")"
54 syn region slateBlock   transparent matchgroup=slateBlockChars start='\[' matchgroup=slateBlockChars end='\]' matchgroup=NONE contains=ALLBUT,slateBlockError
55 syn match  slateBlockError      "\]"
56 syn region slateSet     transparent matchgroup=slateSetChars start='{' matchgroup=slateSetChars end='}' matchgroup=NONE contains=ALLBUT,slateSetError
57 syn match  slateSetError        "}"
59 hi link slateParenError slateError
60 hi link slateSetError slateError
61 hi link slateBlockError slateError
63 " synchronization for syntax analysis
64 syn sync minlines=50
66 " Define the default highlighting.
67 " For version 5.7 and earlier: only when not done already
68 " For version 5.8 and later: only when an item doesn't have highlighting yet
69 if version >= 508 || !exists("did_slate_syntax_inits")
70   if version < 508
71     let did_slate_syntax_inits = 1
72     command -nargs=+ HiLink hi link <args>
73   else
74     command -nargs=+ HiLink hi def link <args>
75   endif
77   HiLink slateStatement         PreProc
78   HiLink slateIgnore            PreProc
79   HiLink slateOddballs          Type
80   HiLink slateControl           Label
81   HiLink slateArgument          Label
82   HiLink slateComment           Comment
83   HiLink slateCharacter         Constant
84   HiLink slateString            Constant
85   HiLink slateEscape            Special
86   HiLink slateSymbol            Constant
87   HiLink slateSetChars          Constant
88   HiLink slateParenChars        Delimiter
89   HiLink slateBlockChars        Delimiter
90   HiLink slateNumber            Type
91   HiLink slateFloat             Type
92   HiLink slateError             Error
93   HiLink slateLocalVariables    PreProc
94   HiLink slateInputVariable     Label
96   delcommand HiLink
97 endif
99 let b:current_syntax = "slate"