gruvbox.vim 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288
  1. " -----------------------------------------------------------------------------
  2. " File: gruvbox.vim
  3. " Description: Retro groove color scheme for Vim
  4. " Author: morhetz <morhetz@gmail.com>
  5. " Source: https://github.com/morhetz/gruvbox
  6. " Last Modified: 12 Aug 2017
  7. " -----------------------------------------------------------------------------
  8. " Supporting code -------------------------------------------------------------
  9. " Initialisation: {{{
  10. if version > 580
  11. hi clear
  12. if exists("syntax_on")
  13. syntax reset
  14. endif
  15. endif
  16. let g:colors_name='gruvbox'
  17. if !(has('termguicolors') && &termguicolors) && !has('gui_running') && &t_Co != 256
  18. finish
  19. endif
  20. " }}}
  21. " Global Settings: {{{
  22. if !exists('g:gruvbox_bold')
  23. let g:gruvbox_bold=1
  24. endif
  25. if !exists('g:gruvbox_italic')
  26. if has('gui_running') || $TERM_ITALICS == 'true'
  27. let g:gruvbox_italic=1
  28. else
  29. let g:gruvbox_italic=0
  30. endif
  31. endif
  32. if !exists('g:gruvbox_undercurl')
  33. let g:gruvbox_undercurl=1
  34. endif
  35. if !exists('g:gruvbox_underline')
  36. let g:gruvbox_underline=1
  37. endif
  38. if !exists('g:gruvbox_inverse')
  39. let g:gruvbox_inverse=1
  40. endif
  41. if !exists('g:gruvbox_guisp_fallback') || index(['fg', 'bg'], g:gruvbox_guisp_fallback) == -1
  42. let g:gruvbox_guisp_fallback='NONE'
  43. endif
  44. if !exists('g:gruvbox_improved_strings')
  45. let g:gruvbox_improved_strings=0
  46. endif
  47. if !exists('g:gruvbox_improved_warnings')
  48. let g:gruvbox_improved_warnings=0
  49. endif
  50. if !exists('g:gruvbox_termcolors')
  51. let g:gruvbox_termcolors=256
  52. endif
  53. if !exists('g:gruvbox_invert_indent_guides')
  54. let g:gruvbox_invert_indent_guides=0
  55. endif
  56. if exists('g:gruvbox_contrast')
  57. echo 'g:gruvbox_contrast is deprecated; use g:gruvbox_contrast_light and g:gruvbox_contrast_dark instead'
  58. endif
  59. if !exists('g:gruvbox_contrast_dark')
  60. let g:gruvbox_contrast_dark='medium'
  61. endif
  62. if !exists('g:gruvbox_contrast_light')
  63. let g:gruvbox_contrast_light='medium'
  64. endif
  65. let s:is_dark=(&background == 'dark')
  66. " }}}
  67. " Palette: {{{
  68. " setup palette dictionary
  69. let s:gb = {}
  70. " fill it with absolute colors
  71. let s:gb.dark0_hard = ['#1d2021', 234] " 29-32-33
  72. let s:gb.dark0 = ['#282828', 235] " 40-40-40
  73. let s:gb.dark0_soft = ['#32302f', 236] " 50-48-47
  74. let s:gb.dark1 = ['#3c3836', 237] " 60-56-54
  75. let s:gb.dark2 = ['#504945', 239] " 80-73-69
  76. let s:gb.dark3 = ['#665c54', 241] " 102-92-84
  77. let s:gb.dark4 = ['#7c6f64', 243] " 124-111-100
  78. let s:gb.dark4_256 = ['#7c6f64', 243] " 124-111-100
  79. let s:gb.gray_245 = ['#928374', 245] " 146-131-116
  80. let s:gb.gray_244 = ['#928374', 244] " 146-131-116
  81. let s:gb.light0_hard = ['#f9f5d7', 230] " 249-245-215
  82. let s:gb.light0 = ['#fbf1c7', 229] " 253-244-193
  83. let s:gb.light0_soft = ['#f2e5bc', 228] " 242-229-188
  84. let s:gb.light1 = ['#ebdbb2', 223] " 235-219-178
  85. let s:gb.light2 = ['#d5c4a1', 250] " 213-196-161
  86. let s:gb.light3 = ['#bdae93', 248] " 189-174-147
  87. let s:gb.light4 = ['#a89984', 246] " 168-153-132
  88. let s:gb.light4_256 = ['#a89984', 246] " 168-153-132
  89. let s:gb.bright_red = ['#fb4934', 167] " 251-73-52
  90. let s:gb.bright_green = ['#b8bb26', 142] " 184-187-38
  91. let s:gb.bright_yellow = ['#fabd2f', 214] " 250-189-47
  92. let s:gb.bright_blue = ['#83a598', 109] " 131-165-152
  93. let s:gb.bright_purple = ['#d3869b', 175] " 211-134-155
  94. let s:gb.bright_aqua = ['#8ec07c', 108] " 142-192-124
  95. let s:gb.bright_orange = ['#fe8019', 208] " 254-128-25
  96. let s:gb.neutral_red = ['#cc241d', 124] " 204-36-29
  97. let s:gb.neutral_green = ['#98971a', 106] " 152-151-26
  98. let s:gb.neutral_yellow = ['#d79921', 172] " 215-153-33
  99. let s:gb.neutral_blue = ['#458588', 66] " 69-133-136
  100. let s:gb.neutral_purple = ['#b16286', 132] " 177-98-134
  101. let s:gb.neutral_aqua = ['#689d6a', 72] " 104-157-106
  102. let s:gb.neutral_orange = ['#d65d0e', 166] " 214-93-14
  103. let s:gb.faded_red = ['#9d0006', 88] " 157-0-6
  104. let s:gb.faded_green = ['#79740e', 100] " 121-116-14
  105. let s:gb.faded_yellow = ['#b57614', 136] " 181-118-20
  106. let s:gb.faded_blue = ['#076678', 24] " 7-102-120
  107. let s:gb.faded_purple = ['#8f3f71', 96] " 143-63-113
  108. let s:gb.faded_aqua = ['#427b58', 66] " 66-123-88
  109. let s:gb.faded_orange = ['#af3a03', 130] " 175-58-3
  110. " }}}
  111. " Setup Emphasis: {{{
  112. let s:bold = 'bold,'
  113. if g:gruvbox_bold == 0
  114. let s:bold = ''
  115. endif
  116. let s:italic = 'italic,'
  117. if g:gruvbox_italic == 0
  118. let s:italic = ''
  119. endif
  120. let s:underline = 'underline,'
  121. if g:gruvbox_underline == 0
  122. let s:underline = ''
  123. endif
  124. let s:undercurl = 'undercurl,'
  125. if g:gruvbox_undercurl == 0
  126. let s:undercurl = ''
  127. endif
  128. let s:inverse = 'inverse,'
  129. if g:gruvbox_inverse == 0
  130. let s:inverse = ''
  131. endif
  132. " }}}
  133. " Setup Colors: {{{
  134. let s:vim_bg = ['bg', 'bg']
  135. let s:vim_fg = ['fg', 'fg']
  136. let s:none = ['NONE', 'NONE']
  137. " determine relative colors
  138. if s:is_dark
  139. let s:bg0 = s:gb.dark0
  140. if g:gruvbox_contrast_dark == 'soft'
  141. let s:bg0 = s:gb.dark0_soft
  142. elseif g:gruvbox_contrast_dark == 'hard'
  143. let s:bg0 = s:gb.dark0_hard
  144. endif
  145. let s:bg1 = s:gb.dark1
  146. let s:bg2 = s:gb.dark2
  147. let s:bg3 = s:gb.dark3
  148. let s:bg4 = s:gb.dark4
  149. let s:gray = s:gb.gray_245
  150. let s:fg0 = s:gb.light0
  151. let s:fg1 = s:gb.light1
  152. let s:fg2 = s:gb.light2
  153. let s:fg3 = s:gb.light3
  154. let s:fg4 = s:gb.light4
  155. let s:fg4_256 = s:gb.light4_256
  156. let s:red = s:gb.bright_red
  157. let s:green = s:gb.bright_green
  158. let s:yellow = s:gb.bright_yellow
  159. let s:blue = s:gb.bright_blue
  160. let s:purple = s:gb.bright_purple
  161. let s:aqua = s:gb.bright_aqua
  162. let s:orange = s:gb.bright_orange
  163. else
  164. let s:bg0 = s:gb.light0
  165. if g:gruvbox_contrast_light == 'soft'
  166. let s:bg0 = s:gb.light0_soft
  167. elseif g:gruvbox_contrast_light == 'hard'
  168. let s:bg0 = s:gb.light0_hard
  169. endif
  170. let s:bg1 = s:gb.light1
  171. let s:bg2 = s:gb.light2
  172. let s:bg3 = s:gb.light3
  173. let s:bg4 = s:gb.light4
  174. let s:gray = s:gb.gray_244
  175. let s:fg0 = s:gb.dark0
  176. let s:fg1 = s:gb.dark1
  177. let s:fg2 = s:gb.dark2
  178. let s:fg3 = s:gb.dark3
  179. let s:fg4 = s:gb.dark4
  180. let s:fg4_256 = s:gb.dark4_256
  181. let s:red = s:gb.faded_red
  182. let s:green = s:gb.faded_green
  183. let s:yellow = s:gb.faded_yellow
  184. let s:blue = s:gb.faded_blue
  185. let s:purple = s:gb.faded_purple
  186. let s:aqua = s:gb.faded_aqua
  187. let s:orange = s:gb.faded_orange
  188. endif
  189. " reset to 16 colors fallback
  190. if g:gruvbox_termcolors == 16
  191. let s:bg0[1] = 0
  192. let s:fg4[1] = 7
  193. let s:gray[1] = 8
  194. let s:red[1] = 9
  195. let s:green[1] = 10
  196. let s:yellow[1] = 11
  197. let s:blue[1] = 12
  198. let s:purple[1] = 13
  199. let s:aqua[1] = 14
  200. let s:fg1[1] = 15
  201. endif
  202. " save current relative colors back to palette dictionary
  203. let s:gb.bg0 = s:bg0
  204. let s:gb.bg1 = s:bg1
  205. let s:gb.bg2 = s:bg2
  206. let s:gb.bg3 = s:bg3
  207. let s:gb.bg4 = s:bg4
  208. let s:gb.gray = s:gray
  209. let s:gb.fg0 = s:fg0
  210. let s:gb.fg1 = s:fg1
  211. let s:gb.fg2 = s:fg2
  212. let s:gb.fg3 = s:fg3
  213. let s:gb.fg4 = s:fg4
  214. let s:gb.fg4_256 = s:fg4_256
  215. let s:gb.red = s:red
  216. let s:gb.green = s:green
  217. let s:gb.yellow = s:yellow
  218. let s:gb.blue = s:blue
  219. let s:gb.purple = s:purple
  220. let s:gb.aqua = s:aqua
  221. let s:gb.orange = s:orange
  222. " }}}
  223. " Overload Setting: {{{
  224. let s:hls_cursor = s:orange
  225. if exists('g:gruvbox_hls_cursor')
  226. let s:hls_cursor = get(s:gb, g:gruvbox_hls_cursor)
  227. endif
  228. let s:number_column = s:none
  229. if exists('g:gruvbox_number_column')
  230. let s:number_column = get(s:gb, g:gruvbox_number_column)
  231. endif
  232. let s:sign_column = s:bg1
  233. if exists('g:gitgutter_override_sign_column_highlight') &&
  234. \ g:gitgutter_override_sign_column_highlight == 1
  235. let s:sign_column = s:number_column
  236. else
  237. let g:gitgutter_override_sign_column_highlight = 0
  238. if exists('g:gruvbox_sign_column')
  239. let s:sign_column = get(s:gb, g:gruvbox_sign_column)
  240. endif
  241. endif
  242. let s:color_column = s:bg1
  243. if exists('g:gruvbox_color_column')
  244. let s:color_column = get(s:gb, g:gruvbox_color_column)
  245. endif
  246. let s:vert_split = s:bg2
  247. if exists('g:gruvbox_vert_split')
  248. let s:vert_split = get(s:gb, g:gruvbox_vert_split)
  249. endif
  250. let s:invert_signs = ''
  251. if exists('g:gruvbox_invert_signs')
  252. if g:gruvbox_invert_signs == 1
  253. let s:invert_signs = s:inverse
  254. endif
  255. endif
  256. let s:invert_selection = s:inverse
  257. if exists('g:gruvbox_invert_selection')
  258. if g:gruvbox_invert_selection == 0
  259. let s:invert_selection = ''
  260. endif
  261. endif
  262. let s:invert_tabline = ''
  263. if exists('g:gruvbox_invert_tabline')
  264. if g:gruvbox_invert_tabline == 1
  265. let s:invert_tabline = s:inverse
  266. endif
  267. endif
  268. let s:italicize_comments = s:italic
  269. if exists('g:gruvbox_italicize_comments')
  270. if g:gruvbox_italicize_comments == 0
  271. let s:italicize_comments = ''
  272. endif
  273. endif
  274. let s:italicize_strings = ''
  275. if exists('g:gruvbox_italicize_strings')
  276. if g:gruvbox_italicize_strings == 1
  277. let s:italicize_strings = s:italic
  278. endif
  279. endif
  280. " }}}
  281. " Highlighting Function: {{{
  282. function! s:HL(group, fg, ...)
  283. " Arguments: group, guifg, guibg, gui, guisp
  284. " foreground
  285. let fg = a:fg
  286. " background
  287. if a:0 >= 1
  288. let bg = a:1
  289. else
  290. let bg = s:none
  291. endif
  292. " emphasis
  293. if a:0 >= 2 && strlen(a:2)
  294. let emstr = a:2
  295. else
  296. let emstr = 'NONE,'
  297. endif
  298. " special fallback
  299. if a:0 >= 3
  300. if g:gruvbox_guisp_fallback != 'NONE'
  301. let fg = a:3
  302. endif
  303. " bg fallback mode should invert higlighting
  304. if g:gruvbox_guisp_fallback == 'bg'
  305. let emstr .= 'inverse,'
  306. endif
  307. endif
  308. let histring = [ 'hi', a:group,
  309. \ 'guifg=' . fg[0], 'ctermfg=' . fg[1],
  310. \ 'guibg=' . bg[0], 'ctermbg=' . bg[1],
  311. \ 'gui=' . emstr[:-2], 'cterm=' . emstr[:-2]
  312. \ ]
  313. " special
  314. if a:0 >= 3
  315. call add(histring, 'guisp=' . a:3[0])
  316. endif
  317. execute join(histring, ' ')
  318. endfunction
  319. " }}}
  320. " Gruvbox Hi Groups: {{{
  321. " memoize common hi groups
  322. call s:HL('GruvboxFg0', s:fg0)
  323. call s:HL('GruvboxFg1', s:fg1)
  324. call s:HL('GruvboxFg2', s:fg2)
  325. call s:HL('GruvboxFg3', s:fg3)
  326. call s:HL('GruvboxFg4', s:fg4)
  327. call s:HL('GruvboxGray', s:gray)
  328. call s:HL('GruvboxBg0', s:bg0)
  329. call s:HL('GruvboxBg1', s:bg1)
  330. call s:HL('GruvboxBg2', s:bg2)
  331. call s:HL('GruvboxBg3', s:bg3)
  332. call s:HL('GruvboxBg4', s:bg4)
  333. call s:HL('GruvboxRed', s:red)
  334. call s:HL('GruvboxRedBold', s:red, s:none, s:bold)
  335. call s:HL('GruvboxGreen', s:green)
  336. call s:HL('GruvboxGreenBold', s:green, s:none, s:bold)
  337. call s:HL('GruvboxYellow', s:yellow)
  338. call s:HL('GruvboxYellowBold', s:yellow, s:none, s:bold)
  339. call s:HL('GruvboxBlue', s:blue)
  340. call s:HL('GruvboxBlueBold', s:blue, s:none, s:bold)
  341. call s:HL('GruvboxPurple', s:purple)
  342. call s:HL('GruvboxPurpleBold', s:purple, s:none, s:bold)
  343. call s:HL('GruvboxAqua', s:aqua)
  344. call s:HL('GruvboxAquaBold', s:aqua, s:none, s:bold)
  345. call s:HL('GruvboxOrange', s:orange)
  346. call s:HL('GruvboxOrangeBold', s:orange, s:none, s:bold)
  347. call s:HL('GruvboxRedSign', s:red, s:sign_column, s:invert_signs)
  348. call s:HL('GruvboxGreenSign', s:green, s:sign_column, s:invert_signs)
  349. call s:HL('GruvboxYellowSign', s:yellow, s:sign_column, s:invert_signs)
  350. call s:HL('GruvboxBlueSign', s:blue, s:sign_column, s:invert_signs)
  351. call s:HL('GruvboxPurpleSign', s:purple, s:sign_column, s:invert_signs)
  352. call s:HL('GruvboxAquaSign', s:aqua, s:sign_column, s:invert_signs)
  353. " }}}
  354. " Vanilla colorscheme ---------------------------------------------------------
  355. " General UI: {{{
  356. " Normal text
  357. call s:HL('Normal', s:fg1, s:bg0)
  358. " Correct background (see issue #7):
  359. " --- Problem with changing between dark and light on 256 color terminal
  360. " --- https://github.com/morhetz/gruvbox/issues/7
  361. if s:is_dark
  362. set background=dark
  363. else
  364. set background=light
  365. endif
  366. if version >= 700
  367. " Screen line that the cursor is
  368. call s:HL('CursorLine', s:none, s:bg1)
  369. " Screen column that the cursor is
  370. hi! link CursorColumn CursorLine
  371. " Tab pages line filler
  372. call s:HL('TabLineFill', s:bg4, s:vim_bg, s:invert_tabline)
  373. " Active tab page label
  374. call s:HL('TabLineSel', s:vim_bg, s:bg4, s:bold . s:invert_tabline)
  375. " Not active tab page label
  376. hi! link TabLine TabLineFill
  377. " Match paired bracket under the cursor
  378. call s:HL('MatchParen', s:none, s:bg3, s:bold)
  379. endif
  380. if version >= 703
  381. " Highlighted screen columns
  382. call s:HL('ColorColumn', s:none, s:color_column)
  383. " Concealed element: \lambda → λ
  384. call s:HL('Conceal', s:blue, s:none)
  385. " Line number of CursorLine
  386. call s:HL('CursorLineNr', s:yellow, s:bg1)
  387. endif
  388. hi! link NonText GruvboxBg2
  389. hi! link SpecialKey GruvboxBg2
  390. call s:HL('Visual', s:none, s:bg3, s:invert_selection)
  391. hi! link VisualNOS Visual
  392. call s:HL('Search', s:yellow, s:bg0, s:inverse)
  393. call s:HL('IncSearch', s:hls_cursor, s:bg0, s:inverse)
  394. call s:HL('Underlined', s:blue, s:none, s:underline)
  395. call s:HL('StatusLine', s:bg4, s:bg0, s:bold . s:inverse)
  396. call s:HL('StatusLineNC', s:bg2, s:fg4, s:bold . s:inverse)
  397. " The column separating vertically split windows
  398. call s:HL('VertSplit', s:fg4, s:vert_split)
  399. " Current match in wildmenu completion
  400. call s:HL('WildMenu', s:blue, s:bg2, s:bold)
  401. " Directory names, special names in listing
  402. hi! link Directory GruvboxGreenBold
  403. " Titles for output from :set all, :autocmd, etc.
  404. hi! link Title GruvboxGreenBold
  405. " Error messages on the command line
  406. call s:HL('ErrorMsg', s:bg0, s:red, s:bold)
  407. " More prompt: -- More --
  408. hi! link MoreMsg GruvboxYellowBold
  409. " Current mode message: -- INSERT --
  410. hi! link ModeMsg GruvboxYellowBold
  411. " 'Press enter' prompt and yes/no questions
  412. hi! link Question GruvboxOrangeBold
  413. " Warning messages
  414. hi! link WarningMsg GruvboxRedBold
  415. " }}}
  416. " Gutter: {{{
  417. " Line number for :number and :# commands
  418. call s:HL('LineNr', s:bg4, s:number_column)
  419. " Column where signs are displayed
  420. call s:HL('SignColumn', s:none, s:sign_column)
  421. " Line used for closed folds
  422. call s:HL('Folded', s:gray, s:bg1, s:italic)
  423. " Column where folds are displayed
  424. call s:HL('FoldColumn', s:gray, s:bg1)
  425. " }}}
  426. " Cursor: {{{
  427. " Character under cursor
  428. call s:HL('Cursor', s:none, s:none, s:inverse)
  429. " Visual mode cursor, selection
  430. hi! link vCursor Cursor
  431. " Input moder cursor
  432. hi! link iCursor Cursor
  433. " Language mapping cursor
  434. hi! link lCursor Cursor
  435. " }}}
  436. " Syntax Highlighting: {{{
  437. if g:gruvbox_improved_strings == 0
  438. hi! link Special GruvboxOrange
  439. else
  440. call s:HL('Special', s:orange, s:bg1, s:italicize_strings)
  441. endif
  442. call s:HL('Comment', s:gray, s:none, s:italicize_comments)
  443. call s:HL('Todo', s:vim_fg, s:vim_bg, s:bold . s:italic)
  444. call s:HL('Error', s:red, s:vim_bg, s:bold . s:inverse)
  445. " Generic statement
  446. hi! link Statement GruvboxRed
  447. " if, then, else, endif, swicth, etc.
  448. hi! link Conditional GruvboxRed
  449. " for, do, while, etc.
  450. hi! link Repeat GruvboxRed
  451. " case, default, etc.
  452. hi! link Label GruvboxRed
  453. " try, catch, throw
  454. hi! link Exception GruvboxRed
  455. " sizeof, "+", "*", etc.
  456. hi! link Operator Normal
  457. " Any other keyword
  458. hi! link Keyword GruvboxRed
  459. " Variable name
  460. hi! link Identifier GruvboxBlue
  461. " Function name
  462. hi! link Function GruvboxGreenBold
  463. " Generic preprocessor
  464. hi! link PreProc GruvboxAqua
  465. " Preprocessor #include
  466. hi! link Include GruvboxAqua
  467. " Preprocessor #define
  468. hi! link Define GruvboxAqua
  469. " Same as Define
  470. hi! link Macro GruvboxAqua
  471. " Preprocessor #if, #else, #endif, etc.
  472. hi! link PreCondit GruvboxAqua
  473. " Generic constant
  474. hi! link Constant GruvboxPurple
  475. " Character constant: 'c', '/n'
  476. hi! link Character GruvboxPurple
  477. " String constant: "this is a string"
  478. if g:gruvbox_improved_strings == 0
  479. call s:HL('String', s:green, s:none, s:italicize_strings)
  480. else
  481. call s:HL('String', s:fg1, s:bg1, s:italicize_strings)
  482. endif
  483. " Boolean constant: TRUE, false
  484. hi! link Boolean GruvboxPurple
  485. " Number constant: 234, 0xff
  486. hi! link Number GruvboxPurple
  487. " Floating point constant: 2.3e10
  488. hi! link Float GruvboxPurple
  489. " Generic type
  490. hi! link Type GruvboxYellow
  491. " static, register, volatile, etc
  492. hi! link StorageClass GruvboxOrange
  493. " struct, union, enum, etc.
  494. hi! link Structure GruvboxAqua
  495. " typedef
  496. hi! link Typedef GruvboxYellow
  497. " }}}
  498. " Completion Menu: {{{
  499. if version >= 700
  500. " Popup menu: normal item
  501. call s:HL('Pmenu', s:fg1, s:bg2)
  502. " Popup menu: selected item
  503. call s:HL('PmenuSel', s:bg2, s:blue, s:bold)
  504. " Popup menu: scrollbar
  505. call s:HL('PmenuSbar', s:none, s:bg2)
  506. " Popup menu: scrollbar thumb
  507. call s:HL('PmenuThumb', s:none, s:bg4)
  508. endif
  509. " }}}
  510. " Diffs: {{{
  511. call s:HL('DiffDelete', s:red, s:bg0, s:inverse)
  512. call s:HL('DiffAdd', s:green, s:bg0, s:inverse)
  513. "call s:HL('DiffChange', s:bg0, s:blue)
  514. "call s:HL('DiffText', s:bg0, s:yellow)
  515. " Alternative setting
  516. call s:HL('DiffChange', s:aqua, s:bg0, s:inverse)
  517. call s:HL('DiffText', s:yellow, s:bg0, s:inverse)
  518. " }}}
  519. " Spelling: {{{
  520. if has("spell")
  521. " Not capitalised word, or compile warnings
  522. if g:gruvbox_improved_warnings == 0
  523. call s:HL('SpellCap', s:none, s:none, s:undercurl, s:red)
  524. else
  525. call s:HL('SpellCap', s:green, s:none, s:bold . s:italic)
  526. endif
  527. " Not recognized word
  528. call s:HL('SpellBad', s:none, s:none, s:undercurl, s:blue)
  529. " Wrong spelling for selected region
  530. call s:HL('SpellLocal', s:none, s:none, s:undercurl, s:aqua)
  531. " Rare word
  532. call s:HL('SpellRare', s:none, s:none, s:undercurl, s:purple)
  533. endif
  534. " }}}
  535. " Plugin specific -------------------------------------------------------------
  536. " EasyMotion: {{{
  537. hi! link EasyMotionTarget Search
  538. hi! link EasyMotionShade Comment
  539. " }}}
  540. " Sneak: {{{
  541. autocmd ColorScheme * hi! link Sneak Search
  542. autocmd ColorScheme * hi! link SneakLabel Search
  543. " }}}
  544. " Indent Guides: {{{
  545. if !exists('g:indent_guides_auto_colors')
  546. let g:indent_guides_auto_colors = 0
  547. endif
  548. if g:indent_guides_auto_colors == 0
  549. if g:gruvbox_invert_indent_guides == 0
  550. call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2)
  551. call s:HL('IndentGuidesEven', s:vim_bg, s:bg1)
  552. else
  553. call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2, s:inverse)
  554. call s:HL('IndentGuidesEven', s:vim_bg, s:bg3, s:inverse)
  555. endif
  556. endif
  557. " }}}
  558. " IndentLine: {{{
  559. if !exists('g:indentLine_color_term')
  560. let g:indentLine_color_term = s:bg2[1]
  561. endif
  562. if !exists('g:indentLine_color_gui')
  563. let g:indentLine_color_gui = s:bg2[0]
  564. endif
  565. " }}}
  566. " Rainbow Parentheses: {{{
  567. if !exists('g:rbpt_colorpairs')
  568. let g:rbpt_colorpairs =
  569. \ [
  570. \ ['blue', '#458588'], ['magenta', '#b16286'],
  571. \ ['red', '#cc241d'], ['166', '#d65d0e']
  572. \ ]
  573. endif
  574. let g:rainbow_guifgs = [ '#d65d0e', '#cc241d', '#b16286', '#458588' ]
  575. let g:rainbow_ctermfgs = [ '166', 'red', 'magenta', 'blue' ]
  576. if !exists('g:rainbow_conf')
  577. let g:rainbow_conf = {}
  578. endif
  579. if !has_key(g:rainbow_conf, 'guifgs')
  580. let g:rainbow_conf['guifgs'] = g:rainbow_guifgs
  581. endif
  582. if !has_key(g:rainbow_conf, 'ctermfgs')
  583. let g:rainbow_conf['ctermfgs'] = g:rainbow_ctermfgs
  584. endif
  585. let g:niji_dark_colours = g:rbpt_colorpairs
  586. let g:niji_light_colours = g:rbpt_colorpairs
  587. "}}}
  588. " GitGutter: {{{
  589. hi! link GitGutterAdd GruvboxGreenSign
  590. hi! link GitGutterChange GruvboxAquaSign
  591. hi! link GitGutterDelete GruvboxRedSign
  592. hi! link GitGutterChangeDelete GruvboxAquaSign
  593. " }}}
  594. " GitCommit: "{{{
  595. hi! link gitcommitSelectedFile GruvboxGreen
  596. hi! link gitcommitDiscardedFile GruvboxRed
  597. " }}}
  598. " Signify: {{{
  599. hi! link SignifySignAdd GruvboxGreenSign
  600. hi! link SignifySignChange GruvboxAquaSign
  601. hi! link SignifySignDelete GruvboxRedSign
  602. " }}}
  603. " Syntastic: {{{
  604. call s:HL('SyntasticError', s:none, s:none, s:undercurl, s:red)
  605. call s:HL('SyntasticWarning', s:none, s:none, s:undercurl, s:yellow)
  606. hi! link SyntasticErrorSign GruvboxRedSign
  607. hi! link SyntasticWarningSign GruvboxYellowSign
  608. " }}}
  609. " Signature: {{{
  610. hi! link SignatureMarkText GruvboxBlueSign
  611. hi! link SignatureMarkerText GruvboxPurpleSign
  612. " }}}
  613. " ShowMarks: {{{
  614. hi! link ShowMarksHLl GruvboxBlueSign
  615. hi! link ShowMarksHLu GruvboxBlueSign
  616. hi! link ShowMarksHLo GruvboxBlueSign
  617. hi! link ShowMarksHLm GruvboxBlueSign
  618. " }}}
  619. " CtrlP: {{{
  620. hi! link CtrlPMatch GruvboxYellow
  621. hi! link CtrlPNoEntries GruvboxRed
  622. hi! link CtrlPPrtBase GruvboxBg2
  623. hi! link CtrlPPrtCursor GruvboxBlue
  624. hi! link CtrlPLinePre GruvboxBg2
  625. call s:HL('CtrlPMode1', s:blue, s:bg2, s:bold)
  626. call s:HL('CtrlPMode2', s:bg0, s:blue, s:bold)
  627. call s:HL('CtrlPStats', s:fg4, s:bg2, s:bold)
  628. " }}}
  629. " Startify: {{{
  630. hi! link StartifyBracket GruvboxFg3
  631. hi! link StartifyFile GruvboxFg0
  632. hi! link StartifyNumber GruvboxBlue
  633. hi! link StartifyPath GruvboxGray
  634. hi! link StartifySlash GruvboxGray
  635. hi! link StartifySection GruvboxYellow
  636. hi! link StartifySpecial GruvboxBg2
  637. hi! link StartifyHeader GruvboxOrange
  638. hi! link StartifyFooter GruvboxBg2
  639. " }}}
  640. " Vimshell: {{{
  641. let g:vimshell_escape_colors = [
  642. \ s:bg4[0], s:red[0], s:green[0], s:yellow[0],
  643. \ s:blue[0], s:purple[0], s:aqua[0], s:fg4[0],
  644. \ s:bg0[0], s:red[0], s:green[0], s:orange[0],
  645. \ s:blue[0], s:purple[0], s:aqua[0], s:fg0[0]
  646. \ ]
  647. " }}}
  648. " BufTabLine: {{{
  649. call s:HL('BufTabLineCurrent', s:bg0, s:fg4)
  650. call s:HL('BufTabLineActive', s:fg4, s:bg2)
  651. call s:HL('BufTabLineHidden', s:bg4, s:bg1)
  652. call s:HL('BufTabLineFill', s:bg0, s:bg0)
  653. " }}}
  654. " Asynchronous Lint Engine: {{{
  655. call s:HL('ALEError', s:none, s:none, s:undercurl, s:red)
  656. call s:HL('ALEWarning', s:none, s:none, s:undercurl, s:yellow)
  657. call s:HL('ALEInfo', s:none, s:none, s:undercurl, s:blue)
  658. hi! link ALEErrorSign GruvboxRedSign
  659. hi! link ALEWarningSign GruvboxYellowSign
  660. hi! link ALEInfoSign GruvboxBlueSign
  661. " }}}
  662. " Filetype specific -----------------------------------------------------------
  663. " Diff: {{{
  664. hi! link diffAdded GruvboxGreen
  665. hi! link diffRemoved GruvboxRed
  666. hi! link diffChanged GruvboxAqua
  667. hi! link diffFile GruvboxOrange
  668. hi! link diffNewFile GruvboxYellow
  669. hi! link diffLine GruvboxBlue
  670. " }}}
  671. " Html: {{{
  672. hi! link htmlTag GruvboxBlue
  673. hi! link htmlEndTag GruvboxBlue
  674. hi! link htmlTagName GruvboxAquaBold
  675. hi! link htmlArg GruvboxAqua
  676. hi! link htmlScriptTag GruvboxPurple
  677. hi! link htmlTagN GruvboxFg1
  678. hi! link htmlSpecialTagName GruvboxAquaBold
  679. call s:HL('htmlLink', s:fg4, s:none, s:underline)
  680. hi! link htmlSpecialChar GruvboxOrange
  681. call s:HL('htmlBold', s:vim_fg, s:vim_bg, s:bold)
  682. call s:HL('htmlBoldUnderline', s:vim_fg, s:vim_bg, s:bold . s:underline)
  683. call s:HL('htmlBoldItalic', s:vim_fg, s:vim_bg, s:bold . s:italic)
  684. call s:HL('htmlBoldUnderlineItalic', s:vim_fg, s:vim_bg, s:bold . s:underline . s:italic)
  685. call s:HL('htmlUnderline', s:vim_fg, s:vim_bg, s:underline)
  686. call s:HL('htmlUnderlineItalic', s:vim_fg, s:vim_bg, s:underline . s:italic)
  687. call s:HL('htmlItalic', s:vim_fg, s:vim_bg, s:italic)
  688. " }}}
  689. " Xml: {{{
  690. hi! link xmlTag GruvboxBlue
  691. hi! link xmlEndTag GruvboxBlue
  692. hi! link xmlTagName GruvboxBlue
  693. hi! link xmlEqual GruvboxBlue
  694. hi! link docbkKeyword GruvboxAquaBold
  695. hi! link xmlDocTypeDecl GruvboxGray
  696. hi! link xmlDocTypeKeyword GruvboxPurple
  697. hi! link xmlCdataStart GruvboxGray
  698. hi! link xmlCdataCdata GruvboxPurple
  699. hi! link dtdFunction GruvboxGray
  700. hi! link dtdTagName GruvboxPurple
  701. hi! link xmlAttrib GruvboxAqua
  702. hi! link xmlProcessingDelim GruvboxGray
  703. hi! link dtdParamEntityPunct GruvboxGray
  704. hi! link dtdParamEntityDPunct GruvboxGray
  705. hi! link xmlAttribPunct GruvboxGray
  706. hi! link xmlEntity GruvboxOrange
  707. hi! link xmlEntityPunct GruvboxOrange
  708. " }}}
  709. " Vim: {{{
  710. call s:HL('vimCommentTitle', s:fg4_256, s:none, s:bold . s:italicize_comments)
  711. hi! link vimNotation GruvboxOrange
  712. hi! link vimBracket GruvboxOrange
  713. hi! link vimMapModKey GruvboxOrange
  714. hi! link vimFuncSID GruvboxFg3
  715. hi! link vimSetSep GruvboxFg3
  716. hi! link vimSep GruvboxFg3
  717. hi! link vimContinue GruvboxFg3
  718. " }}}
  719. " Clojure: {{{
  720. hi! link clojureKeyword GruvboxBlue
  721. hi! link clojureCond GruvboxOrange
  722. hi! link clojureSpecial GruvboxOrange
  723. hi! link clojureDefine GruvboxOrange
  724. hi! link clojureFunc GruvboxYellow
  725. hi! link clojureRepeat GruvboxYellow
  726. hi! link clojureCharacter GruvboxAqua
  727. hi! link clojureStringEscape GruvboxAqua
  728. hi! link clojureException GruvboxRed
  729. hi! link clojureRegexp GruvboxAqua
  730. hi! link clojureRegexpEscape GruvboxAqua
  731. call s:HL('clojureRegexpCharClass', s:fg3, s:none, s:bold)
  732. hi! link clojureRegexpMod clojureRegexpCharClass
  733. hi! link clojureRegexpQuantifier clojureRegexpCharClass
  734. hi! link clojureParen GruvboxFg3
  735. hi! link clojureAnonArg GruvboxYellow
  736. hi! link clojureVariable GruvboxBlue
  737. hi! link clojureMacro GruvboxOrange
  738. hi! link clojureMeta GruvboxYellow
  739. hi! link clojureDeref GruvboxYellow
  740. hi! link clojureQuote GruvboxYellow
  741. hi! link clojureUnquote GruvboxYellow
  742. " }}}
  743. " C: {{{
  744. hi! link cOperator GruvboxPurple
  745. hi! link cStructure GruvboxOrange
  746. " }}}
  747. " Python: {{{
  748. hi! link pythonBuiltin GruvboxOrange
  749. hi! link pythonBuiltinObj GruvboxOrange
  750. hi! link pythonBuiltinFunc GruvboxOrange
  751. hi! link pythonFunction GruvboxAqua
  752. hi! link pythonDecorator GruvboxRed
  753. hi! link pythonInclude GruvboxBlue
  754. hi! link pythonImport GruvboxBlue
  755. hi! link pythonRun GruvboxBlue
  756. hi! link pythonCoding GruvboxBlue
  757. hi! link pythonOperator GruvboxRed
  758. hi! link pythonExceptions GruvboxPurple
  759. hi! link pythonBoolean GruvboxPurple
  760. hi! link pythonDot GruvboxFg3
  761. " }}}
  762. " CSS: {{{
  763. hi! link cssBraces GruvboxBlue
  764. hi! link cssFunctionName GruvboxYellow
  765. hi! link cssIdentifier GruvboxOrange
  766. hi! link cssClassName GruvboxGreen
  767. hi! link cssColor GruvboxBlue
  768. hi! link cssSelectorOp GruvboxBlue
  769. hi! link cssSelectorOp2 GruvboxBlue
  770. hi! link cssImportant GruvboxGreen
  771. hi! link cssVendor GruvboxFg1
  772. hi! link cssTextProp GruvboxAqua
  773. hi! link cssAnimationProp GruvboxAqua
  774. hi! link cssUIProp GruvboxYellow
  775. hi! link cssTransformProp GruvboxAqua
  776. hi! link cssTransitionProp GruvboxAqua
  777. hi! link cssPrintProp GruvboxAqua
  778. hi! link cssPositioningProp GruvboxYellow
  779. hi! link cssBoxProp GruvboxAqua
  780. hi! link cssFontDescriptorProp GruvboxAqua
  781. hi! link cssFlexibleBoxProp GruvboxAqua
  782. hi! link cssBorderOutlineProp GruvboxAqua
  783. hi! link cssBackgroundProp GruvboxAqua
  784. hi! link cssMarginProp GruvboxAqua
  785. hi! link cssListProp GruvboxAqua
  786. hi! link cssTableProp GruvboxAqua
  787. hi! link cssFontProp GruvboxAqua
  788. hi! link cssPaddingProp GruvboxAqua
  789. hi! link cssDimensionProp GruvboxAqua
  790. hi! link cssRenderProp GruvboxAqua
  791. hi! link cssColorProp GruvboxAqua
  792. hi! link cssGeneratedContentProp GruvboxAqua
  793. " }}}
  794. " JavaScript: {{{
  795. hi! link javaScriptBraces GruvboxFg1
  796. hi! link javaScriptFunction GruvboxAqua
  797. hi! link javaScriptIdentifier GruvboxRed
  798. hi! link javaScriptMember GruvboxBlue
  799. hi! link javaScriptNumber GruvboxPurple
  800. hi! link javaScriptNull GruvboxPurple
  801. hi! link javaScriptParens GruvboxFg3
  802. " }}}
  803. " YAJS: {{{
  804. hi! link javascriptImport GruvboxAqua
  805. hi! link javascriptExport GruvboxAqua
  806. hi! link javascriptClassKeyword GruvboxAqua
  807. hi! link javascriptClassExtends GruvboxAqua
  808. hi! link javascriptDefault GruvboxAqua
  809. hi! link javascriptClassName GruvboxYellow
  810. hi! link javascriptClassSuperName GruvboxYellow
  811. hi! link javascriptGlobal GruvboxYellow
  812. hi! link javascriptEndColons GruvboxFg1
  813. hi! link javascriptFuncArg GruvboxFg1
  814. hi! link javascriptGlobalMethod GruvboxFg1
  815. hi! link javascriptNodeGlobal GruvboxFg1
  816. hi! link javascriptBOMWindowProp GruvboxFg1
  817. hi! link javascriptArrayMethod GruvboxFg1
  818. hi! link javascriptArrayStaticMethod GruvboxFg1
  819. hi! link javascriptCacheMethod GruvboxFg1
  820. hi! link javascriptDateMethod GruvboxFg1
  821. hi! link javascriptMathStaticMethod GruvboxFg1
  822. " hi! link javascriptProp GruvboxFg1
  823. hi! link javascriptURLUtilsProp GruvboxFg1
  824. hi! link javascriptBOMNavigatorProp GruvboxFg1
  825. hi! link javascriptDOMDocMethod GruvboxFg1
  826. hi! link javascriptDOMDocProp GruvboxFg1
  827. hi! link javascriptBOMLocationMethod GruvboxFg1
  828. hi! link javascriptBOMWindowMethod GruvboxFg1
  829. hi! link javascriptStringMethod GruvboxFg1
  830. hi! link javascriptVariable GruvboxOrange
  831. " hi! link javascriptVariable GruvboxRed
  832. " hi! link javascriptIdentifier GruvboxOrange
  833. " hi! link javascriptClassSuper GruvboxOrange
  834. hi! link javascriptIdentifier GruvboxOrange
  835. hi! link javascriptClassSuper GruvboxOrange
  836. " hi! link javascriptFuncKeyword GruvboxOrange
  837. " hi! link javascriptAsyncFunc GruvboxOrange
  838. hi! link javascriptFuncKeyword GruvboxAqua
  839. hi! link javascriptAsyncFunc GruvboxAqua
  840. hi! link javascriptClassStatic GruvboxOrange
  841. hi! link javascriptOperator GruvboxRed
  842. hi! link javascriptForOperator GruvboxRed
  843. hi! link javascriptYield GruvboxRed
  844. hi! link javascriptExceptions GruvboxRed
  845. hi! link javascriptMessage GruvboxRed
  846. hi! link javascriptTemplateSB GruvboxAqua
  847. hi! link javascriptTemplateSubstitution GruvboxFg1
  848. " hi! link javascriptLabel GruvboxBlue
  849. " hi! link javascriptObjectLabel GruvboxBlue
  850. " hi! link javascriptPropertyName GruvboxBlue
  851. hi! link javascriptLabel GruvboxFg1
  852. hi! link javascriptObjectLabel GruvboxFg1
  853. hi! link javascriptPropertyName GruvboxFg1
  854. hi! link javascriptLogicSymbols GruvboxFg1
  855. hi! link javascriptArrowFunc GruvboxYellow
  856. hi! link javascriptDocParamName GruvboxFg4
  857. hi! link javascriptDocTags GruvboxFg4
  858. hi! link javascriptDocNotation GruvboxFg4
  859. hi! link javascriptDocParamType GruvboxFg4
  860. hi! link javascriptDocNamedParamType GruvboxFg4
  861. hi! link javascriptBrackets GruvboxFg1
  862. hi! link javascriptDOMElemAttrs GruvboxFg1
  863. hi! link javascriptDOMEventMethod GruvboxFg1
  864. hi! link javascriptDOMNodeMethod GruvboxFg1
  865. hi! link javascriptDOMStorageMethod GruvboxFg1
  866. hi! link javascriptHeadersMethod GruvboxFg1
  867. hi! link javascriptAsyncFuncKeyword GruvboxRed
  868. hi! link javascriptAwaitFuncKeyword GruvboxRed
  869. " }}}
  870. " PanglossJS: {{{
  871. hi! link jsClassKeyword GruvboxAqua
  872. hi! link jsExtendsKeyword GruvboxAqua
  873. hi! link jsExportDefault GruvboxAqua
  874. hi! link jsTemplateBraces GruvboxAqua
  875. hi! link jsGlobalNodeObjects GruvboxFg1
  876. hi! link jsGlobalObjects GruvboxFg1
  877. hi! link jsFunction GruvboxAqua
  878. hi! link jsFuncParens GruvboxFg3
  879. hi! link jsParens GruvboxFg3
  880. hi! link jsNull GruvboxPurple
  881. hi! link jsUndefined GruvboxPurple
  882. " }}}
  883. " TypeScript: {{{
  884. hi! link typeScriptReserved GruvboxAqua
  885. hi! link typeScriptLabel GruvboxAqua
  886. hi! link typeScriptIdentifier GruvboxOrange
  887. hi! link typeScriptBraces GruvboxFg1
  888. hi! link typeScriptEndColons GruvboxFg1
  889. hi! link typeScriptDOMObjects GruvboxFg1
  890. hi! link typeScriptAjaxMethods GruvboxFg1
  891. hi! link typeScriptLogicSymbols GruvboxFg1
  892. hi! link typeScriptDocSeeTag Comment
  893. hi! link typeScriptDocParam Comment
  894. hi! link typeScriptDocTags vimCommentTitle
  895. " }}}
  896. " CoffeeScript: {{{
  897. hi! link coffeeExtendedOp GruvboxFg3
  898. hi! link coffeeSpecialOp GruvboxFg3
  899. hi! link coffeeCurly GruvboxOrange
  900. hi! link coffeeParen GruvboxFg3
  901. hi! link coffeeBracket GruvboxOrange
  902. " }}}
  903. " Ruby: {{{
  904. hi! link rubyStringDelimiter GruvboxGreen
  905. hi! link rubyInterpolationDelimiter GruvboxAqua
  906. " }}}
  907. " ObjectiveC: {{{
  908. hi! link objcTypeModifier GruvboxRed
  909. hi! link objcDirective GruvboxBlue
  910. " }}}
  911. " Go: {{{
  912. hi! link goDirective GruvboxAqua
  913. hi! link goConstants GruvboxPurple
  914. hi! link goDeclaration GruvboxRed
  915. hi! link goDeclType GruvboxBlue
  916. hi! link goBuiltins GruvboxOrange
  917. " }}}
  918. " Lua: {{{
  919. hi! link luaIn GruvboxRed
  920. hi! link luaFunction GruvboxAqua
  921. hi! link luaTable GruvboxOrange
  922. " }}}
  923. " MoonScript: {{{
  924. hi! link moonSpecialOp GruvboxFg3
  925. hi! link moonExtendedOp GruvboxFg3
  926. hi! link moonFunction GruvboxFg3
  927. hi! link moonObject GruvboxYellow
  928. " }}}
  929. " Java: {{{
  930. hi! link javaAnnotation GruvboxBlue
  931. hi! link javaDocTags GruvboxAqua
  932. hi! link javaCommentTitle vimCommentTitle
  933. hi! link javaParen GruvboxFg3
  934. hi! link javaParen1 GruvboxFg3
  935. hi! link javaParen2 GruvboxFg3
  936. hi! link javaParen3 GruvboxFg3
  937. hi! link javaParen4 GruvboxFg3
  938. hi! link javaParen5 GruvboxFg3
  939. hi! link javaOperator GruvboxOrange
  940. hi! link javaVarArg GruvboxGreen
  941. " }}}
  942. " Elixir: {{{
  943. hi! link elixirDocString Comment
  944. hi! link elixirStringDelimiter GruvboxGreen
  945. hi! link elixirInterpolationDelimiter GruvboxAqua
  946. hi! link elixirModuleDeclaration GruvboxYellow
  947. " }}}
  948. " Scala: {{{
  949. " NB: scala vim syntax file is kinda horrible
  950. hi! link scalaNameDefinition GruvboxFg1
  951. hi! link scalaCaseFollowing GruvboxFg1
  952. hi! link scalaCapitalWord GruvboxFg1
  953. hi! link scalaTypeExtension GruvboxFg1
  954. hi! link scalaKeyword GruvboxRed
  955. hi! link scalaKeywordModifier GruvboxRed
  956. hi! link scalaSpecial GruvboxAqua
  957. hi! link scalaOperator GruvboxFg1
  958. hi! link scalaTypeDeclaration GruvboxYellow
  959. hi! link scalaTypeTypePostDeclaration GruvboxYellow
  960. hi! link scalaInstanceDeclaration GruvboxFg1
  961. hi! link scalaInterpolation GruvboxAqua
  962. " }}}
  963. " Markdown: {{{
  964. call s:HL('markdownItalic', s:fg3, s:none, s:italic)
  965. hi! link markdownH1 GruvboxGreenBold
  966. hi! link markdownH2 GruvboxGreenBold
  967. hi! link markdownH3 GruvboxYellowBold
  968. hi! link markdownH4 GruvboxYellowBold
  969. hi! link markdownH5 GruvboxYellow
  970. hi! link markdownH6 GruvboxYellow
  971. hi! link markdownCode GruvboxAqua
  972. hi! link markdownCodeBlock GruvboxAqua
  973. hi! link markdownCodeDelimiter GruvboxAqua
  974. hi! link markdownBlockquote GruvboxGray
  975. hi! link markdownListMarker GruvboxGray
  976. hi! link markdownOrderedListMarker GruvboxGray
  977. hi! link markdownRule GruvboxGray
  978. hi! link markdownHeadingRule GruvboxGray
  979. hi! link markdownUrlDelimiter GruvboxFg3
  980. hi! link markdownLinkDelimiter GruvboxFg3
  981. hi! link markdownLinkTextDelimiter GruvboxFg3
  982. hi! link markdownHeadingDelimiter GruvboxOrange
  983. hi! link markdownUrl GruvboxPurple
  984. hi! link markdownUrlTitleDelimiter GruvboxGreen
  985. call s:HL('markdownLinkText', s:gray, s:none, s:underline)
  986. hi! link markdownIdDeclaration markdownLinkText
  987. " }}}
  988. " Haskell: {{{
  989. " hi! link haskellType GruvboxYellow
  990. " hi! link haskellOperators GruvboxOrange
  991. " hi! link haskellConditional GruvboxAqua
  992. " hi! link haskellLet GruvboxOrange
  993. "
  994. hi! link haskellType GruvboxFg1
  995. hi! link haskellIdentifier GruvboxFg1
  996. hi! link haskellSeparator GruvboxFg1
  997. hi! link haskellDelimiter GruvboxFg4
  998. hi! link haskellOperators GruvboxBlue
  999. "
  1000. hi! link haskellBacktick GruvboxOrange
  1001. hi! link haskellStatement GruvboxOrange
  1002. hi! link haskellConditional GruvboxOrange
  1003. hi! link haskellLet GruvboxAqua
  1004. hi! link haskellDefault GruvboxAqua
  1005. hi! link haskellWhere GruvboxAqua
  1006. hi! link haskellBottom GruvboxAqua
  1007. hi! link haskellBlockKeywords GruvboxAqua
  1008. hi! link haskellImportKeywords GruvboxAqua
  1009. hi! link haskellDeclKeyword GruvboxAqua
  1010. hi! link haskellDeriving GruvboxAqua
  1011. hi! link haskellAssocType GruvboxAqua
  1012. hi! link haskellNumber GruvboxPurple
  1013. hi! link haskellPragma GruvboxPurple
  1014. hi! link haskellString GruvboxGreen
  1015. hi! link haskellChar GruvboxGreen
  1016. " }}}
  1017. " Json: {{{
  1018. hi! link jsonKeyword GruvboxGreen
  1019. hi! link jsonQuote GruvboxGreen
  1020. hi! link jsonBraces GruvboxFg1
  1021. hi! link jsonString GruvboxFg1
  1022. " }}}
  1023. " Functions -------------------------------------------------------------------
  1024. " Search Highlighting Cursor {{{
  1025. function! GruvboxHlsShowCursor()
  1026. call s:HL('Cursor', s:bg0, s:hls_cursor)
  1027. endfunction
  1028. function! GruvboxHlsHideCursor()
  1029. call s:HL('Cursor', s:none, s:none, s:inverse)
  1030. endfunction
  1031. " }}}
  1032. " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker: