gruvbox.vim 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320
  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 pythonException GruvboxRed
  779. hi! link pythonExceptions GruvboxPurple
  780. hi! link pythonBoolean GruvboxPurple
  781. hi! link pythonDot GruvboxFg3
  782. hi! link pythonConditional GruvboxRed
  783. hi! link pythonRepeat GruvboxRed
  784. hi! link pythonDottedName GruvboxGreenBold
  785. " }}}
  786. " CSS: {{{
  787. hi! link cssBraces GruvboxBlue
  788. hi! link cssFunctionName GruvboxYellow
  789. hi! link cssIdentifier GruvboxOrange
  790. hi! link cssClassName GruvboxGreen
  791. hi! link cssColor GruvboxBlue
  792. hi! link cssSelectorOp GruvboxBlue
  793. hi! link cssSelectorOp2 GruvboxBlue
  794. hi! link cssImportant GruvboxGreen
  795. hi! link cssVendor GruvboxFg1
  796. hi! link cssTextProp GruvboxAqua
  797. hi! link cssAnimationProp GruvboxAqua
  798. hi! link cssUIProp GruvboxYellow
  799. hi! link cssTransformProp GruvboxAqua
  800. hi! link cssTransitionProp GruvboxAqua
  801. hi! link cssPrintProp GruvboxAqua
  802. hi! link cssPositioningProp GruvboxYellow
  803. hi! link cssBoxProp GruvboxAqua
  804. hi! link cssFontDescriptorProp GruvboxAqua
  805. hi! link cssFlexibleBoxProp GruvboxAqua
  806. hi! link cssBorderOutlineProp GruvboxAqua
  807. hi! link cssBackgroundProp GruvboxAqua
  808. hi! link cssMarginProp GruvboxAqua
  809. hi! link cssListProp GruvboxAqua
  810. hi! link cssTableProp GruvboxAqua
  811. hi! link cssFontProp GruvboxAqua
  812. hi! link cssPaddingProp GruvboxAqua
  813. hi! link cssDimensionProp GruvboxAqua
  814. hi! link cssRenderProp GruvboxAqua
  815. hi! link cssColorProp GruvboxAqua
  816. hi! link cssGeneratedContentProp GruvboxAqua
  817. " }}}
  818. " JavaScript: {{{
  819. hi! link javaScriptBraces GruvboxFg1
  820. hi! link javaScriptFunction GruvboxAqua
  821. hi! link javaScriptIdentifier GruvboxRed
  822. hi! link javaScriptMember GruvboxBlue
  823. hi! link javaScriptNumber GruvboxPurple
  824. hi! link javaScriptNull GruvboxPurple
  825. hi! link javaScriptParens GruvboxFg3
  826. " }}}
  827. " YAJS: {{{
  828. hi! link javascriptImport GruvboxAqua
  829. hi! link javascriptExport GruvboxAqua
  830. hi! link javascriptClassKeyword GruvboxAqua
  831. hi! link javascriptClassExtends GruvboxAqua
  832. hi! link javascriptDefault GruvboxAqua
  833. hi! link javascriptClassName GruvboxYellow
  834. hi! link javascriptClassSuperName GruvboxYellow
  835. hi! link javascriptGlobal GruvboxYellow
  836. hi! link javascriptEndColons GruvboxFg1
  837. hi! link javascriptFuncArg GruvboxFg1
  838. hi! link javascriptGlobalMethod GruvboxFg1
  839. hi! link javascriptNodeGlobal GruvboxFg1
  840. hi! link javascriptBOMWindowProp GruvboxFg1
  841. hi! link javascriptArrayMethod GruvboxFg1
  842. hi! link javascriptArrayStaticMethod GruvboxFg1
  843. hi! link javascriptCacheMethod GruvboxFg1
  844. hi! link javascriptDateMethod GruvboxFg1
  845. hi! link javascriptMathStaticMethod GruvboxFg1
  846. " hi! link javascriptProp GruvboxFg1
  847. hi! link javascriptURLUtilsProp GruvboxFg1
  848. hi! link javascriptBOMNavigatorProp GruvboxFg1
  849. hi! link javascriptDOMDocMethod GruvboxFg1
  850. hi! link javascriptDOMDocProp GruvboxFg1
  851. hi! link javascriptBOMLocationMethod GruvboxFg1
  852. hi! link javascriptBOMWindowMethod GruvboxFg1
  853. hi! link javascriptStringMethod GruvboxFg1
  854. hi! link javascriptVariable GruvboxOrange
  855. " hi! link javascriptVariable GruvboxRed
  856. " hi! link javascriptIdentifier GruvboxOrange
  857. " hi! link javascriptClassSuper GruvboxOrange
  858. hi! link javascriptIdentifier GruvboxOrange
  859. hi! link javascriptClassSuper GruvboxOrange
  860. " hi! link javascriptFuncKeyword GruvboxOrange
  861. " hi! link javascriptAsyncFunc GruvboxOrange
  862. hi! link javascriptFuncKeyword GruvboxAqua
  863. hi! link javascriptAsyncFunc GruvboxAqua
  864. hi! link javascriptClassStatic GruvboxOrange
  865. hi! link javascriptOperator GruvboxRed
  866. hi! link javascriptForOperator GruvboxRed
  867. hi! link javascriptYield GruvboxRed
  868. hi! link javascriptExceptions GruvboxRed
  869. hi! link javascriptMessage GruvboxRed
  870. hi! link javascriptTemplateSB GruvboxAqua
  871. hi! link javascriptTemplateSubstitution GruvboxFg1
  872. " hi! link javascriptLabel GruvboxBlue
  873. " hi! link javascriptObjectLabel GruvboxBlue
  874. " hi! link javascriptPropertyName GruvboxBlue
  875. hi! link javascriptLabel GruvboxFg1
  876. hi! link javascriptObjectLabel GruvboxFg1
  877. hi! link javascriptPropertyName GruvboxFg1
  878. hi! link javascriptLogicSymbols GruvboxFg1
  879. hi! link javascriptArrowFunc GruvboxYellow
  880. hi! link javascriptDocParamName GruvboxFg4
  881. hi! link javascriptDocTags GruvboxFg4
  882. hi! link javascriptDocNotation GruvboxFg4
  883. hi! link javascriptDocParamType GruvboxFg4
  884. hi! link javascriptDocNamedParamType GruvboxFg4
  885. hi! link javascriptBrackets GruvboxFg1
  886. hi! link javascriptDOMElemAttrs GruvboxFg1
  887. hi! link javascriptDOMEventMethod GruvboxFg1
  888. hi! link javascriptDOMNodeMethod GruvboxFg1
  889. hi! link javascriptDOMStorageMethod GruvboxFg1
  890. hi! link javascriptHeadersMethod GruvboxFg1
  891. hi! link javascriptAsyncFuncKeyword GruvboxRed
  892. hi! link javascriptAwaitFuncKeyword GruvboxRed
  893. " }}}
  894. " PanglossJS: {{{
  895. hi! link jsClassKeyword GruvboxAqua
  896. hi! link jsExtendsKeyword GruvboxAqua
  897. hi! link jsExportDefault GruvboxAqua
  898. hi! link jsTemplateBraces GruvboxAqua
  899. hi! link jsGlobalNodeObjects GruvboxFg1
  900. hi! link jsGlobalObjects GruvboxFg1
  901. hi! link jsFunction GruvboxAqua
  902. hi! link jsFuncParens GruvboxFg3
  903. hi! link jsParens GruvboxFg3
  904. hi! link jsNull GruvboxPurple
  905. hi! link jsUndefined GruvboxPurple
  906. " }}}
  907. " TypeScript: {{{
  908. hi! link typeScriptReserved GruvboxAqua
  909. hi! link typeScriptLabel GruvboxAqua
  910. hi! link typeScriptIdentifier GruvboxOrange
  911. hi! link typeScriptBraces GruvboxFg1
  912. hi! link typeScriptEndColons GruvboxFg1
  913. hi! link typeScriptDOMObjects GruvboxFg1
  914. hi! link typeScriptAjaxMethods GruvboxFg1
  915. hi! link typeScriptLogicSymbols GruvboxFg1
  916. hi! link typeScriptDocSeeTag Comment
  917. hi! link typeScriptDocParam Comment
  918. hi! link typeScriptDocTags vimCommentTitle
  919. " }}}
  920. " CoffeeScript: {{{
  921. hi! link coffeeExtendedOp GruvboxFg3
  922. hi! link coffeeSpecialOp GruvboxFg3
  923. hi! link coffeeCurly GruvboxOrange
  924. hi! link coffeeParen GruvboxFg3
  925. hi! link coffeeBracket GruvboxOrange
  926. " }}}
  927. " Ruby: {{{
  928. hi! link rubyStringDelimiter GruvboxGreen
  929. hi! link rubyInterpolationDelimiter GruvboxAqua
  930. " }}}
  931. " ObjectiveC: {{{
  932. hi! link objcTypeModifier GruvboxRed
  933. hi! link objcDirective GruvboxBlue
  934. " }}}
  935. " Go: {{{
  936. hi! link goDirective GruvboxAqua
  937. hi! link goConstants GruvboxPurple
  938. hi! link goDeclaration GruvboxRed
  939. hi! link goDeclType GruvboxBlue
  940. hi! link goBuiltins GruvboxOrange
  941. " }}}
  942. " Lua: {{{
  943. hi! link luaIn GruvboxRed
  944. hi! link luaFunction GruvboxAqua
  945. hi! link luaTable GruvboxOrange
  946. " }}}
  947. " MoonScript: {{{
  948. hi! link moonSpecialOp GruvboxFg3
  949. hi! link moonExtendedOp GruvboxFg3
  950. hi! link moonFunction GruvboxFg3
  951. hi! link moonObject GruvboxYellow
  952. " }}}
  953. " Java: {{{
  954. hi! link javaAnnotation GruvboxBlue
  955. hi! link javaDocTags GruvboxAqua
  956. hi! link javaCommentTitle vimCommentTitle
  957. hi! link javaParen GruvboxFg3
  958. hi! link javaParen1 GruvboxFg3
  959. hi! link javaParen2 GruvboxFg3
  960. hi! link javaParen3 GruvboxFg3
  961. hi! link javaParen4 GruvboxFg3
  962. hi! link javaParen5 GruvboxFg3
  963. hi! link javaOperator GruvboxOrange
  964. hi! link javaVarArg GruvboxGreen
  965. " }}}
  966. " Elixir: {{{
  967. hi! link elixirDocString Comment
  968. hi! link elixirStringDelimiter GruvboxGreen
  969. hi! link elixirInterpolationDelimiter GruvboxAqua
  970. hi! link elixirModuleDeclaration GruvboxYellow
  971. " }}}
  972. " Scala: {{{
  973. " NB: scala vim syntax file is kinda horrible
  974. hi! link scalaNameDefinition GruvboxFg1
  975. hi! link scalaCaseFollowing GruvboxFg1
  976. hi! link scalaCapitalWord GruvboxFg1
  977. hi! link scalaTypeExtension GruvboxFg1
  978. hi! link scalaKeyword GruvboxRed
  979. hi! link scalaKeywordModifier GruvboxRed
  980. hi! link scalaSpecial GruvboxAqua
  981. hi! link scalaOperator GruvboxFg1
  982. hi! link scalaTypeDeclaration GruvboxYellow
  983. hi! link scalaTypeTypePostDeclaration GruvboxYellow
  984. hi! link scalaInstanceDeclaration GruvboxFg1
  985. hi! link scalaInterpolation GruvboxAqua
  986. " }}}
  987. " Markdown: {{{
  988. call s:HL('markdownItalic', s:fg3, s:none, s:italic)
  989. hi! link markdownH1 GruvboxGreenBold
  990. hi! link markdownH2 GruvboxGreenBold
  991. hi! link markdownH3 GruvboxYellowBold
  992. hi! link markdownH4 GruvboxYellowBold
  993. hi! link markdownH5 GruvboxYellow
  994. hi! link markdownH6 GruvboxYellow
  995. hi! link markdownCode GruvboxAqua
  996. hi! link markdownCodeBlock GruvboxAqua
  997. hi! link markdownCodeDelimiter GruvboxAqua
  998. hi! link markdownBlockquote GruvboxGray
  999. hi! link markdownListMarker GruvboxGray
  1000. hi! link markdownOrderedListMarker GruvboxGray
  1001. hi! link markdownRule GruvboxGray
  1002. hi! link markdownHeadingRule GruvboxGray
  1003. hi! link markdownUrlDelimiter GruvboxFg3
  1004. hi! link markdownLinkDelimiter GruvboxFg3
  1005. hi! link markdownLinkTextDelimiter GruvboxFg3
  1006. hi! link markdownHeadingDelimiter GruvboxOrange
  1007. hi! link markdownUrl GruvboxPurple
  1008. hi! link markdownUrlTitleDelimiter GruvboxGreen
  1009. call s:HL('markdownLinkText', s:gray, s:none, s:underline)
  1010. hi! link markdownIdDeclaration markdownLinkText
  1011. " }}}
  1012. " Haskell: {{{
  1013. " hi! link haskellType GruvboxYellow
  1014. " hi! link haskellOperators GruvboxOrange
  1015. " hi! link haskellConditional GruvboxAqua
  1016. " hi! link haskellLet GruvboxOrange
  1017. "
  1018. hi! link haskellType GruvboxFg1
  1019. hi! link haskellIdentifier GruvboxFg1
  1020. hi! link haskellSeparator GruvboxFg1
  1021. hi! link haskellDelimiter GruvboxFg4
  1022. hi! link haskellOperators GruvboxBlue
  1023. "
  1024. hi! link haskellBacktick GruvboxOrange
  1025. hi! link haskellStatement GruvboxOrange
  1026. hi! link haskellConditional GruvboxOrange
  1027. hi! link haskellLet GruvboxAqua
  1028. hi! link haskellDefault GruvboxAqua
  1029. hi! link haskellWhere GruvboxAqua
  1030. hi! link haskellBottom GruvboxAqua
  1031. hi! link haskellBlockKeywords GruvboxAqua
  1032. hi! link haskellImportKeywords GruvboxAqua
  1033. hi! link haskellDeclKeyword GruvboxAqua
  1034. hi! link haskellDeriving GruvboxAqua
  1035. hi! link haskellAssocType GruvboxAqua
  1036. hi! link haskellNumber GruvboxPurple
  1037. hi! link haskellPragma GruvboxPurple
  1038. hi! link haskellString GruvboxGreen
  1039. hi! link haskellChar GruvboxGreen
  1040. " }}}
  1041. " Json: {{{
  1042. hi! link jsonKeyword GruvboxGreen
  1043. hi! link jsonQuote GruvboxGreen
  1044. hi! link jsonBraces GruvboxFg1
  1045. hi! link jsonString GruvboxFg1
  1046. " }}}
  1047. " Functions -------------------------------------------------------------------
  1048. " Search Highlighting Cursor {{{
  1049. function! GruvboxHlsShowCursor()
  1050. call s:HL('Cursor', s:bg0, s:hls_cursor)
  1051. endfunction
  1052. function! GruvboxHlsHideCursor()
  1053. call s:HL('Cursor', s:none, s:none, s:inverse)
  1054. endfunction
  1055. " }}}
  1056. " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker: