gruvbox.vim 34 KB

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