gruvbox.vim 34 KB

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