summaryrefslogtreecommitdiff
path: root/syntax/java.vim
blob: bbbd9af2cd0f019657a73a1e01abe0c79734020a (plain)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182

" note do not change the order...
" some of them are overridding privous regrex 

"this code made with build-in syntax regrex(and key words), and with some custome regrex(and
"key words)

""""""""""""""""""""""""""""""""""""""""""""""""""""""""


" gruvbox (dark)
"let orange = "#d65d0e" "special color for numbers
"let black = "#282828"
"let red = "#cc241d"
"let green = "#98971a"
"let yellow = "#d79921"
"let blue = "#458588"
"let purple = "#b16286"
"let cyan = "#689d6a"
"let white = "#a89984"


" one dark
let orange = "#d19a66" "special color for numbers
let black = "#282c34"
let red = "#E06C75"
let green = "#98c379"
let yellow = "#E5C07B"
let blue = "#61AFEF"
let purple = "#C678DD"
let cyan = "#56B6C2"
let white = "#ABB2BF"



" you may chage the color according to your will :)


" main color (for left over words)
syn match main "\w"
execute "highlight main ctermfg=4  guifg=".red

" numbers
syn match posNum "\d"
execute "highlight posNum ctermfg=4  guifg=".orange

" method names()
syn match class ".\w*\((\)\@="
execute "highlight class ctermfg=4  guifg=".blue

"execute "highlight names which contains numbers
syn match main "\v(\a)\w*\d"
execute "highlight main ctermfg=4  guifg=".red


"all regrex works
" /^import (+);$/mg 
" import \zs.*\ze
" \v(^import\s+)@<=.*;

" imported packages 
syn match importName "\v(^import\s+)@<=.*;"
execute "highlight importName ctermfg=4  guifg=".yellow

" import 
syn match importWord "import "
execute "highlight importWord ctermfg=4  guifg=".purple

" package name
syn match packageName "\v(^package\s+)@<=.*;"
execute "highlight packageName ctermfg=4  guifg=".yellow

" package 
syn match packageWord "package "
execute "highlight packageWord ctermfg=4  guifg=".purple

"ex: int, double, char
execute "highlight javaType ctermfg=4  guifg=".purple

"ex: static, throws
execute "highlight javaStorageClass ctermfg=4  guifg=".purple


"class name... basically starts with caps letter
syntax match ClassName display '\<\([A-Z][a-z0-9]*\)\+\>'
syntax match ClassName display '\.\@<=\*'
highlight link ClassName Identifier
execute "highlight ClassName ctermfg=4  guifg=".yellow

" Just some special color, why not?  
" syn match print " System.out."
" execute "highlight print ctermfg=4  guifg=".yellow

"objects (ex: String) 
execute "highlight Constant ctermfg=4  guifg=".yellow

" class
syn match javaClassDecl2 " class\> "
execute "highlight javaClassDecl2 ctermfg=4  guifg=".purple

" package
execute "highlight javaExternal ctermfg=4  guifg=".purple

"if else switch
execute "highlight javaConditional ctermfg=4  guifg=".purple

"while for do 
execute "highlight javaRepeat ctermfg=4  guifg=".purple

"true flase
execute "highlight javaBoolean ctermfg=4  guifg=".orange


" null
syn match null "\v[ =]null[; ]"
execute "highlight null ctermfg=4  guifg=".orange


" this super
execute "highlight javaTypedef ctermfg=4  guifg=".purple
		
" var new instanceof
execute "highlight javaOperator ctermfg=4  guifg=".purple
	
" return
execute "highlight javaStatement ctermfg=4  guifg=".purple

" static synchronized transient volatile final strictfp serializable
execute "highlight javaStorageClass ctermfg=4  guifg=".purple

"throw try catch finally
execute "highlight javaExceptions ctermfg=4  guifg=".purple

" assert
execute "highlight javaAssert ctermfg=4  guifg=".purple

" synchronized throws
execute "highlight javaMethodDecl ctermfg=4  guifg=".red

" extends implements interface
execute "highlight javaClassDecl ctermfg=4  guifg=".red

" interface 
execute "highlight javaClassDecl ctermfg=4  guifg=".purple

" break continue skipwhite
execute "highlight javaBranch ctermfg=4  guifg=".purple

" public protected private abstract
execute "highlight javaScopeDecl ctermfg=4  guifg=".purple


""""""""""""""""""""""""""""""""""""""'
" java 9...
" module transitive
execute "highlight javaModuleStorageClass ctermfg=4  guifg=".purple


" open requires exports opens uses provides 
execute "highlight javaModuleStmt ctermfg=4  guifg=".yellow


" to with
execute "highlight javaModuleExternal ctermfg=4  guifg=".red


"""""""""""""""""""""""""""""""""""""""""
" lambda
execute "highlight javaLambdaDef ctermfg=4  guifg=".cyan


""""""""""""""""""""""""""""""""""""""""""
" clone equals finalize getClass hashCode
" notify notifyAll toString wait
execute "highlight javaLangObject ctermfg=4  guifg=".yellow





""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""