blob: 7f7d9e280623fe9184abfa15c58d119497e99ea8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
" Vim syntax file
" Language: Scala
" Version: 0.1
" Maintainer: Raphael Haberer-Proust <raphael.haberer-proust at epfl.ch>
" URL: http://diwww.epfl.ch/~haberer/syntax/scala.html
" Last Change: 2004 April 18
" Disclaimer: It's an absolut basic, very simple and by far not finished
" syntax file! It only recognizes basic keywords and constructs like comments
" any help is welcome
" Remove any old syntax stuff
syn clear
" syntax highlighting for words that are not identifiers:
" int unit double String Array byte short char long float
syn keyword scalaExternal import package
syn keyword scalaConditional if then else
syn keyword scalaRepeat while for do
syn keyword scalaType boolean int double byte short char long float
syn keyword scalaType unit
syn keyword scalaType val with type var yield
syn keyword scalaStatement return
syn keyword scalaBoolean true false
syn keyword scalaConstant null
syn keyword scalaTypedef this super
syn keyword scalaLangClass String Array
syn keyword scalaScopeDecl private protected override
syn keyword scalaStorageClass abstract final sealed
syn keyword scalaExceptions throw try catch finally
syn keyword scalaClassDecl extends
" TODO differentiate the keyword class from MyClass.class -> use a match here
syn keyword scalaTypedef class
syn keyword scalaTypedef case
syn keyword scalaTypedef trait
syn match scalaTypedef "\s*\<object\>"
syn keyword scalaOperator new
" same number definition as in java.vim
syn match scalaNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
syn match scalaNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
syn match scalaNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
syn match scalaNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
syn region scalaString start=+"+ end=+"+
" Functions
" def [name] [(prototype)] {
"
syn match scalaFunction "\s*\<def\>"
" Comments
syn region scalaComment start="/\*" end="\*/"
syn match scalaLineComment "//.*"
if !exists("did_scala_syntax_inits")
let did_scala_syntax_inits = 1
" The default methods for highlighting. Can be overridden later
hi link scalaExternal Include
hi link scalaStatement Statement
hi link scalaConditional Conditional
hi link scalaRepeat Repeat
hi link scalaType Type
hi link scalaTypedef Typedef
hi link scalaBoolean Boolean
hi link scalaFunction Function
hi link scalaLangClass Constant
hi link scalaConstant Constant
hi link scalaScopeDecl scalaStorageClass
hi link scalaClassDecl scalaStorageClass
hi link scalaStorageClass StorageClass
hi link scalaExceptions Exception
hi link scalaOperator Operator
hi link scalaNumber Number
hi link scalaString String
hi link scalaComment Comment
hi link scalaLineComment Comment
endif
let b:current_syntax = "scala"
" if you want to override default methods for highlighting
"hi Conditional term=bold ctermfg=Cyan guifg=#80a0ff
|