gruvbox.vim 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387
  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. " Setup Terminal Colors For Neovim: {{{
  224. if has('nvim')
  225. let g:terminal_color_0 = s:bg0[0]
  226. let g:terminal_color_8 = s:gray[0]
  227. let g:terminal_color_1 = s:gb.neutral_red[0]
  228. let g:terminal_color_9 = s:red[0]
  229. let g:terminal_color_2 = s:gb.neutral_green[0]
  230. let g:terminal_color_10 = s:green[0]
  231. let g:terminal_color_3 = s:gb.neutral_yellow[0]
  232. let g:terminal_color_11 = s:yellow[0]
  233. let g:terminal_color_4 = s:gb.neutral_blue[0]
  234. let g:terminal_color_12 = s:blue[0]
  235. let g:terminal_color_5 = s:gb.neutral_purple[0]
  236. let g:terminal_color_13 = s:purple[0]
  237. let g:terminal_color_6 = s:gb.neutral_aqua[0]
  238. let g:terminal_color_14 = s:aqua[0]
  239. let g:terminal_color_7 = s:fg4[0]
  240. let g:terminal_color_15 = s:fg1[0]
  241. endif
  242. " }}}
  243. " Overload Setting: {{{
  244. let s:hls_cursor = s:orange
  245. if exists('g:gruvbox_hls_cursor')
  246. let s:hls_cursor = get(s:gb, g:gruvbox_hls_cursor)
  247. endif
  248. let s:number_column = s:none
  249. if exists('g:gruvbox_number_column')
  250. let s:number_column = get(s:gb, g:gruvbox_number_column)
  251. endif
  252. let s:sign_column = s:bg1
  253. if exists('g:gitgutter_override_sign_column_highlight') &&
  254. \ g:gitgutter_override_sign_column_highlight == 1
  255. let s:sign_column = s:number_column
  256. else
  257. let g:gitgutter_override_sign_column_highlight = 0
  258. if exists('g:gruvbox_sign_column')
  259. let s:sign_column = get(s:gb, g:gruvbox_sign_column)
  260. endif
  261. endif
  262. let s:color_column = s:bg1
  263. if exists('g:gruvbox_color_column')
  264. let s:color_column = get(s:gb, g:gruvbox_color_column)
  265. endif
  266. let s:vert_split = s:bg0
  267. if exists('g:gruvbox_vert_split')
  268. let s:vert_split = get(s:gb, g:gruvbox_vert_split)
  269. endif
  270. let s:invert_signs = ''
  271. if exists('g:gruvbox_invert_signs')
  272. if g:gruvbox_invert_signs == 1
  273. let s:invert_signs = s:inverse
  274. endif
  275. endif
  276. let s:invert_selection = s:inverse
  277. if exists('g:gruvbox_invert_selection')
  278. if g:gruvbox_invert_selection == 0
  279. let s:invert_selection = ''
  280. endif
  281. endif
  282. let s:invert_tabline = ''
  283. if exists('g:gruvbox_invert_tabline')
  284. if g:gruvbox_invert_tabline == 1
  285. let s:invert_tabline = s:inverse
  286. endif
  287. endif
  288. let s:italicize_comments = s:italic
  289. if exists('g:gruvbox_italicize_comments')
  290. if g:gruvbox_italicize_comments == 0
  291. let s:italicize_comments = ''
  292. endif
  293. endif
  294. let s:italicize_strings = ''
  295. if exists('g:gruvbox_italicize_strings')
  296. if g:gruvbox_italicize_strings == 1
  297. let s:italicize_strings = s:italic
  298. endif
  299. endif
  300. " }}}
  301. " Highlighting Function: {{{
  302. function! s:HL(group, fg, ...)
  303. " Arguments: group, guifg, guibg, gui, guisp
  304. " foreground
  305. let fg = a:fg
  306. " background
  307. if a:0 >= 1
  308. let bg = a:1
  309. else
  310. let bg = s:none
  311. endif
  312. " emphasis
  313. if a:0 >= 2 && strlen(a:2)
  314. let emstr = a:2
  315. else
  316. let emstr = 'NONE,'
  317. endif
  318. " special fallback
  319. if a:0 >= 3
  320. if g:gruvbox_guisp_fallback != 'NONE'
  321. let fg = a:3
  322. endif
  323. " bg fallback mode should invert higlighting
  324. if g:gruvbox_guisp_fallback == 'bg'
  325. let emstr .= 'inverse,'
  326. endif
  327. endif
  328. let histring = [ 'hi', a:group,
  329. \ 'guifg=' . fg[0], 'ctermfg=' . fg[1],
  330. \ 'guibg=' . bg[0], 'ctermbg=' . bg[1],
  331. \ 'gui=' . emstr[:-2], 'cterm=' . emstr[:-2]
  332. \ ]
  333. " special
  334. if a:0 >= 3
  335. call add(histring, 'guisp=' . a:3[0])
  336. endif
  337. execute join(histring, ' ')
  338. endfunction
  339. " }}}
  340. " Gruvbox Hi Groups: {{{
  341. " memoize common hi groups
  342. call s:HL('GruvboxFg0', s:fg0)
  343. call s:HL('GruvboxFg1', s:fg1)
  344. call s:HL('GruvboxFg2', s:fg2)
  345. call s:HL('GruvboxFg3', s:fg3)
  346. call s:HL('GruvboxFg4', s:fg4)
  347. call s:HL('GruvboxGray', s:gray)
  348. call s:HL('GruvboxBg0', s:bg0)
  349. call s:HL('GruvboxBg1', s:bg1)
  350. call s:HL('GruvboxBg2', s:bg2)
  351. call s:HL('GruvboxBg3', s:bg3)
  352. call s:HL('GruvboxBg4', s:bg4)
  353. call s:HL('GruvboxRed', s:red)
  354. call s:HL('GruvboxRedBold', s:red, s:none, s:bold)
  355. call s:HL('GruvboxGreen', s:green)
  356. call s:HL('GruvboxGreenBold', s:green, s:none, s:bold)
  357. call s:HL('GruvboxYellow', s:yellow)
  358. call s:HL('GruvboxYellowBold', s:yellow, s:none, s:bold)
  359. call s:HL('GruvboxBlue', s:blue)
  360. call s:HL('GruvboxBlueBold', s:blue, s:none, s:bold)
  361. call s:HL('GruvboxPurple', s:purple)
  362. call s:HL('GruvboxPurpleBold', s:purple, s:none, s:bold)
  363. call s:HL('GruvboxAqua', s:aqua)
  364. call s:HL('GruvboxAquaBold', s:aqua, s:none, s:bold)
  365. call s:HL('GruvboxOrange', s:orange)
  366. call s:HL('GruvboxOrangeBold', s:orange, s:none, s:bold)
  367. call s:HL('GruvboxRedSign', s:red, s:sign_column, s:invert_signs)
  368. call s:HL('GruvboxGreenSign', s:green, s:sign_column, s:invert_signs)
  369. call s:HL('GruvboxYellowSign', s:yellow, s:sign_column, s:invert_signs)
  370. call s:HL('GruvboxBlueSign', s:blue, s:sign_column, s:invert_signs)
  371. call s:HL('GruvboxPurpleSign', s:purple, s:sign_column, s:invert_signs)
  372. call s:HL('GruvboxAquaSign', s:aqua, s:sign_column, s:invert_signs)
  373. " }}}
  374. " Vanilla colorscheme ---------------------------------------------------------
  375. " General UI: {{{
  376. " Normal text
  377. call s:HL('Normal', s:fg1, s:bg0)
  378. " Correct background (see issue #7):
  379. " --- Problem with changing between dark and light on 256 color terminal
  380. " --- https://github.com/morhetz/gruvbox/issues/7
  381. if s:is_dark
  382. set background=dark
  383. else
  384. set background=light
  385. endif
  386. if version >= 700
  387. " Screen line that the cursor is
  388. call s:HL('CursorLine', s:none, s:bg1)
  389. " Screen column that the cursor is
  390. hi! link CursorColumn CursorLine
  391. " Tab pages line filler
  392. call s:HL('TabLineFill', s:bg4, s:bg1, s:invert_tabline)
  393. " Active tab page label
  394. call s:HL('TabLineSel', s:green, s:bg1, s:invert_tabline)
  395. " Not active tab page label
  396. hi! link TabLine TabLineFill
  397. " Match paired bracket under the cursor
  398. call s:HL('MatchParen', s:none, s:bg3, s:bold)
  399. endif
  400. if version >= 703
  401. " Highlighted screen columns
  402. call s:HL('ColorColumn', s:none, s:color_column)
  403. " Concealed element: \lambda → λ
  404. call s:HL('Conceal', s:blue, s:none)
  405. " Line number of CursorLine
  406. call s:HL('CursorLineNr', s:yellow, s:bg1)
  407. endif
  408. hi! link NonText GruvboxBg2
  409. hi! link SpecialKey GruvboxBg2
  410. call s:HL('Visual', s:none, s:bg3, s:invert_selection)
  411. hi! link VisualNOS Visual
  412. call s:HL('Search', s:yellow, s:bg0, s:inverse)
  413. call s:HL('IncSearch', s:hls_cursor, s:bg0, s:inverse)
  414. call s:HL('Underlined', s:blue, s:none, s:underline)
  415. call s:HL('StatusLine', s:bg2, s:fg1, s:inverse)
  416. call s:HL('StatusLineNC', s:bg1, s:fg4, s:inverse)
  417. " The column separating vertically split windows
  418. call s:HL('VertSplit', s:bg3, s:vert_split)
  419. " Current match in wildmenu completion
  420. call s:HL('WildMenu', s:blue, s:bg2, s:bold)
  421. " Directory names, special names in listing
  422. hi! link Directory GruvboxGreenBold
  423. " Titles for output from :set all, :autocmd, etc.
  424. hi! link Title GruvboxGreenBold
  425. " Error messages on the command line
  426. call s:HL('ErrorMsg', s:bg0, s:red, s:bold)
  427. " More prompt: -- More --
  428. hi! link MoreMsg GruvboxYellowBold
  429. " Current mode message: -- INSERT --
  430. hi! link ModeMsg GruvboxYellowBold
  431. " 'Press enter' prompt and yes/no questions
  432. hi! link Question GruvboxOrangeBold
  433. " Warning messages
  434. hi! link WarningMsg GruvboxRedBold
  435. " }}}
  436. " Gutter: {{{
  437. " Line number for :number and :# commands
  438. call s:HL('LineNr', s:bg4, s:number_column)
  439. " Column where signs are displayed
  440. call s:HL('SignColumn', s:none, s:sign_column)
  441. " Line used for closed folds
  442. call s:HL('Folded', s:gray, s:bg1, s:italic)
  443. " Column where folds are displayed
  444. call s:HL('FoldColumn', s:gray, s:bg1)
  445. " }}}
  446. " Cursor: {{{
  447. " Character under cursor
  448. call s:HL('Cursor', s:none, s:none, s:inverse)
  449. " Visual mode cursor, selection
  450. hi! link vCursor Cursor
  451. " Input moder cursor
  452. hi! link iCursor Cursor
  453. " Language mapping cursor
  454. hi! link lCursor Cursor
  455. " }}}
  456. " Syntax Highlighting: {{{
  457. if g:gruvbox_improved_strings == 0
  458. hi! link Special GruvboxOrange
  459. else
  460. call s:HL('Special', s:orange, s:bg1, s:italicize_strings)
  461. endif
  462. call s:HL('Comment', s:gray, s:none, s:italicize_comments)
  463. call s:HL('Todo', s:vim_fg, s:vim_bg, s:bold . s:italic)
  464. call s:HL('Error', s:red, s:vim_bg, s:bold . s:inverse)
  465. " Generic statement
  466. hi! link Statement GruvboxRed
  467. " if, then, else, endif, swicth, etc.
  468. hi! link Conditional GruvboxRed
  469. " for, do, while, etc.
  470. hi! link Repeat GruvboxRed
  471. " case, default, etc.
  472. hi! link Label GruvboxRed
  473. " try, catch, throw
  474. hi! link Exception GruvboxRed
  475. " sizeof, "+", "*", etc.
  476. hi! link Operator Normal
  477. " Any other keyword
  478. hi! link Keyword GruvboxRed
  479. " Variable name
  480. hi! link Identifier GruvboxBlue
  481. " Function name
  482. hi! link Function GruvboxGreenBold
  483. " Generic preprocessor
  484. hi! link PreProc GruvboxAqua
  485. " Preprocessor #include
  486. hi! link Include GruvboxAqua
  487. " Preprocessor #define
  488. hi! link Define GruvboxAqua
  489. " Same as Define
  490. hi! link Macro GruvboxAqua
  491. " Preprocessor #if, #else, #endif, etc.
  492. hi! link PreCondit GruvboxAqua
  493. " Generic constant
  494. hi! link Constant GruvboxPurple
  495. " Character constant: 'c', '/n'
  496. hi! link Character GruvboxPurple
  497. " String constant: "this is a string"
  498. if g:gruvbox_improved_strings == 0
  499. call s:HL('String', s:green, s:none, s:italicize_strings)
  500. else
  501. call s:HL('String', s:fg1, s:bg1, s:italicize_strings)
  502. endif
  503. " Boolean constant: TRUE, false
  504. hi! link Boolean GruvboxPurple
  505. " Number constant: 234, 0xff
  506. hi! link Number GruvboxPurple
  507. " Floating point constant: 2.3e10
  508. hi! link Float GruvboxPurple
  509. " Generic type
  510. hi! link Type GruvboxYellow
  511. " static, register, volatile, etc
  512. hi! link StorageClass GruvboxOrange
  513. " struct, union, enum, etc.
  514. hi! link Structure GruvboxAqua
  515. " typedef
  516. hi! link Typedef GruvboxYellow
  517. " }}}
  518. " Completion Menu: {{{
  519. if version >= 700
  520. " Popup menu: normal item
  521. call s:HL('Pmenu', s:fg1, s:bg2)
  522. " Popup menu: selected item
  523. call s:HL('PmenuSel', s:bg2, s:blue, s:bold)
  524. " Popup menu: scrollbar
  525. call s:HL('PmenuSbar', s:none, s:bg2)
  526. " Popup menu: scrollbar thumb
  527. call s:HL('PmenuThumb', s:none, s:bg4)
  528. endif
  529. " }}}
  530. " Diffs: {{{
  531. call s:HL('DiffDelete', s:red, s:bg0, s:inverse)
  532. call s:HL('DiffAdd', s:green, s:bg0, s:inverse)
  533. "call s:HL('DiffChange', s:bg0, s:blue)
  534. "call s:HL('DiffText', s:bg0, s:yellow)
  535. " Alternative setting
  536. call s:HL('DiffChange', s:aqua, s:bg0, s:inverse)
  537. call s:HL('DiffText', s:yellow, s:bg0, s:inverse)
  538. " }}}
  539. " Spelling: {{{
  540. if has("spell")
  541. " Not capitalised word, or compile warnings
  542. if g:gruvbox_improved_warnings == 0
  543. call s:HL('SpellCap', s:none, s:none, s:undercurl, s:red)
  544. else
  545. call s:HL('SpellCap', s:green, s:none, s:bold . s:italic)
  546. endif
  547. " Not recognized word
  548. call s:HL('SpellBad', s:none, s:none, s:undercurl, s:blue)
  549. " Wrong spelling for selected region
  550. call s:HL('SpellLocal', s:none, s:none, s:undercurl, s:aqua)
  551. " Rare word
  552. call s:HL('SpellRare', s:none, s:none, s:undercurl, s:purple)
  553. endif
  554. " }}}
  555. " Plugin specific -------------------------------------------------------------
  556. " EasyMotion: {{{
  557. hi! link EasyMotionTarget Search
  558. hi! link EasyMotionShade Comment
  559. " }}}
  560. " Sneak: {{{
  561. autocmd ColorScheme gruvbox hi! link Sneak Search
  562. autocmd ColorScheme gruvbox hi! link SneakLabel Search
  563. " }}}
  564. " Indent Guides: {{{
  565. if !exists('g:indent_guides_auto_colors')
  566. let g:indent_guides_auto_colors = 0
  567. endif
  568. if g:indent_guides_auto_colors == 0
  569. if g:gruvbox_invert_indent_guides == 0
  570. call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2)
  571. call s:HL('IndentGuidesEven', s:vim_bg, s:bg1)
  572. else
  573. call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2, s:inverse)
  574. call s:HL('IndentGuidesEven', s:vim_bg, s:bg3, s:inverse)
  575. endif
  576. endif
  577. " }}}
  578. " IndentLine: {{{
  579. if !exists('g:indentLine_color_term')
  580. let g:indentLine_color_term = s:bg2[1]
  581. endif
  582. if !exists('g:indentLine_color_gui')
  583. let g:indentLine_color_gui = s:bg2[0]
  584. endif
  585. " }}}
  586. " Rainbow Parentheses: {{{
  587. if !exists('g:rbpt_colorpairs')
  588. let g:rbpt_colorpairs =
  589. \ [
  590. \ ['blue', '#458588'], ['magenta', '#b16286'],
  591. \ ['red', '#cc241d'], ['166', '#d65d0e']
  592. \ ]
  593. endif
  594. let g:rainbow_guifgs = [ '#d65d0e', '#cc241d', '#b16286', '#458588' ]
  595. let g:rainbow_ctermfgs = [ '166', 'red', 'magenta', 'blue' ]
  596. if !exists('g:rainbow_conf')
  597. let g:rainbow_conf = {}
  598. endif
  599. if !has_key(g:rainbow_conf, 'guifgs')
  600. let g:rainbow_conf['guifgs'] = g:rainbow_guifgs
  601. endif
  602. if !has_key(g:rainbow_conf, 'ctermfgs')
  603. let g:rainbow_conf['ctermfgs'] = g:rainbow_ctermfgs
  604. endif
  605. let g:niji_dark_colours = g:rbpt_colorpairs
  606. let g:niji_light_colours = g:rbpt_colorpairs
  607. "}}}
  608. " GitGutter: {{{
  609. hi! link GitGutterAdd GruvboxGreenSign
  610. hi! link GitGutterChange GruvboxAquaSign
  611. hi! link GitGutterDelete GruvboxRedSign
  612. hi! link GitGutterChangeDelete GruvboxAquaSign
  613. " }}}
  614. " GitCommit: "{{{
  615. hi! link gitcommitSelectedFile GruvboxGreen
  616. hi! link gitcommitDiscardedFile GruvboxRed
  617. " }}}
  618. " Signify: {{{
  619. hi! link SignifySignAdd GruvboxGreenSign
  620. hi! link SignifySignChange GruvboxAquaSign
  621. hi! link SignifySignDelete GruvboxRedSign
  622. " }}}
  623. " Syntastic: {{{
  624. call s:HL('SyntasticError', s:none, s:none, s:undercurl, s:red)
  625. call s:HL('SyntasticWarning', s:none, s:none, s:undercurl, s:yellow)
  626. hi! link SyntasticErrorSign GruvboxRedSign
  627. hi! link SyntasticWarningSign GruvboxYellowSign
  628. " }}}
  629. " Signature: {{{
  630. hi! link SignatureMarkText GruvboxBlueSign
  631. hi! link SignatureMarkerText GruvboxPurpleSign
  632. " }}}
  633. " ShowMarks: {{{
  634. hi! link ShowMarksHLl GruvboxBlueSign
  635. hi! link ShowMarksHLu GruvboxBlueSign
  636. hi! link ShowMarksHLo GruvboxBlueSign
  637. hi! link ShowMarksHLm GruvboxBlueSign
  638. " }}}
  639. " CtrlP: {{{
  640. hi! link CtrlPMatch GruvboxYellow
  641. hi! link CtrlPNoEntries GruvboxRed
  642. hi! link CtrlPPrtBase GruvboxBg2
  643. hi! link CtrlPPrtCursor GruvboxBlue
  644. hi! link CtrlPLinePre GruvboxBg2
  645. call s:HL('CtrlPMode1', s:blue, s:bg2, s:bold)
  646. call s:HL('CtrlPMode2', s:bg0, s:blue, s:bold)
  647. call s:HL('CtrlPStats', s:fg4, s:bg2, s:bold)
  648. " }}}
  649. " Startify: {{{
  650. hi! link StartifyBracket GruvboxFg3
  651. hi! link StartifyFile GruvboxFg1
  652. hi! link StartifyNumber GruvboxBlue
  653. hi! link StartifyPath GruvboxGray
  654. hi! link StartifySlash GruvboxGray
  655. hi! link StartifySection GruvboxYellow
  656. hi! link StartifySpecial GruvboxBg2
  657. hi! link StartifyHeader GruvboxOrange
  658. hi! link StartifyFooter GruvboxBg2
  659. " }}}
  660. " Vimshell: {{{
  661. let g:vimshell_escape_colors = [
  662. \ s:bg4[0], s:red[0], s:green[0], s:yellow[0],
  663. \ s:blue[0], s:purple[0], s:aqua[0], s:fg4[0],
  664. \ s:bg0[0], s:red[0], s:green[0], s:orange[0],
  665. \ s:blue[0], s:purple[0], s:aqua[0], s:fg0[0]
  666. \ ]
  667. " }}}
  668. " BufTabLine: {{{
  669. call s:HL('BufTabLineCurrent', s:bg0, s:fg4)
  670. call s:HL('BufTabLineActive', s:fg4, s:bg2)
  671. call s:HL('BufTabLineHidden', s:bg4, s:bg1)
  672. call s:HL('BufTabLineFill', s:bg0, s:bg0)
  673. " }}}
  674. " Asynchronous Lint Engine: {{{
  675. call s:HL('ALEError', s:none, s:none, s:undercurl, s:red)
  676. call s:HL('ALEWarning', s:none, s:none, s:undercurl, s:yellow)
  677. call s:HL('ALEInfo', s:none, s:none, s:undercurl, s:blue)
  678. hi! link ALEErrorSign GruvboxRedSign
  679. hi! link ALEWarningSign GruvboxYellowSign
  680. hi! link ALEInfoSign GruvboxBlueSign
  681. " }}}
  682. " Dirvish: {{{
  683. hi! link DirvishPathTail GruvboxAqua
  684. hi! link DirvishArg GruvboxYellow
  685. " }}}
  686. " Netrw: {{{
  687. hi! link netrwDir GruvboxAqua
  688. hi! link netrwClassify GruvboxAqua
  689. hi! link netrwLink GruvboxGray
  690. hi! link netrwSymLink GruvboxFg1
  691. hi! link netrwExe GruvboxYellow
  692. hi! link netrwComment GruvboxGray
  693. hi! link netrwList GruvboxBlue
  694. hi! link netrwHelpCmd GruvboxAqua
  695. hi! link netrwCmdSep GruvboxFg3
  696. hi! link netrwVersion GruvboxGreen
  697. " }}}
  698. " NERDTree: {{{
  699. hi! link NERDTreeDir GruvboxAqua
  700. hi! link NERDTreeDirSlash GruvboxAqua
  701. hi! link NERDTreeOpenable GruvboxOrange
  702. hi! link NERDTreeClosable GruvboxOrange
  703. hi! link NERDTreeFile GruvboxFg1
  704. hi! link NERDTreeExecFile GruvboxYellow
  705. hi! link NERDTreeUp GruvboxGray
  706. hi! link NERDTreeCWD GruvboxGreen
  707. hi! link NERDTreeHelp GruvboxFg1
  708. hi! link NERDTreeToggleOn GruvboxGreen
  709. hi! link NERDTreeToggleOff GruvboxRed
  710. " }}}
  711. " Filetype specific -----------------------------------------------------------
  712. " Diff: {{{
  713. hi! link diffAdded GruvboxGreen
  714. hi! link diffRemoved GruvboxRed
  715. hi! link diffChanged GruvboxAqua
  716. hi! link diffFile GruvboxOrange
  717. hi! link diffNewFile GruvboxYellow
  718. hi! link diffLine GruvboxBlue
  719. " }}}
  720. " Html: {{{
  721. hi! link htmlTag GruvboxBlue
  722. hi! link htmlEndTag GruvboxBlue
  723. hi! link htmlTagName GruvboxAquaBold
  724. hi! link htmlArg GruvboxAqua
  725. hi! link htmlScriptTag GruvboxPurple
  726. hi! link htmlTagN GruvboxFg1
  727. hi! link htmlSpecialTagName GruvboxAquaBold
  728. call s:HL('htmlLink', s:fg4, s:none, s:underline)
  729. hi! link htmlSpecialChar GruvboxOrange
  730. call s:HL('htmlBold', s:vim_fg, s:vim_bg, s:bold)
  731. call s:HL('htmlBoldUnderline', s:vim_fg, s:vim_bg, s:bold . s:underline)
  732. call s:HL('htmlBoldItalic', s:vim_fg, s:vim_bg, s:bold . s:italic)
  733. call s:HL('htmlBoldUnderlineItalic', s:vim_fg, s:vim_bg, s:bold . s:underline . s:italic)
  734. call s:HL('htmlUnderline', s:vim_fg, s:vim_bg, s:underline)
  735. call s:HL('htmlUnderlineItalic', s:vim_fg, s:vim_bg, s:underline . s:italic)
  736. call s:HL('htmlItalic', s:vim_fg, s:vim_bg, s:italic)
  737. " }}}
  738. " Xml: {{{
  739. hi! link xmlTag GruvboxBlue
  740. hi! link xmlEndTag GruvboxBlue
  741. hi! link xmlTagName GruvboxBlue
  742. hi! link xmlEqual GruvboxBlue
  743. hi! link docbkKeyword GruvboxAquaBold
  744. hi! link xmlDocTypeDecl GruvboxGray
  745. hi! link xmlDocTypeKeyword GruvboxPurple
  746. hi! link xmlCdataStart GruvboxGray
  747. hi! link xmlCdataCdata GruvboxPurple
  748. hi! link dtdFunction GruvboxGray
  749. hi! link dtdTagName GruvboxPurple
  750. hi! link xmlAttrib GruvboxAqua
  751. hi! link xmlProcessingDelim GruvboxGray
  752. hi! link dtdParamEntityPunct GruvboxGray
  753. hi! link dtdParamEntityDPunct GruvboxGray
  754. hi! link xmlAttribPunct GruvboxGray
  755. hi! link xmlEntity GruvboxOrange
  756. hi! link xmlEntityPunct GruvboxOrange
  757. " }}}
  758. " Vim: {{{
  759. call s:HL('vimCommentTitle', s:fg4_256, s:none, s:bold . s:italicize_comments)
  760. hi! link vimNotation GruvboxOrange
  761. hi! link vimBracket GruvboxOrange
  762. hi! link vimMapModKey GruvboxOrange
  763. hi! link vimFuncSID GruvboxFg3
  764. hi! link vimSetSep GruvboxFg3
  765. hi! link vimSep GruvboxFg3
  766. hi! link vimContinue GruvboxFg3
  767. " }}}
  768. " Clojure: {{{
  769. hi! link clojureKeyword GruvboxBlue
  770. hi! link clojureCond GruvboxOrange
  771. hi! link clojureSpecial GruvboxOrange
  772. hi! link clojureDefine GruvboxOrange
  773. hi! link clojureFunc GruvboxYellow
  774. hi! link clojureRepeat GruvboxYellow
  775. hi! link clojureCharacter GruvboxAqua
  776. hi! link clojureStringEscape GruvboxAqua
  777. hi! link clojureException GruvboxRed
  778. hi! link clojureRegexp GruvboxAqua
  779. hi! link clojureRegexpEscape GruvboxAqua
  780. call s:HL('clojureRegexpCharClass', s:fg3, s:none, s:bold)
  781. hi! link clojureRegexpMod clojureRegexpCharClass
  782. hi! link clojureRegexpQuantifier clojureRegexpCharClass
  783. hi! link clojureParen GruvboxFg3
  784. hi! link clojureAnonArg GruvboxYellow
  785. hi! link clojureVariable GruvboxBlue
  786. hi! link clojureMacro GruvboxOrange
  787. hi! link clojureMeta GruvboxYellow
  788. hi! link clojureDeref GruvboxYellow
  789. hi! link clojureQuote GruvboxYellow
  790. hi! link clojureUnquote GruvboxYellow
  791. " }}}
  792. " C: {{{
  793. hi! link cOperator GruvboxPurple
  794. hi! link cStructure GruvboxOrange
  795. " }}}
  796. " Python: {{{
  797. hi! link pythonBuiltin GruvboxOrange
  798. hi! link pythonBuiltinObj GruvboxOrange
  799. hi! link pythonBuiltinFunc GruvboxOrange
  800. hi! link pythonFunction GruvboxAqua
  801. hi! link pythonDecorator GruvboxRed
  802. hi! link pythonInclude GruvboxBlue
  803. hi! link pythonImport GruvboxBlue
  804. hi! link pythonRun GruvboxBlue
  805. hi! link pythonCoding GruvboxBlue
  806. hi! link pythonOperator GruvboxRed
  807. hi! link pythonException GruvboxRed
  808. hi! link pythonExceptions GruvboxPurple
  809. hi! link pythonBoolean GruvboxPurple
  810. hi! link pythonDot GruvboxFg3
  811. hi! link pythonConditional GruvboxRed
  812. hi! link pythonRepeat GruvboxRed
  813. hi! link pythonDottedName GruvboxGreenBold
  814. " }}}
  815. " CSS: {{{
  816. hi! link cssBraces GruvboxBlue
  817. hi! link cssFunctionName GruvboxYellow
  818. hi! link cssIdentifier GruvboxOrange
  819. hi! link cssClassName GruvboxGreen
  820. hi! link cssColor GruvboxBlue
  821. hi! link cssSelectorOp GruvboxBlue
  822. hi! link cssSelectorOp2 GruvboxBlue
  823. hi! link cssImportant GruvboxGreen
  824. hi! link cssVendor GruvboxFg1
  825. hi! link cssTextProp GruvboxAqua
  826. hi! link cssAnimationProp GruvboxAqua
  827. hi! link cssUIProp GruvboxYellow
  828. hi! link cssTransformProp GruvboxAqua
  829. hi! link cssTransitionProp GruvboxAqua
  830. hi! link cssPrintProp GruvboxAqua
  831. hi! link cssPositioningProp GruvboxYellow
  832. hi! link cssBoxProp GruvboxAqua
  833. hi! link cssFontDescriptorProp GruvboxAqua
  834. hi! link cssFlexibleBoxProp GruvboxAqua
  835. hi! link cssBorderOutlineProp GruvboxAqua
  836. hi! link cssBackgroundProp GruvboxAqua
  837. hi! link cssMarginProp GruvboxAqua
  838. hi! link cssListProp GruvboxAqua
  839. hi! link cssTableProp GruvboxAqua
  840. hi! link cssFontProp GruvboxAqua
  841. hi! link cssPaddingProp GruvboxAqua
  842. hi! link cssDimensionProp GruvboxAqua
  843. hi! link cssRenderProp GruvboxAqua
  844. hi! link cssColorProp GruvboxAqua
  845. hi! link cssGeneratedContentProp GruvboxAqua
  846. " }}}
  847. " JavaScript: {{{
  848. hi! link javaScriptBraces GruvboxFg1
  849. hi! link javaScriptFunction GruvboxAqua
  850. hi! link javaScriptIdentifier GruvboxRed
  851. hi! link javaScriptMember GruvboxBlue
  852. hi! link javaScriptNumber GruvboxPurple
  853. hi! link javaScriptNull GruvboxPurple
  854. hi! link javaScriptParens GruvboxFg3
  855. " }}}
  856. " YAJS: {{{
  857. hi! link javascriptImport GruvboxAqua
  858. hi! link javascriptExport GruvboxAqua
  859. hi! link javascriptClassKeyword GruvboxAqua
  860. hi! link javascriptClassExtends GruvboxAqua
  861. hi! link javascriptDefault GruvboxAqua
  862. hi! link javascriptClassName GruvboxYellow
  863. hi! link javascriptClassSuperName GruvboxYellow
  864. hi! link javascriptGlobal GruvboxYellow
  865. hi! link javascriptEndColons GruvboxFg1
  866. hi! link javascriptFuncArg GruvboxFg1
  867. hi! link javascriptGlobalMethod GruvboxFg1
  868. hi! link javascriptNodeGlobal GruvboxFg1
  869. hi! link javascriptBOMWindowProp GruvboxFg1
  870. hi! link javascriptArrayMethod GruvboxFg1
  871. hi! link javascriptArrayStaticMethod GruvboxFg1
  872. hi! link javascriptCacheMethod GruvboxFg1
  873. hi! link javascriptDateMethod GruvboxFg1
  874. hi! link javascriptMathStaticMethod GruvboxFg1
  875. " hi! link javascriptProp GruvboxFg1
  876. hi! link javascriptURLUtilsProp GruvboxFg1
  877. hi! link javascriptBOMNavigatorProp GruvboxFg1
  878. hi! link javascriptDOMDocMethod GruvboxFg1
  879. hi! link javascriptDOMDocProp GruvboxFg1
  880. hi! link javascriptBOMLocationMethod GruvboxFg1
  881. hi! link javascriptBOMWindowMethod GruvboxFg1
  882. hi! link javascriptStringMethod GruvboxFg1
  883. hi! link javascriptVariable GruvboxOrange
  884. " hi! link javascriptVariable GruvboxRed
  885. " hi! link javascriptIdentifier GruvboxOrange
  886. " hi! link javascriptClassSuper GruvboxOrange
  887. hi! link javascriptIdentifier GruvboxOrange
  888. hi! link javascriptClassSuper GruvboxOrange
  889. " hi! link javascriptFuncKeyword GruvboxOrange
  890. " hi! link javascriptAsyncFunc GruvboxOrange
  891. hi! link javascriptFuncKeyword GruvboxAqua
  892. hi! link javascriptAsyncFunc GruvboxAqua
  893. hi! link javascriptClassStatic GruvboxOrange
  894. hi! link javascriptOperator GruvboxRed
  895. hi! link javascriptForOperator GruvboxRed
  896. hi! link javascriptYield GruvboxRed
  897. hi! link javascriptExceptions GruvboxRed
  898. hi! link javascriptMessage GruvboxRed
  899. hi! link javascriptTemplateSB GruvboxAqua
  900. hi! link javascriptTemplateSubstitution GruvboxFg1
  901. " hi! link javascriptLabel GruvboxBlue
  902. " hi! link javascriptObjectLabel GruvboxBlue
  903. " hi! link javascriptPropertyName GruvboxBlue
  904. hi! link javascriptLabel GruvboxFg1
  905. hi! link javascriptObjectLabel GruvboxFg1
  906. hi! link javascriptPropertyName GruvboxFg1
  907. hi! link javascriptLogicSymbols GruvboxFg1
  908. hi! link javascriptArrowFunc GruvboxYellow
  909. hi! link javascriptDocParamName GruvboxFg4
  910. hi! link javascriptDocTags GruvboxFg4
  911. hi! link javascriptDocNotation GruvboxFg4
  912. hi! link javascriptDocParamType GruvboxFg4
  913. hi! link javascriptDocNamedParamType GruvboxFg4
  914. hi! link javascriptBrackets GruvboxFg1
  915. hi! link javascriptDOMElemAttrs GruvboxFg1
  916. hi! link javascriptDOMEventMethod GruvboxFg1
  917. hi! link javascriptDOMNodeMethod GruvboxFg1
  918. hi! link javascriptDOMStorageMethod GruvboxFg1
  919. hi! link javascriptHeadersMethod GruvboxFg1
  920. hi! link javascriptAsyncFuncKeyword GruvboxRed
  921. hi! link javascriptAwaitFuncKeyword GruvboxRed
  922. " }}}
  923. " PanglossJS: {{{
  924. hi! link jsClassKeyword GruvboxAqua
  925. hi! link jsExtendsKeyword GruvboxAqua
  926. hi! link jsExportDefault GruvboxAqua
  927. hi! link jsTemplateBraces GruvboxAqua
  928. hi! link jsGlobalNodeObjects GruvboxFg1
  929. hi! link jsGlobalObjects GruvboxFg1
  930. hi! link jsFunction GruvboxAqua
  931. hi! link jsFuncParens GruvboxFg3
  932. hi! link jsParens GruvboxFg3
  933. hi! link jsNull GruvboxPurple
  934. hi! link jsUndefined GruvboxPurple
  935. hi! link jsClassDefinition GruvboxYellow
  936. " }}}
  937. " TypeScript: {{{
  938. hi! link typeScriptReserved GruvboxAqua
  939. hi! link typeScriptLabel GruvboxAqua
  940. hi! link typeScriptFuncKeyword GruvboxAqua
  941. hi! link typeScriptIdentifier GruvboxOrange
  942. hi! link typeScriptBraces GruvboxFg1
  943. hi! link typeScriptEndColons GruvboxFg1
  944. hi! link typeScriptDOMObjects GruvboxFg1
  945. hi! link typeScriptAjaxMethods GruvboxFg1
  946. hi! link typeScriptLogicSymbols GruvboxFg1
  947. hi! link typeScriptDocSeeTag Comment
  948. hi! link typeScriptDocParam Comment
  949. hi! link typeScriptDocTags vimCommentTitle
  950. hi! link typeScriptGlobalObjects GruvboxFg1
  951. hi! link typeScriptParens GruvboxFg3
  952. hi! link typeScriptOpSymbols GruvboxFg3
  953. hi! link typeScriptHtmlElemProperties GruvboxFg1
  954. hi! link typeScriptNull GruvboxPurple
  955. hi! link typeScriptInterpolationDelimiter GruvboxAqua
  956. " }}}
  957. " PureScript: {{{
  958. hi! link purescriptModuleKeyword GruvboxAqua
  959. hi! link purescriptModuleName GruvboxFg1
  960. hi! link purescriptWhere GruvboxAqua
  961. hi! link purescriptDelimiter GruvboxFg4
  962. hi! link purescriptType GruvboxFg1
  963. hi! link purescriptImportKeyword GruvboxAqua
  964. hi! link purescriptHidingKeyword GruvboxAqua
  965. hi! link purescriptAsKeyword GruvboxAqua
  966. hi! link purescriptStructure GruvboxAqua
  967. hi! link purescriptOperator GruvboxBlue
  968. hi! link purescriptTypeVar GruvboxFg1
  969. hi! link purescriptConstructor GruvboxFg1
  970. hi! link purescriptFunction GruvboxFg1
  971. hi! link purescriptConditional GruvboxOrange
  972. hi! link purescriptBacktick GruvboxOrange
  973. " }}}
  974. " CoffeeScript: {{{
  975. hi! link coffeeExtendedOp GruvboxFg3
  976. hi! link coffeeSpecialOp GruvboxFg3
  977. hi! link coffeeCurly GruvboxOrange
  978. hi! link coffeeParen GruvboxFg3
  979. hi! link coffeeBracket GruvboxOrange
  980. " }}}
  981. " Ruby: {{{
  982. hi! link rubyStringDelimiter GruvboxGreen
  983. hi! link rubyInterpolationDelimiter GruvboxAqua
  984. " }}}
  985. " ObjectiveC: {{{
  986. hi! link objcTypeModifier GruvboxRed
  987. hi! link objcDirective GruvboxBlue
  988. " }}}
  989. " Go: {{{
  990. hi! link goDirective GruvboxAqua
  991. hi! link goConstants GruvboxPurple
  992. hi! link goDeclaration GruvboxRed
  993. hi! link goDeclType GruvboxBlue
  994. hi! link goBuiltins GruvboxOrange
  995. " }}}
  996. " Lua: {{{
  997. hi! link luaIn GruvboxRed
  998. hi! link luaFunction GruvboxAqua
  999. hi! link luaTable GruvboxOrange
  1000. " }}}
  1001. " MoonScript: {{{
  1002. hi! link moonSpecialOp GruvboxFg3
  1003. hi! link moonExtendedOp GruvboxFg3
  1004. hi! link moonFunction GruvboxFg3
  1005. hi! link moonObject GruvboxYellow
  1006. " }}}
  1007. " Java: {{{
  1008. hi! link javaAnnotation GruvboxBlue
  1009. hi! link javaDocTags GruvboxAqua
  1010. hi! link javaCommentTitle vimCommentTitle
  1011. hi! link javaParen GruvboxFg3
  1012. hi! link javaParen1 GruvboxFg3
  1013. hi! link javaParen2 GruvboxFg3
  1014. hi! link javaParen3 GruvboxFg3
  1015. hi! link javaParen4 GruvboxFg3
  1016. hi! link javaParen5 GruvboxFg3
  1017. hi! link javaOperator GruvboxOrange
  1018. hi! link javaVarArg GruvboxGreen
  1019. " }}}
  1020. " Elixir: {{{
  1021. hi! link elixirDocString Comment
  1022. hi! link elixirStringDelimiter GruvboxGreen
  1023. hi! link elixirInterpolationDelimiter GruvboxAqua
  1024. hi! link elixirModuleDeclaration GruvboxYellow
  1025. " }}}
  1026. " Scala: {{{
  1027. " NB: scala vim syntax file is kinda horrible
  1028. hi! link scalaNameDefinition GruvboxFg1
  1029. hi! link scalaCaseFollowing GruvboxFg1
  1030. hi! link scalaCapitalWord GruvboxFg1
  1031. hi! link scalaTypeExtension GruvboxFg1
  1032. hi! link scalaKeyword GruvboxRed
  1033. hi! link scalaKeywordModifier GruvboxRed
  1034. hi! link scalaSpecial GruvboxAqua
  1035. hi! link scalaOperator GruvboxFg1
  1036. hi! link scalaTypeDeclaration GruvboxYellow
  1037. hi! link scalaTypeTypePostDeclaration GruvboxYellow
  1038. hi! link scalaInstanceDeclaration GruvboxFg1
  1039. hi! link scalaInterpolation GruvboxAqua
  1040. " }}}
  1041. " Markdown: {{{
  1042. call s:HL('markdownItalic', s:fg3, s:none, s:italic)
  1043. hi! link markdownH1 GruvboxGreenBold
  1044. hi! link markdownH2 GruvboxGreenBold
  1045. hi! link markdownH3 GruvboxYellowBold
  1046. hi! link markdownH4 GruvboxYellowBold
  1047. hi! link markdownH5 GruvboxYellow
  1048. hi! link markdownH6 GruvboxYellow
  1049. hi! link markdownCode GruvboxAqua
  1050. hi! link markdownCodeBlock GruvboxAqua
  1051. hi! link markdownCodeDelimiter GruvboxAqua
  1052. hi! link markdownBlockquote GruvboxGray
  1053. hi! link markdownListMarker GruvboxGray
  1054. hi! link markdownOrderedListMarker GruvboxGray
  1055. hi! link markdownRule GruvboxGray
  1056. hi! link markdownHeadingRule GruvboxGray
  1057. hi! link markdownUrlDelimiter GruvboxFg3
  1058. hi! link markdownLinkDelimiter GruvboxFg3
  1059. hi! link markdownLinkTextDelimiter GruvboxFg3
  1060. hi! link markdownHeadingDelimiter GruvboxOrange
  1061. hi! link markdownUrl GruvboxPurple
  1062. hi! link markdownUrlTitleDelimiter GruvboxGreen
  1063. call s:HL('markdownLinkText', s:gray, s:none, s:underline)
  1064. hi! link markdownIdDeclaration markdownLinkText
  1065. " }}}
  1066. " Haskell: {{{
  1067. " hi! link haskellType GruvboxYellow
  1068. " hi! link haskellOperators GruvboxOrange
  1069. " hi! link haskellConditional GruvboxAqua
  1070. " hi! link haskellLet GruvboxOrange
  1071. "
  1072. hi! link haskellType GruvboxFg1
  1073. hi! link haskellIdentifier GruvboxFg1
  1074. hi! link haskellSeparator GruvboxFg1
  1075. hi! link haskellDelimiter GruvboxFg4
  1076. hi! link haskellOperators GruvboxBlue
  1077. "
  1078. hi! link haskellBacktick GruvboxOrange
  1079. hi! link haskellStatement GruvboxOrange
  1080. hi! link haskellConditional GruvboxOrange
  1081. hi! link haskellLet GruvboxAqua
  1082. hi! link haskellDefault GruvboxAqua
  1083. hi! link haskellWhere GruvboxAqua
  1084. hi! link haskellBottom GruvboxAqua
  1085. hi! link haskellBlockKeywords GruvboxAqua
  1086. hi! link haskellImportKeywords GruvboxAqua
  1087. hi! link haskellDeclKeyword GruvboxAqua
  1088. hi! link haskellDeriving GruvboxAqua
  1089. hi! link haskellAssocType GruvboxAqua
  1090. hi! link haskellNumber GruvboxPurple
  1091. hi! link haskellPragma GruvboxPurple
  1092. hi! link haskellString GruvboxGreen
  1093. hi! link haskellChar GruvboxGreen
  1094. " }}}
  1095. " Json: {{{
  1096. hi! link jsonKeyword GruvboxGreen
  1097. hi! link jsonQuote GruvboxGreen
  1098. hi! link jsonBraces GruvboxFg1
  1099. hi! link jsonString GruvboxFg1
  1100. " }}}
  1101. " Functions -------------------------------------------------------------------
  1102. " Search Highlighting Cursor {{{
  1103. function! GruvboxHlsShowCursor()
  1104. call s:HL('Cursor', s:bg0, s:hls_cursor)
  1105. endfunction
  1106. function! GruvboxHlsHideCursor()
  1107. call s:HL('Cursor', s:none, s:none, s:inverse)
  1108. endfunction
  1109. " }}}
  1110. " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker: