[7.2.442] Copy/paste with OpenOffice doesn't work.
[vim_mainline.git] / runtime / syntax / scilab.vim
blob1bfc0036787b4130b926071450c66107c1e796db
2 " Vim syntax file
3 " Language   :  Scilab
4 " Maintainer :  Benoit Hamelin
5 " File type  :  *.sci (see :help filetype)
6 " History
7 "       28jan2002       benoith         0.1             Creation.  Adapted from matlab.vim.
8 "       04feb2002       benoith         0.5             Fixed bugs with constant highlighting.
12 " For version 5.x: Clear all syntax items
13 " For version 6.x: Quit when a syntax file was already loaded
14 if version < 600
15   syntax clear
16 elseif exists("b:current_syntax")
17   finish
18 endif
21 " Reserved words.
22 syn keyword scilabStatement                     abort clear clearglobal end exit global mode predef quit resume
23 syn keyword scilabStatement                     return
24 syn keyword scilabFunction                      function endfunction funptr
25 syn keyword scilabPredicate                     null iserror isglobal
26 syn keyword scilabKeyword                       typename
27 syn keyword scilabDebug                         debug pause what where whereami whereis who whos
28 syn keyword scilabRepeat                        for while break
29 syn keyword scilabConditional           if then else elseif
30 syn keyword scilabMultiplex                     select case
32 " Reserved constants.
33 syn match scilabConstant                        "\(%\)[0-9A-Za-z?!#$]\+"
34 syn match scilabBoolean                         "\(%\)[FTft]\>"
36 " Delimiters and operators.
37 syn match scilabDelimiter                       "[][;,()]"
38 syn match scilabComparison                      "[=~]="
39 syn match scilabComparison                      "[<>]=\="
40 syn match scilabComparison                      "<>"
41 syn match scilabLogical                         "[&|~]"
42 syn match scilabAssignment                      "="
43 syn match scilabArithmetic                      "[+-]"
44 syn match scilabArithmetic                      "\.\=[*/\\]\.\="
45 syn match scilabArithmetic                      "\.\=^"
46 syn match scilabRange                           ":"
47 syn match scilabMlistAccess                     "\."
49 syn match scilabLineContinuation        "\.\{2,}"
51 syn match scilabTransposition           "[])a-zA-Z0-9?!_#$.]'"lc=1
53 " Comments and tools.
54 syn keyword scilabTodo                          TODO todo FIXME fixme TBD tbd   contained
55 syn match scilabComment                         "//.*$" contains=scilabTodo
57 " Constants.
58 syn match scilabNumber                          "[0-9]\+\(\.[0-9]*\)\=\([DEde][+-]\=[0-9]\+\)\="
59 syn match scilabNumber                          "\.[0-9]\+\([DEde][+-]\=[0-9]\+\)\="
60 syn region scilabString                         start=+'+ skip=+''+ end=+'+             oneline
61 syn region scilabString                         start=+"+ end=+"+                               oneline
63 " Identifiers.
64 syn match scilabIdentifier                      "\<[A-Za-z?!_#$][A-Za-z0-9?!_#$]*\>"
65 syn match scilabOverload                        "%[A-Za-z0-9?!_#$]\+_[A-Za-z0-9?!_#$]\+"
68 " Define the default highlighting.
69 " For version 5.7 and earlier: only when not done already
70 " For version 5.8 and later: only when an item doesn't have highlighting yet
71 if version >= 508 || !exists("did_scilab_syntax_inits")
72         if version < 508
73                 let did_scilab_syntax_inits = 1
74                 command -nargs=+ HiLink hi link <args>
75         else
76                 command -nargs=+ HiLink hi def link <args>
77         endif
79         HiLink  scilabStatement                         Statement
80         HiLink  scilabFunction                          Keyword
81         HiLink  scilabPredicate                         Keyword
82         HiLink  scilabKeyword                           Keyword
83         HiLink  scilabDebug                                     Debug
84         HiLink  scilabRepeat                            Repeat
85         HiLink  scilabConditional                       Conditional
86         HiLink  scilabMultiplex                         Conditional
88         HiLink  scilabConstant                          Constant
89         HiLink  scilabBoolean                           Boolean
91         HiLink  scilabDelimiter                         Delimiter
92         HiLink  scilabMlistAccess                       Delimiter
93         HiLink  scilabComparison                        Operator
94         HiLink  scilabLogical                           Operator
95         HiLink  scilabAssignment                        Operator
96         HiLink  scilabArithmetic                        Operator
97         HiLink  scilabRange                                     Operator
98         HiLink  scilabLineContinuation          Underlined
99         HiLink  scilabTransposition                     Operator
101         HiLink  scilabTodo                                      Todo
102         HiLink  scilabComment                           Comment
104         HiLink  scilabNumber                            Number
105         HiLink  scilabString                            String
107         HiLink  scilabIdentifier                        Identifier
108         HiLink  scilabOverload                          Special
110         delcommand HiLink
111 endif
113 let b:current_syntax = "scilab"
115 "EOF    vim: ts=4 noet tw=100 sw=4 sts=0