gruvbox.vim 32 KB

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