gruvbox.vim 35 KB

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