gruvbox.vim 34 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319
  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:bg2
  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:vim_bg, s:invert_tabline)
  393. " Active tab page label
  394. call s:HL('TabLineSel', s:vim_bg, s:bg4, s:bold . 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:bg4, s:bg0, s:bold . s:inverse)
  416. call s:HL('StatusLineNC', s:bg2, s:fg4, s:bold . s:inverse)
  417. " The column separating vertically split windows
  418. call s:HL('VertSplit', s:fg4, 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 * hi! link Sneak Search
  562. autocmd ColorScheme * 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 GruvboxFg0
  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. " Filetype specific -----------------------------------------------------------
  683. " Diff: {{{
  684. hi! link diffAdded GruvboxGreen
  685. hi! link diffRemoved GruvboxRed
  686. hi! link diffChanged GruvboxAqua
  687. hi! link diffFile GruvboxOrange
  688. hi! link diffNewFile GruvboxYellow
  689. hi! link diffLine GruvboxBlue
  690. " }}}
  691. " Html: {{{
  692. hi! link htmlTag GruvboxBlue
  693. hi! link htmlEndTag GruvboxBlue
  694. hi! link htmlTagName GruvboxAquaBold
  695. hi! link htmlArg GruvboxAqua
  696. hi! link htmlScriptTag GruvboxPurple
  697. hi! link htmlTagN GruvboxFg1
  698. hi! link htmlSpecialTagName GruvboxAquaBold
  699. call s:HL('htmlLink', s:fg4, s:none, s:underline)
  700. hi! link htmlSpecialChar GruvboxOrange
  701. call s:HL('htmlBold', s:vim_fg, s:vim_bg, s:bold)
  702. call s:HL('htmlBoldUnderline', s:vim_fg, s:vim_bg, s:bold . s:underline)
  703. call s:HL('htmlBoldItalic', s:vim_fg, s:vim_bg, s:bold . s:italic)
  704. call s:HL('htmlBoldUnderlineItalic', s:vim_fg, s:vim_bg, s:bold . s:underline . s:italic)
  705. call s:HL('htmlUnderline', s:vim_fg, s:vim_bg, s:underline)
  706. call s:HL('htmlUnderlineItalic', s:vim_fg, s:vim_bg, s:underline . s:italic)
  707. call s:HL('htmlItalic', s:vim_fg, s:vim_bg, s:italic)
  708. " }}}
  709. " Xml: {{{
  710. hi! link xmlTag GruvboxBlue
  711. hi! link xmlEndTag GruvboxBlue
  712. hi! link xmlTagName GruvboxBlue
  713. hi! link xmlEqual GruvboxBlue
  714. hi! link docbkKeyword GruvboxAquaBold
  715. hi! link xmlDocTypeDecl GruvboxGray
  716. hi! link xmlDocTypeKeyword GruvboxPurple
  717. hi! link xmlCdataStart GruvboxGray
  718. hi! link xmlCdataCdata GruvboxPurple
  719. hi! link dtdFunction GruvboxGray
  720. hi! link dtdTagName GruvboxPurple
  721. hi! link xmlAttrib GruvboxAqua
  722. hi! link xmlProcessingDelim GruvboxGray
  723. hi! link dtdParamEntityPunct GruvboxGray
  724. hi! link dtdParamEntityDPunct GruvboxGray
  725. hi! link xmlAttribPunct GruvboxGray
  726. hi! link xmlEntity GruvboxOrange
  727. hi! link xmlEntityPunct GruvboxOrange
  728. " }}}
  729. " Vim: {{{
  730. call s:HL('vimCommentTitle', s:fg4_256, s:none, s:bold . s:italicize_comments)
  731. hi! link vimNotation GruvboxOrange
  732. hi! link vimBracket GruvboxOrange
  733. hi! link vimMapModKey GruvboxOrange
  734. hi! link vimFuncSID GruvboxFg3
  735. hi! link vimSetSep GruvboxFg3
  736. hi! link vimSep GruvboxFg3
  737. hi! link vimContinue GruvboxFg3
  738. " }}}
  739. " Clojure: {{{
  740. hi! link clojureKeyword GruvboxBlue
  741. hi! link clojureCond GruvboxOrange
  742. hi! link clojureSpecial GruvboxOrange
  743. hi! link clojureDefine GruvboxOrange
  744. hi! link clojureFunc GruvboxYellow
  745. hi! link clojureRepeat GruvboxYellow
  746. hi! link clojureCharacter GruvboxAqua
  747. hi! link clojureStringEscape GruvboxAqua
  748. hi! link clojureException GruvboxRed
  749. hi! link clojureRegexp GruvboxAqua
  750. hi! link clojureRegexpEscape GruvboxAqua
  751. call s:HL('clojureRegexpCharClass', s:fg3, s:none, s:bold)
  752. hi! link clojureRegexpMod clojureRegexpCharClass
  753. hi! link clojureRegexpQuantifier clojureRegexpCharClass
  754. hi! link clojureParen GruvboxFg3
  755. hi! link clojureAnonArg GruvboxYellow
  756. hi! link clojureVariable GruvboxBlue
  757. hi! link clojureMacro GruvboxOrange
  758. hi! link clojureMeta GruvboxYellow
  759. hi! link clojureDeref GruvboxYellow
  760. hi! link clojureQuote GruvboxYellow
  761. hi! link clojureUnquote GruvboxYellow
  762. " }}}
  763. " C: {{{
  764. hi! link cOperator GruvboxPurple
  765. hi! link cStructure GruvboxOrange
  766. " }}}
  767. " Python: {{{
  768. hi! link pythonBuiltin GruvboxOrange
  769. hi! link pythonBuiltinObj GruvboxOrange
  770. hi! link pythonBuiltinFunc GruvboxOrange
  771. hi! link pythonFunction GruvboxAqua
  772. hi! link pythonDecorator GruvboxRed
  773. hi! link pythonInclude GruvboxBlue
  774. hi! link pythonImport GruvboxBlue
  775. hi! link pythonRun GruvboxBlue
  776. hi! link pythonCoding GruvboxBlue
  777. hi! link pythonOperator GruvboxRed
  778. hi! link pythonExceptions GruvboxPurple
  779. hi! link pythonBoolean GruvboxPurple
  780. hi! link pythonDot GruvboxFg3
  781. hi! link pythonConditional GruvboxRed
  782. hi! link pythonRepeat GruvboxRed
  783. hi! link pythonDottedName GruvboxGreenBold
  784. " }}}
  785. " CSS: {{{
  786. hi! link cssBraces GruvboxBlue
  787. hi! link cssFunctionName GruvboxYellow
  788. hi! link cssIdentifier GruvboxOrange
  789. hi! link cssClassName GruvboxGreen
  790. hi! link cssColor GruvboxBlue
  791. hi! link cssSelectorOp GruvboxBlue
  792. hi! link cssSelectorOp2 GruvboxBlue
  793. hi! link cssImportant GruvboxGreen
  794. hi! link cssVendor GruvboxFg1
  795. hi! link cssTextProp GruvboxAqua
  796. hi! link cssAnimationProp GruvboxAqua
  797. hi! link cssUIProp GruvboxYellow
  798. hi! link cssTransformProp GruvboxAqua
  799. hi! link cssTransitionProp GruvboxAqua
  800. hi! link cssPrintProp GruvboxAqua
  801. hi! link cssPositioningProp GruvboxYellow
  802. hi! link cssBoxProp GruvboxAqua
  803. hi! link cssFontDescriptorProp GruvboxAqua
  804. hi! link cssFlexibleBoxProp GruvboxAqua
  805. hi! link cssBorderOutlineProp GruvboxAqua
  806. hi! link cssBackgroundProp GruvboxAqua
  807. hi! link cssMarginProp GruvboxAqua
  808. hi! link cssListProp GruvboxAqua
  809. hi! link cssTableProp GruvboxAqua
  810. hi! link cssFontProp GruvboxAqua
  811. hi! link cssPaddingProp GruvboxAqua
  812. hi! link cssDimensionProp GruvboxAqua
  813. hi! link cssRenderProp GruvboxAqua
  814. hi! link cssColorProp GruvboxAqua
  815. hi! link cssGeneratedContentProp GruvboxAqua
  816. " }}}
  817. " JavaScript: {{{
  818. hi! link javaScriptBraces GruvboxFg1
  819. hi! link javaScriptFunction GruvboxAqua
  820. hi! link javaScriptIdentifier GruvboxRed
  821. hi! link javaScriptMember GruvboxBlue
  822. hi! link javaScriptNumber GruvboxPurple
  823. hi! link javaScriptNull GruvboxPurple
  824. hi! link javaScriptParens GruvboxFg3
  825. " }}}
  826. " YAJS: {{{
  827. hi! link javascriptImport GruvboxAqua
  828. hi! link javascriptExport GruvboxAqua
  829. hi! link javascriptClassKeyword GruvboxAqua
  830. hi! link javascriptClassExtends GruvboxAqua
  831. hi! link javascriptDefault GruvboxAqua
  832. hi! link javascriptClassName GruvboxYellow
  833. hi! link javascriptClassSuperName GruvboxYellow
  834. hi! link javascriptGlobal GruvboxYellow
  835. hi! link javascriptEndColons GruvboxFg1
  836. hi! link javascriptFuncArg GruvboxFg1
  837. hi! link javascriptGlobalMethod GruvboxFg1
  838. hi! link javascriptNodeGlobal GruvboxFg1
  839. hi! link javascriptBOMWindowProp GruvboxFg1
  840. hi! link javascriptArrayMethod GruvboxFg1
  841. hi! link javascriptArrayStaticMethod GruvboxFg1
  842. hi! link javascriptCacheMethod GruvboxFg1
  843. hi! link javascriptDateMethod GruvboxFg1
  844. hi! link javascriptMathStaticMethod GruvboxFg1
  845. " hi! link javascriptProp GruvboxFg1
  846. hi! link javascriptURLUtilsProp GruvboxFg1
  847. hi! link javascriptBOMNavigatorProp GruvboxFg1
  848. hi! link javascriptDOMDocMethod GruvboxFg1
  849. hi! link javascriptDOMDocProp GruvboxFg1
  850. hi! link javascriptBOMLocationMethod GruvboxFg1
  851. hi! link javascriptBOMWindowMethod GruvboxFg1
  852. hi! link javascriptStringMethod GruvboxFg1
  853. hi! link javascriptVariable GruvboxOrange
  854. " hi! link javascriptVariable GruvboxRed
  855. " hi! link javascriptIdentifier GruvboxOrange
  856. " hi! link javascriptClassSuper GruvboxOrange
  857. hi! link javascriptIdentifier GruvboxOrange
  858. hi! link javascriptClassSuper GruvboxOrange
  859. " hi! link javascriptFuncKeyword GruvboxOrange
  860. " hi! link javascriptAsyncFunc GruvboxOrange
  861. hi! link javascriptFuncKeyword GruvboxAqua
  862. hi! link javascriptAsyncFunc GruvboxAqua
  863. hi! link javascriptClassStatic GruvboxOrange
  864. hi! link javascriptOperator GruvboxRed
  865. hi! link javascriptForOperator GruvboxRed
  866. hi! link javascriptYield GruvboxRed
  867. hi! link javascriptExceptions GruvboxRed
  868. hi! link javascriptMessage GruvboxRed
  869. hi! link javascriptTemplateSB GruvboxAqua
  870. hi! link javascriptTemplateSubstitution GruvboxFg1
  871. " hi! link javascriptLabel GruvboxBlue
  872. " hi! link javascriptObjectLabel GruvboxBlue
  873. " hi! link javascriptPropertyName GruvboxBlue
  874. hi! link javascriptLabel GruvboxFg1
  875. hi! link javascriptObjectLabel GruvboxFg1
  876. hi! link javascriptPropertyName GruvboxFg1
  877. hi! link javascriptLogicSymbols GruvboxFg1
  878. hi! link javascriptArrowFunc GruvboxYellow
  879. hi! link javascriptDocParamName GruvboxFg4
  880. hi! link javascriptDocTags GruvboxFg4
  881. hi! link javascriptDocNotation GruvboxFg4
  882. hi! link javascriptDocParamType GruvboxFg4
  883. hi! link javascriptDocNamedParamType GruvboxFg4
  884. hi! link javascriptBrackets GruvboxFg1
  885. hi! link javascriptDOMElemAttrs GruvboxFg1
  886. hi! link javascriptDOMEventMethod GruvboxFg1
  887. hi! link javascriptDOMNodeMethod GruvboxFg1
  888. hi! link javascriptDOMStorageMethod GruvboxFg1
  889. hi! link javascriptHeadersMethod GruvboxFg1
  890. hi! link javascriptAsyncFuncKeyword GruvboxRed
  891. hi! link javascriptAwaitFuncKeyword GruvboxRed
  892. " }}}
  893. " PanglossJS: {{{
  894. hi! link jsClassKeyword GruvboxAqua
  895. hi! link jsExtendsKeyword GruvboxAqua
  896. hi! link jsExportDefault GruvboxAqua
  897. hi! link jsTemplateBraces GruvboxAqua
  898. hi! link jsGlobalNodeObjects GruvboxFg1
  899. hi! link jsGlobalObjects GruvboxFg1
  900. hi! link jsFunction GruvboxAqua
  901. hi! link jsFuncParens GruvboxFg3
  902. hi! link jsParens GruvboxFg3
  903. hi! link jsNull GruvboxPurple
  904. hi! link jsUndefined GruvboxPurple
  905. " }}}
  906. " TypeScript: {{{
  907. hi! link typeScriptReserved GruvboxAqua
  908. hi! link typeScriptLabel GruvboxAqua
  909. hi! link typeScriptIdentifier GruvboxOrange
  910. hi! link typeScriptBraces GruvboxFg1
  911. hi! link typeScriptEndColons GruvboxFg1
  912. hi! link typeScriptDOMObjects GruvboxFg1
  913. hi! link typeScriptAjaxMethods GruvboxFg1
  914. hi! link typeScriptLogicSymbols GruvboxFg1
  915. hi! link typeScriptDocSeeTag Comment
  916. hi! link typeScriptDocParam Comment
  917. hi! link typeScriptDocTags vimCommentTitle
  918. " }}}
  919. " CoffeeScript: {{{
  920. hi! link coffeeExtendedOp GruvboxFg3
  921. hi! link coffeeSpecialOp GruvboxFg3
  922. hi! link coffeeCurly GruvboxOrange
  923. hi! link coffeeParen GruvboxFg3
  924. hi! link coffeeBracket GruvboxOrange
  925. " }}}
  926. " Ruby: {{{
  927. hi! link rubyStringDelimiter GruvboxGreen
  928. hi! link rubyInterpolationDelimiter GruvboxAqua
  929. " }}}
  930. " ObjectiveC: {{{
  931. hi! link objcTypeModifier GruvboxRed
  932. hi! link objcDirective GruvboxBlue
  933. " }}}
  934. " Go: {{{
  935. hi! link goDirective GruvboxAqua
  936. hi! link goConstants GruvboxPurple
  937. hi! link goDeclaration GruvboxRed
  938. hi! link goDeclType GruvboxBlue
  939. hi! link goBuiltins GruvboxOrange
  940. " }}}
  941. " Lua: {{{
  942. hi! link luaIn GruvboxRed
  943. hi! link luaFunction GruvboxAqua
  944. hi! link luaTable GruvboxOrange
  945. " }}}
  946. " MoonScript: {{{
  947. hi! link moonSpecialOp GruvboxFg3
  948. hi! link moonExtendedOp GruvboxFg3
  949. hi! link moonFunction GruvboxFg3
  950. hi! link moonObject GruvboxYellow
  951. " }}}
  952. " Java: {{{
  953. hi! link javaAnnotation GruvboxBlue
  954. hi! link javaDocTags GruvboxAqua
  955. hi! link javaCommentTitle vimCommentTitle
  956. hi! link javaParen GruvboxFg3
  957. hi! link javaParen1 GruvboxFg3
  958. hi! link javaParen2 GruvboxFg3
  959. hi! link javaParen3 GruvboxFg3
  960. hi! link javaParen4 GruvboxFg3
  961. hi! link javaParen5 GruvboxFg3
  962. hi! link javaOperator GruvboxOrange
  963. hi! link javaVarArg GruvboxGreen
  964. " }}}
  965. " Elixir: {{{
  966. hi! link elixirDocString Comment
  967. hi! link elixirStringDelimiter GruvboxGreen
  968. hi! link elixirInterpolationDelimiter GruvboxAqua
  969. hi! link elixirModuleDeclaration GruvboxYellow
  970. " }}}
  971. " Scala: {{{
  972. " NB: scala vim syntax file is kinda horrible
  973. hi! link scalaNameDefinition GruvboxFg1
  974. hi! link scalaCaseFollowing GruvboxFg1
  975. hi! link scalaCapitalWord GruvboxFg1
  976. hi! link scalaTypeExtension GruvboxFg1
  977. hi! link scalaKeyword GruvboxRed
  978. hi! link scalaKeywordModifier GruvboxRed
  979. hi! link scalaSpecial GruvboxAqua
  980. hi! link scalaOperator GruvboxFg1
  981. hi! link scalaTypeDeclaration GruvboxYellow
  982. hi! link scalaTypeTypePostDeclaration GruvboxYellow
  983. hi! link scalaInstanceDeclaration GruvboxFg1
  984. hi! link scalaInterpolation GruvboxAqua
  985. " }}}
  986. " Markdown: {{{
  987. call s:HL('markdownItalic', s:fg3, s:none, s:italic)
  988. hi! link markdownH1 GruvboxGreenBold
  989. hi! link markdownH2 GruvboxGreenBold
  990. hi! link markdownH3 GruvboxYellowBold
  991. hi! link markdownH4 GruvboxYellowBold
  992. hi! link markdownH5 GruvboxYellow
  993. hi! link markdownH6 GruvboxYellow
  994. hi! link markdownCode GruvboxAqua
  995. hi! link markdownCodeBlock GruvboxAqua
  996. hi! link markdownCodeDelimiter GruvboxAqua
  997. hi! link markdownBlockquote GruvboxGray
  998. hi! link markdownListMarker GruvboxGray
  999. hi! link markdownOrderedListMarker GruvboxGray
  1000. hi! link markdownRule GruvboxGray
  1001. hi! link markdownHeadingRule GruvboxGray
  1002. hi! link markdownUrlDelimiter GruvboxFg3
  1003. hi! link markdownLinkDelimiter GruvboxFg3
  1004. hi! link markdownLinkTextDelimiter GruvboxFg3
  1005. hi! link markdownHeadingDelimiter GruvboxOrange
  1006. hi! link markdownUrl GruvboxPurple
  1007. hi! link markdownUrlTitleDelimiter GruvboxGreen
  1008. call s:HL('markdownLinkText', s:gray, s:none, s:underline)
  1009. hi! link markdownIdDeclaration markdownLinkText
  1010. " }}}
  1011. " Haskell: {{{
  1012. " hi! link haskellType GruvboxYellow
  1013. " hi! link haskellOperators GruvboxOrange
  1014. " hi! link haskellConditional GruvboxAqua
  1015. " hi! link haskellLet GruvboxOrange
  1016. "
  1017. hi! link haskellType GruvboxFg1
  1018. hi! link haskellIdentifier GruvboxFg1
  1019. hi! link haskellSeparator GruvboxFg1
  1020. hi! link haskellDelimiter GruvboxFg4
  1021. hi! link haskellOperators GruvboxBlue
  1022. "
  1023. hi! link haskellBacktick GruvboxOrange
  1024. hi! link haskellStatement GruvboxOrange
  1025. hi! link haskellConditional GruvboxOrange
  1026. hi! link haskellLet GruvboxAqua
  1027. hi! link haskellDefault GruvboxAqua
  1028. hi! link haskellWhere GruvboxAqua
  1029. hi! link haskellBottom GruvboxAqua
  1030. hi! link haskellBlockKeywords GruvboxAqua
  1031. hi! link haskellImportKeywords GruvboxAqua
  1032. hi! link haskellDeclKeyword GruvboxAqua
  1033. hi! link haskellDeriving GruvboxAqua
  1034. hi! link haskellAssocType GruvboxAqua
  1035. hi! link haskellNumber GruvboxPurple
  1036. hi! link haskellPragma GruvboxPurple
  1037. hi! link haskellString GruvboxGreen
  1038. hi! link haskellChar GruvboxGreen
  1039. " }}}
  1040. " Json: {{{
  1041. hi! link jsonKeyword GruvboxGreen
  1042. hi! link jsonQuote GruvboxGreen
  1043. hi! link jsonBraces GruvboxFg1
  1044. hi! link jsonString GruvboxFg1
  1045. " }}}
  1046. " Functions -------------------------------------------------------------------
  1047. " Search Highlighting Cursor {{{
  1048. function! GruvboxHlsShowCursor()
  1049. call s:HL('Cursor', s:bg0, s:hls_cursor)
  1050. endfunction
  1051. function! GruvboxHlsHideCursor()
  1052. call s:HL('Cursor', s:none, s:none, s:inverse)
  1053. endfunction
  1054. " }}}
  1055. " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker: