gruvbox_first.vim 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419
  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. call s:HL('GruvboxOrangeSign', s:orange, s:sign_column, s:invert_signs)
  374. " }}}
  375. " Vanilla colorscheme ---------------------------------------------------------
  376. " General UI: {{{
  377. " Normal text
  378. call s:HL('Normal', s:fg1, s:bg0)
  379. " Correct background (see issue #7):
  380. " --- Problem with changing between dark and light on 256 color terminal
  381. " --- https://github.com/morhetz/gruvbox/issues/7
  382. if s:is_dark
  383. set background=dark
  384. else
  385. set background=light
  386. endif
  387. if version >= 700
  388. " Screen line that the cursor is
  389. call s:HL('CursorLine', s:none, s:bg1)
  390. " Screen column that the cursor is
  391. hi! link CursorColumn CursorLine
  392. " Tab pages line filler
  393. call s:HL('TabLineFill', s:bg4, s:bg1, s:invert_tabline)
  394. " Active tab page label
  395. call s:HL('TabLineSel', s:green, s:bg1, s:invert_tabline)
  396. " Not active tab page label
  397. hi! link TabLine TabLineFill
  398. " Match paired bracket under the cursor
  399. call s:HL('MatchParen', s:none, s:bg3, s:bold)
  400. endif
  401. if version >= 703
  402. " Highlighted screen columns
  403. call s:HL('ColorColumn', s:none, s:color_column)
  404. " Concealed element: \lambda → λ
  405. call s:HL('Conceal', s:blue, s:none)
  406. " Line number of CursorLine
  407. call s:HL('CursorLineNr', s:yellow, s:bg1)
  408. endif
  409. hi! link NonText GruvboxBg2
  410. hi! link SpecialKey GruvboxBg2
  411. call s:HL('Visual', s:none, s:bg3, s:invert_selection)
  412. hi! link VisualNOS Visual
  413. call s:HL('Search', s:yellow, s:bg0, s:inverse)
  414. call s:HL('IncSearch', s:hls_cursor, s:bg0, s:inverse)
  415. call s:HL('Underlined', s:blue, s:none, s:underline)
  416. call s:HL('StatusLine', s:bg2, s:fg1, s:inverse)
  417. call s:HL('StatusLineNC', s:bg1, s:fg4, s:inverse)
  418. " The column separating vertically split windows
  419. call s:HL('VertSplit', s:bg3, s:vert_split)
  420. " Current match in wildmenu completion
  421. call s:HL('WildMenu', s:blue, s:bg2, s:bold)
  422. " Directory names, special names in listing
  423. hi! link Directory GruvboxGreenBold
  424. " Titles for output from :set all, :autocmd, etc.
  425. hi! link Title GruvboxGreenBold
  426. " Error messages on the command line
  427. call s:HL('ErrorMsg', s:bg0, s:red, s:bold)
  428. " More prompt: -- More --
  429. hi! link MoreMsg GruvboxYellowBold
  430. " Current mode message: -- INSERT --
  431. hi! link ModeMsg GruvboxYellowBold
  432. " 'Press enter' prompt and yes/no questions
  433. hi! link Question GruvboxOrangeBold
  434. " Warning messages
  435. hi! link WarningMsg GruvboxRedBold
  436. " }}}
  437. " Gutter: {{{
  438. " Line number for :number and :# commands
  439. call s:HL('LineNr', s:bg4, s:number_column)
  440. " Column where signs are displayed
  441. call s:HL('SignColumn', s:none, s:sign_column)
  442. " Line used for closed folds
  443. call s:HL('Folded', s:gray, s:bg1, s:italic)
  444. " Column where folds are displayed
  445. call s:HL('FoldColumn', s:gray, s:bg1)
  446. " }}}
  447. " Cursor: {{{
  448. " Character under cursor
  449. call s:HL('Cursor', s:none, s:none, s:inverse)
  450. " Visual mode cursor, selection
  451. hi! link vCursor Cursor
  452. " Input moder cursor
  453. hi! link iCursor Cursor
  454. " Language mapping cursor
  455. hi! link lCursor Cursor
  456. " }}}
  457. " Syntax Highlighting: {{{
  458. if g:gruvbox_improved_strings == 0
  459. hi! link Special GruvboxOrange
  460. else
  461. call s:HL('Special', s:orange, s:bg1, s:italicize_strings)
  462. endif
  463. call s:HL('Comment', s:gray, s:none, s:italicize_comments)
  464. call s:HL('Todo', s:vim_fg, s:vim_bg, s:bold . s:italic)
  465. call s:HL('Error', s:red, s:vim_bg, s:bold . s:inverse)
  466. " Generic statement
  467. hi! link Statement GruvboxRed
  468. " if, then, else, endif, swicth, etc.
  469. hi! link Conditional GruvboxRed
  470. " for, do, while, etc.
  471. hi! link Repeat GruvboxRed
  472. " case, default, etc.
  473. hi! link Label GruvboxRed
  474. " try, catch, throw
  475. hi! link Exception GruvboxRed
  476. " sizeof, "+", "*", etc.
  477. hi! link Operator Normal
  478. " Any other keyword
  479. hi! link Keyword GruvboxRed
  480. " Variable name
  481. hi! link Identifier GruvboxBlue
  482. " Function name
  483. hi! link Function GruvboxGreenBold
  484. " Generic preprocessor
  485. hi! link PreProc GruvboxAqua
  486. " Preprocessor #include
  487. hi! link Include GruvboxAqua
  488. " Preprocessor #define
  489. hi! link Define GruvboxAqua
  490. " Same as Define
  491. hi! link Macro GruvboxAqua
  492. " Preprocessor #if, #else, #endif, etc.
  493. hi! link PreCondit GruvboxAqua
  494. " Generic constant
  495. hi! link Constant GruvboxPurple
  496. " Character constant: 'c', '/n'
  497. hi! link Character GruvboxPurple
  498. " String constant: "this is a string"
  499. if g:gruvbox_improved_strings == 0
  500. call s:HL('String', s:green, s:none, s:italicize_strings)
  501. else
  502. call s:HL('String', s:fg1, s:bg1, s:italicize_strings)
  503. endif
  504. " Boolean constant: TRUE, false
  505. hi! link Boolean GruvboxPurple
  506. " Number constant: 234, 0xff
  507. hi! link Number GruvboxPurple
  508. " Floating point constant: 2.3e10
  509. hi! link Float GruvboxPurple
  510. " Generic type
  511. hi! link Type GruvboxYellow
  512. " static, register, volatile, etc
  513. hi! link StorageClass GruvboxOrange
  514. " struct, union, enum, etc.
  515. hi! link Structure GruvboxAqua
  516. " typedef
  517. hi! link Typedef GruvboxYellow
  518. " }}}
  519. " Completion Menu: {{{
  520. if version >= 700
  521. " Popup menu: normal item
  522. call s:HL('Pmenu', s:fg1, s:bg2)
  523. " Popup menu: selected item
  524. call s:HL('PmenuSel', s:bg2, s:blue, s:bold)
  525. " Popup menu: scrollbar
  526. call s:HL('PmenuSbar', s:none, s:bg2)
  527. " Popup menu: scrollbar thumb
  528. call s:HL('PmenuThumb', s:none, s:bg4)
  529. endif
  530. " }}}
  531. " Diffs: {{{
  532. call s:HL('DiffDelete', s:red, s:bg0, s:inverse)
  533. call s:HL('DiffAdd', s:green, s:bg0, s:inverse)
  534. "call s:HL('DiffChange', s:bg0, s:blue)
  535. "call s:HL('DiffText', s:bg0, s:yellow)
  536. " Alternative setting
  537. call s:HL('DiffChange', s:aqua, s:bg0, s:inverse)
  538. call s:HL('DiffText', s:yellow, s:bg0, s:inverse)
  539. " }}}
  540. " Spelling: {{{
  541. if has("spell")
  542. " Not capitalised word, or compile warnings
  543. if g:gruvbox_improved_warnings == 0
  544. call s:HL('SpellCap', s:none, s:none, s:undercurl, s:red)
  545. else
  546. call s:HL('SpellCap', s:green, s:none, s:bold . s:italic)
  547. endif
  548. " Not recognized word
  549. call s:HL('SpellBad', s:none, s:none, s:undercurl, s:blue)
  550. " Wrong spelling for selected region
  551. call s:HL('SpellLocal', s:none, s:none, s:undercurl, s:aqua)
  552. " Rare word
  553. call s:HL('SpellRare', s:none, s:none, s:undercurl, s:purple)
  554. endif
  555. " }}}
  556. " Plugin specific -------------------------------------------------------------
  557. " EasyMotion: {{{
  558. hi! link EasyMotionTarget Search
  559. hi! link EasyMotionShade Comment
  560. " }}}
  561. " Sneak: {{{
  562. hi! link Sneak Search
  563. hi! link SneakLabel Search
  564. " }}}
  565. " Indent Guides: {{{
  566. if !exists('g:indent_guides_auto_colors')
  567. let g:indent_guides_auto_colors = 0
  568. endif
  569. if g:indent_guides_auto_colors == 0
  570. if g:gruvbox_invert_indent_guides == 0
  571. call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2)
  572. call s:HL('IndentGuidesEven', s:vim_bg, s:bg1)
  573. else
  574. call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2, s:inverse)
  575. call s:HL('IndentGuidesEven', s:vim_bg, s:bg3, s:inverse)
  576. endif
  577. endif
  578. " }}}
  579. " IndentLine: {{{
  580. if !exists('g:indentLine_color_term')
  581. let g:indentLine_color_term = s:bg2[1]
  582. endif
  583. if !exists('g:indentLine_color_gui')
  584. let g:indentLine_color_gui = s:bg2[0]
  585. endif
  586. " }}}
  587. " Rainbow Parentheses: {{{
  588. if !exists('g:rbpt_colorpairs')
  589. let g:rbpt_colorpairs =
  590. \ [
  591. \ ['blue', '#458588'], ['magenta', '#b16286'],
  592. \ ['red', '#cc241d'], ['166', '#d65d0e']
  593. \ ]
  594. endif
  595. let g:rainbow_guifgs = [ '#d65d0e', '#cc241d', '#b16286', '#458588' ]
  596. let g:rainbow_ctermfgs = [ '166', 'red', 'magenta', 'blue' ]
  597. if !exists('g:rainbow_conf')
  598. let g:rainbow_conf = {}
  599. endif
  600. if !has_key(g:rainbow_conf, 'guifgs')
  601. let g:rainbow_conf['guifgs'] = g:rainbow_guifgs
  602. endif
  603. if !has_key(g:rainbow_conf, 'ctermfgs')
  604. let g:rainbow_conf['ctermfgs'] = g:rainbow_ctermfgs
  605. endif
  606. let g:niji_dark_colours = g:rbpt_colorpairs
  607. let g:niji_light_colours = g:rbpt_colorpairs
  608. "}}}
  609. " GitGutter: {{{
  610. hi! link GitGutterAdd GruvboxGreenSign
  611. hi! link GitGutterChange GruvboxAquaSign
  612. hi! link GitGutterDelete GruvboxRedSign
  613. hi! link GitGutterChangeDelete GruvboxAquaSign
  614. " }}}
  615. " GitCommit: "{{{
  616. hi! link gitcommitSelectedFile GruvboxGreen
  617. hi! link gitcommitDiscardedFile GruvboxRed
  618. " }}}
  619. " Signify: {{{
  620. hi! link SignifySignAdd GruvboxGreenSign
  621. hi! link SignifySignChange GruvboxAquaSign
  622. hi! link SignifySignDelete GruvboxRedSign
  623. " }}}
  624. " Syntastic: {{{
  625. call s:HL('SyntasticError', s:none, s:none, s:undercurl, s:red)
  626. call s:HL('SyntasticWarning', s:none, s:none, s:undercurl, s:yellow)
  627. hi! link SyntasticErrorSign GruvboxRedSign
  628. hi! link SyntasticWarningSign GruvboxYellowSign
  629. " }}}
  630. " Signature: {{{
  631. hi! link SignatureMarkText GruvboxBlueSign
  632. hi! link SignatureMarkerText GruvboxPurpleSign
  633. " }}}
  634. " ShowMarks: {{{
  635. hi! link ShowMarksHLl GruvboxBlueSign
  636. hi! link ShowMarksHLu GruvboxBlueSign
  637. hi! link ShowMarksHLo GruvboxBlueSign
  638. hi! link ShowMarksHLm GruvboxBlueSign
  639. " }}}
  640. " CtrlP: {{{
  641. hi! link CtrlPMatch GruvboxYellow
  642. hi! link CtrlPNoEntries GruvboxRed
  643. hi! link CtrlPPrtBase GruvboxBg2
  644. hi! link CtrlPPrtCursor GruvboxBlue
  645. hi! link CtrlPLinePre GruvboxBg2
  646. call s:HL('CtrlPMode1', s:blue, s:bg2, s:bold)
  647. call s:HL('CtrlPMode2', s:bg0, s:blue, s:bold)
  648. call s:HL('CtrlPStats', s:fg4, s:bg2, s:bold)
  649. " }}}
  650. " Startify: {{{
  651. hi! link StartifyBracket GruvboxFg3
  652. hi! link StartifyFile GruvboxFg1
  653. hi! link StartifyNumber GruvboxBlue
  654. hi! link StartifyPath GruvboxGray
  655. hi! link StartifySlash GruvboxGray
  656. hi! link StartifySection GruvboxYellow
  657. hi! link StartifySpecial GruvboxBg2
  658. hi! link StartifyHeader GruvboxOrange
  659. hi! link StartifyFooter GruvboxBg2
  660. " }}}
  661. " Vimshell: {{{
  662. let g:vimshell_escape_colors = [
  663. \ s:bg4[0], s:red[0], s:green[0], s:yellow[0],
  664. \ s:blue[0], s:purple[0], s:aqua[0], s:fg4[0],
  665. \ s:bg0[0], s:red[0], s:green[0], s:orange[0],
  666. \ s:blue[0], s:purple[0], s:aqua[0], s:fg0[0]
  667. \ ]
  668. " }}}
  669. " BufTabLine: {{{
  670. call s:HL('BufTabLineCurrent', s:bg0, s:fg4)
  671. call s:HL('BufTabLineActive', s:fg4, s:bg2)
  672. call s:HL('BufTabLineHidden', s:bg4, s:bg1)
  673. call s:HL('BufTabLineFill', s:bg0, s:bg0)
  674. " }}}
  675. " Asynchronous Lint Engine: {{{
  676. call s:HL('ALEError', s:none, s:none, s:undercurl, s:red)
  677. call s:HL('ALEWarning', s:none, s:none, s:undercurl, s:yellow)
  678. call s:HL('ALEInfo', s:none, s:none, s:undercurl, s:blue)
  679. hi! link ALEErrorSign GruvboxRedSign
  680. hi! link ALEWarningSign GruvboxYellowSign
  681. hi! link ALEInfoSign GruvboxBlueSign
  682. " }}}
  683. " Dirvish: {{{
  684. hi! link DirvishPathTail GruvboxAqua
  685. hi! link DirvishArg GruvboxYellow
  686. " }}}
  687. " Netrw: {{{
  688. hi! link netrwDir GruvboxAqua
  689. hi! link netrwClassify GruvboxAqua
  690. hi! link netrwLink GruvboxGray
  691. hi! link netrwSymLink GruvboxFg1
  692. hi! link netrwExe GruvboxYellow
  693. hi! link netrwComment GruvboxGray
  694. hi! link netrwList GruvboxBlue
  695. hi! link netrwHelpCmd GruvboxAqua
  696. hi! link netrwCmdSep GruvboxFg3
  697. hi! link netrwVersion GruvboxGreen
  698. " }}}
  699. " NERDTree: {{{
  700. hi! link NERDTreeDir GruvboxAqua
  701. hi! link NERDTreeDirSlash GruvboxAqua
  702. hi! link NERDTreeOpenable GruvboxOrange
  703. hi! link NERDTreeClosable GruvboxOrange
  704. hi! link NERDTreeFile GruvboxFg1
  705. hi! link NERDTreeExecFile GruvboxYellow
  706. hi! link NERDTreeUp GruvboxGray
  707. hi! link NERDTreeCWD GruvboxGreen
  708. hi! link NERDTreeHelp GruvboxFg1
  709. hi! link NERDTreeToggleOn GruvboxGreen
  710. hi! link NERDTreeToggleOff GruvboxRed
  711. " }}}
  712. " Vim Multiple Cursors: {{{
  713. call s:HL('multiple_cursors_cursor', s:none, s:none, s:inverse)
  714. call s:HL('multiple_cursors_visual', s:none, s:bg2)
  715. " }}}
  716. " coc.nvim: {{{
  717. hi! link CocErrorSign GruvboxRedSign
  718. hi! link CocWarningSign GruvboxOrangeSign
  719. hi! link CocInfoSign GruvboxYellowSign
  720. hi! link CocHintSign GruvboxBlueSign
  721. hi! link CocErrorFloat GruvboxRed
  722. hi! link CocWarningFloat GruvboxOrange
  723. hi! link CocInfoFloat GruvboxYellow
  724. hi! link CocHintFloat GruvboxBlue
  725. hi! link CocDiagnosticsError GruvboxRed
  726. hi! link CocDiagnosticsWarning GruvboxOrange
  727. hi! link CocDiagnosticsInfo GruvboxYellow
  728. hi! link CocDiagnosticsHint GruvboxBlue
  729. hi! link CocSelectedText GruvboxRed
  730. hi! link CocCodeLens GruvboxGray
  731. call s:HL('CocErrorHighlight', s:none, s:none, s:undercurl, s:red)
  732. call s:HL('CocWarningHighlight', s:none, s:none, s:undercurl, s:orange)
  733. call s:HL('CocInfoHighlight', s:none, s:none, s:undercurl, s:yellow)
  734. call s:HL('CocHintHighlight', s:none, s:none, s:undercurl, s:blue)
  735. " }}}
  736. " Filetype specific -----------------------------------------------------------
  737. " Diff: {{{
  738. hi! link diffAdded GruvboxGreen
  739. hi! link diffRemoved GruvboxRed
  740. hi! link diffChanged GruvboxAqua
  741. hi! link diffFile GruvboxOrange
  742. hi! link diffNewFile GruvboxYellow
  743. hi! link diffLine GruvboxBlue
  744. " }}}
  745. " Html: {{{
  746. hi! link htmlTag GruvboxBlue
  747. hi! link htmlEndTag GruvboxBlue
  748. hi! link htmlTagName GruvboxAquaBold
  749. hi! link htmlArg GruvboxAqua
  750. hi! link htmlScriptTag GruvboxPurple
  751. hi! link htmlTagN GruvboxFg1
  752. hi! link htmlSpecialTagName GruvboxAquaBold
  753. call s:HL('htmlLink', s:fg4, s:none, s:underline)
  754. hi! link htmlSpecialChar GruvboxOrange
  755. call s:HL('htmlBold', s:vim_fg, s:vim_bg, s:bold)
  756. call s:HL('htmlBoldUnderline', s:vim_fg, s:vim_bg, s:bold . s:underline)
  757. call s:HL('htmlBoldItalic', s:vim_fg, s:vim_bg, s:bold . s:italic)
  758. call s:HL('htmlBoldUnderlineItalic', s:vim_fg, s:vim_bg, s:bold . s:underline . s:italic)
  759. call s:HL('htmlUnderline', s:vim_fg, s:vim_bg, s:underline)
  760. call s:HL('htmlUnderlineItalic', s:vim_fg, s:vim_bg, s:underline . s:italic)
  761. call s:HL('htmlItalic', s:vim_fg, s:vim_bg, s:italic)
  762. " }}}
  763. " Xml: {{{
  764. hi! link xmlTag GruvboxBlue
  765. hi! link xmlEndTag GruvboxBlue
  766. hi! link xmlTagName GruvboxBlue
  767. hi! link xmlEqual GruvboxBlue
  768. hi! link docbkKeyword GruvboxAquaBold
  769. hi! link xmlDocTypeDecl GruvboxGray
  770. hi! link xmlDocTypeKeyword GruvboxPurple
  771. hi! link xmlCdataStart GruvboxGray
  772. hi! link xmlCdataCdata GruvboxPurple
  773. hi! link dtdFunction GruvboxGray
  774. hi! link dtdTagName GruvboxPurple
  775. hi! link xmlAttrib GruvboxAqua
  776. hi! link xmlProcessingDelim GruvboxGray
  777. hi! link dtdParamEntityPunct GruvboxGray
  778. hi! link dtdParamEntityDPunct GruvboxGray
  779. hi! link xmlAttribPunct GruvboxGray
  780. hi! link xmlEntity GruvboxOrange
  781. hi! link xmlEntityPunct GruvboxOrange
  782. " }}}
  783. " Vim: {{{
  784. call s:HL('vimCommentTitle', s:fg4_256, s:none, s:bold . s:italicize_comments)
  785. hi! link vimNotation GruvboxOrange
  786. hi! link vimBracket GruvboxOrange
  787. hi! link vimMapModKey GruvboxOrange
  788. hi! link vimFuncSID GruvboxFg3
  789. hi! link vimSetSep GruvboxFg3
  790. hi! link vimSep GruvboxFg3
  791. hi! link vimContinue GruvboxFg3
  792. " }}}
  793. " Clojure: {{{
  794. hi! link clojureKeyword GruvboxBlue
  795. hi! link clojureCond GruvboxOrange
  796. hi! link clojureSpecial GruvboxOrange
  797. hi! link clojureDefine GruvboxOrange
  798. hi! link clojureFunc GruvboxYellow
  799. hi! link clojureRepeat GruvboxYellow
  800. hi! link clojureCharacter GruvboxAqua
  801. hi! link clojureStringEscape GruvboxAqua
  802. hi! link clojureException GruvboxRed
  803. hi! link clojureRegexp GruvboxAqua
  804. hi! link clojureRegexpEscape GruvboxAqua
  805. call s:HL('clojureRegexpCharClass', s:fg3, s:none, s:bold)
  806. hi! link clojureRegexpMod clojureRegexpCharClass
  807. hi! link clojureRegexpQuantifier clojureRegexpCharClass
  808. hi! link clojureParen GruvboxFg3
  809. hi! link clojureAnonArg GruvboxYellow
  810. hi! link clojureVariable GruvboxBlue
  811. hi! link clojureMacro GruvboxOrange
  812. hi! link clojureMeta GruvboxYellow
  813. hi! link clojureDeref GruvboxYellow
  814. hi! link clojureQuote GruvboxYellow
  815. hi! link clojureUnquote GruvboxYellow
  816. " }}}
  817. " C: {{{
  818. hi! link cOperator GruvboxPurple
  819. hi! link cStructure GruvboxOrange
  820. " }}}
  821. " Python: {{{
  822. hi! link pythonBuiltin GruvboxOrange
  823. hi! link pythonBuiltinObj GruvboxOrange
  824. hi! link pythonBuiltinFunc GruvboxOrange
  825. hi! link pythonFunction GruvboxAqua
  826. hi! link pythonDecorator GruvboxRed
  827. hi! link pythonInclude GruvboxBlue
  828. hi! link pythonImport GruvboxBlue
  829. hi! link pythonRun GruvboxBlue
  830. hi! link pythonCoding GruvboxBlue
  831. hi! link pythonOperator GruvboxRed
  832. hi! link pythonException GruvboxRed
  833. hi! link pythonExceptions GruvboxPurple
  834. hi! link pythonBoolean GruvboxPurple
  835. hi! link pythonDot GruvboxFg3
  836. hi! link pythonConditional GruvboxRed
  837. hi! link pythonRepeat GruvboxRed
  838. hi! link pythonDottedName GruvboxGreenBold
  839. " }}}
  840. " CSS: {{{
  841. hi! link cssBraces GruvboxBlue
  842. hi! link cssFunctionName GruvboxYellow
  843. hi! link cssIdentifier GruvboxOrange
  844. hi! link cssClassName GruvboxGreen
  845. hi! link cssColor GruvboxBlue
  846. hi! link cssSelectorOp GruvboxBlue
  847. hi! link cssSelectorOp2 GruvboxBlue
  848. hi! link cssImportant GruvboxGreen
  849. hi! link cssVendor GruvboxFg1
  850. hi! link cssTextProp GruvboxAqua
  851. hi! link cssAnimationProp GruvboxAqua
  852. hi! link cssUIProp GruvboxYellow
  853. hi! link cssTransformProp GruvboxAqua
  854. hi! link cssTransitionProp GruvboxAqua
  855. hi! link cssPrintProp GruvboxAqua
  856. hi! link cssPositioningProp GruvboxYellow
  857. hi! link cssBoxProp GruvboxAqua
  858. hi! link cssFontDescriptorProp GruvboxAqua
  859. hi! link cssFlexibleBoxProp GruvboxAqua
  860. hi! link cssBorderOutlineProp GruvboxAqua
  861. hi! link cssBackgroundProp GruvboxAqua
  862. hi! link cssMarginProp GruvboxAqua
  863. hi! link cssListProp GruvboxAqua
  864. hi! link cssTableProp GruvboxAqua
  865. hi! link cssFontProp GruvboxAqua
  866. hi! link cssPaddingProp GruvboxAqua
  867. hi! link cssDimensionProp GruvboxAqua
  868. hi! link cssRenderProp GruvboxAqua
  869. hi! link cssColorProp GruvboxAqua
  870. hi! link cssGeneratedContentProp GruvboxAqua
  871. " }}}
  872. " JavaScript: {{{
  873. hi! link javaScriptBraces GruvboxFg1
  874. hi! link javaScriptFunction GruvboxAqua
  875. hi! link javaScriptIdentifier GruvboxRed
  876. hi! link javaScriptMember GruvboxBlue
  877. hi! link javaScriptNumber GruvboxPurple
  878. hi! link javaScriptNull GruvboxPurple
  879. hi! link javaScriptParens GruvboxFg3
  880. " }}}
  881. " YAJS: {{{
  882. hi! link javascriptImport GruvboxAqua
  883. hi! link javascriptExport GruvboxAqua
  884. hi! link javascriptClassKeyword GruvboxAqua
  885. hi! link javascriptClassExtends GruvboxAqua
  886. hi! link javascriptDefault GruvboxAqua
  887. hi! link javascriptClassName GruvboxYellow
  888. hi! link javascriptClassSuperName GruvboxYellow
  889. hi! link javascriptGlobal GruvboxYellow
  890. hi! link javascriptEndColons GruvboxFg1
  891. hi! link javascriptFuncArg GruvboxFg1
  892. hi! link javascriptGlobalMethod GruvboxFg1
  893. hi! link javascriptNodeGlobal GruvboxFg1
  894. hi! link javascriptBOMWindowProp GruvboxFg1
  895. hi! link javascriptArrayMethod GruvboxFg1
  896. hi! link javascriptArrayStaticMethod GruvboxFg1
  897. hi! link javascriptCacheMethod GruvboxFg1
  898. hi! link javascriptDateMethod GruvboxFg1
  899. hi! link javascriptMathStaticMethod GruvboxFg1
  900. " hi! link javascriptProp GruvboxFg1
  901. hi! link javascriptURLUtilsProp GruvboxFg1
  902. hi! link javascriptBOMNavigatorProp GruvboxFg1
  903. hi! link javascriptDOMDocMethod GruvboxFg1
  904. hi! link javascriptDOMDocProp GruvboxFg1
  905. hi! link javascriptBOMLocationMethod GruvboxFg1
  906. hi! link javascriptBOMWindowMethod GruvboxFg1
  907. hi! link javascriptStringMethod GruvboxFg1
  908. hi! link javascriptVariable GruvboxOrange
  909. " hi! link javascriptVariable GruvboxRed
  910. " hi! link javascriptIdentifier GruvboxOrange
  911. " hi! link javascriptClassSuper GruvboxOrange
  912. hi! link javascriptIdentifier GruvboxOrange
  913. hi! link javascriptClassSuper GruvboxOrange
  914. " hi! link javascriptFuncKeyword GruvboxOrange
  915. " hi! link javascriptAsyncFunc GruvboxOrange
  916. hi! link javascriptFuncKeyword GruvboxAqua
  917. hi! link javascriptAsyncFunc GruvboxAqua
  918. hi! link javascriptClassStatic GruvboxOrange
  919. hi! link javascriptOperator GruvboxRed
  920. hi! link javascriptForOperator GruvboxRed
  921. hi! link javascriptYield GruvboxRed
  922. hi! link javascriptExceptions GruvboxRed
  923. hi! link javascriptMessage GruvboxRed
  924. hi! link javascriptTemplateSB GruvboxAqua
  925. hi! link javascriptTemplateSubstitution GruvboxFg1
  926. " hi! link javascriptLabel GruvboxBlue
  927. " hi! link javascriptObjectLabel GruvboxBlue
  928. " hi! link javascriptPropertyName GruvboxBlue
  929. hi! link javascriptLabel GruvboxFg1
  930. hi! link javascriptObjectLabel GruvboxFg1
  931. hi! link javascriptPropertyName GruvboxFg1
  932. hi! link javascriptLogicSymbols GruvboxFg1
  933. hi! link javascriptArrowFunc GruvboxYellow
  934. hi! link javascriptDocParamName GruvboxFg4
  935. hi! link javascriptDocTags GruvboxFg4
  936. hi! link javascriptDocNotation GruvboxFg4
  937. hi! link javascriptDocParamType GruvboxFg4
  938. hi! link javascriptDocNamedParamType GruvboxFg4
  939. hi! link javascriptBrackets GruvboxFg1
  940. hi! link javascriptDOMElemAttrs GruvboxFg1
  941. hi! link javascriptDOMEventMethod GruvboxFg1
  942. hi! link javascriptDOMNodeMethod GruvboxFg1
  943. hi! link javascriptDOMStorageMethod GruvboxFg1
  944. hi! link javascriptHeadersMethod GruvboxFg1
  945. hi! link javascriptAsyncFuncKeyword GruvboxRed
  946. hi! link javascriptAwaitFuncKeyword GruvboxRed
  947. " }}}
  948. " PanglossJS: {{{
  949. hi! link jsClassKeyword GruvboxAqua
  950. hi! link jsExtendsKeyword GruvboxAqua
  951. hi! link jsExportDefault GruvboxAqua
  952. hi! link jsTemplateBraces GruvboxAqua
  953. hi! link jsGlobalNodeObjects GruvboxFg1
  954. hi! link jsGlobalObjects GruvboxFg1
  955. hi! link jsFunction GruvboxAqua
  956. hi! link jsFuncParens GruvboxFg3
  957. hi! link jsParens GruvboxFg3
  958. hi! link jsNull GruvboxPurple
  959. hi! link jsUndefined GruvboxPurple
  960. hi! link jsClassDefinition GruvboxYellow
  961. " }}}
  962. " TypeScript: {{{
  963. hi! link typeScriptReserved GruvboxAqua
  964. hi! link typeScriptLabel GruvboxAqua
  965. hi! link typeScriptFuncKeyword GruvboxAqua
  966. hi! link typeScriptIdentifier GruvboxOrange
  967. hi! link typeScriptBraces GruvboxFg1
  968. hi! link typeScriptEndColons GruvboxFg1
  969. hi! link typeScriptDOMObjects GruvboxFg1
  970. hi! link typeScriptAjaxMethods GruvboxFg1
  971. hi! link typeScriptLogicSymbols GruvboxFg1
  972. hi! link typeScriptDocSeeTag Comment
  973. hi! link typeScriptDocParam Comment
  974. hi! link typeScriptDocTags vimCommentTitle
  975. hi! link typeScriptGlobalObjects GruvboxFg1
  976. hi! link typeScriptParens GruvboxFg3
  977. hi! link typeScriptOpSymbols GruvboxFg3
  978. hi! link typeScriptHtmlElemProperties GruvboxFg1
  979. hi! link typeScriptNull GruvboxPurple
  980. hi! link typeScriptInterpolationDelimiter GruvboxAqua
  981. " }}}
  982. " PureScript: {{{
  983. hi! link purescriptModuleKeyword GruvboxAqua
  984. hi! link purescriptModuleName GruvboxFg1
  985. hi! link purescriptWhere GruvboxAqua
  986. hi! link purescriptDelimiter GruvboxFg4
  987. hi! link purescriptType GruvboxFg1
  988. hi! link purescriptImportKeyword GruvboxAqua
  989. hi! link purescriptHidingKeyword GruvboxAqua
  990. hi! link purescriptAsKeyword GruvboxAqua
  991. hi! link purescriptStructure GruvboxAqua
  992. hi! link purescriptOperator GruvboxBlue
  993. hi! link purescriptTypeVar GruvboxFg1
  994. hi! link purescriptConstructor GruvboxFg1
  995. hi! link purescriptFunction GruvboxFg1
  996. hi! link purescriptConditional GruvboxOrange
  997. hi! link purescriptBacktick GruvboxOrange
  998. " }}}
  999. " CoffeeScript: {{{
  1000. hi! link coffeeExtendedOp GruvboxFg3
  1001. hi! link coffeeSpecialOp GruvboxFg3
  1002. hi! link coffeeCurly GruvboxOrange
  1003. hi! link coffeeParen GruvboxFg3
  1004. hi! link coffeeBracket GruvboxOrange
  1005. " }}}
  1006. " Ruby: {{{
  1007. hi! link rubyStringDelimiter GruvboxGreen
  1008. hi! link rubyInterpolationDelimiter GruvboxAqua
  1009. " }}}
  1010. " ObjectiveC: {{{
  1011. hi! link objcTypeModifier GruvboxRed
  1012. hi! link objcDirective GruvboxBlue
  1013. " }}}
  1014. " Go: {{{
  1015. hi! link goDirective GruvboxAqua
  1016. hi! link goConstants GruvboxPurple
  1017. hi! link goDeclaration GruvboxRed
  1018. hi! link goDeclType GruvboxBlue
  1019. hi! link goBuiltins GruvboxOrange
  1020. " }}}
  1021. " Lua: {{{
  1022. hi! link luaIn GruvboxRed
  1023. hi! link luaFunction GruvboxAqua
  1024. hi! link luaTable GruvboxOrange
  1025. " }}}
  1026. " MoonScript: {{{
  1027. hi! link moonSpecialOp GruvboxFg3
  1028. hi! link moonExtendedOp GruvboxFg3
  1029. hi! link moonFunction GruvboxFg3
  1030. hi! link moonObject GruvboxYellow
  1031. " }}}
  1032. " Java: {{{
  1033. hi! link javaAnnotation GruvboxBlue
  1034. hi! link javaDocTags GruvboxAqua
  1035. hi! link javaCommentTitle vimCommentTitle
  1036. hi! link javaParen GruvboxFg3
  1037. hi! link javaParen1 GruvboxFg3
  1038. hi! link javaParen2 GruvboxFg3
  1039. hi! link javaParen3 GruvboxFg3
  1040. hi! link javaParen4 GruvboxFg3
  1041. hi! link javaParen5 GruvboxFg3
  1042. hi! link javaOperator GruvboxOrange
  1043. hi! link javaVarArg GruvboxGreen
  1044. " }}}
  1045. " Elixir: {{{
  1046. hi! link elixirDocString Comment
  1047. hi! link elixirStringDelimiter GruvboxGreen
  1048. hi! link elixirInterpolationDelimiter GruvboxAqua
  1049. hi! link elixirModuleDeclaration GruvboxYellow
  1050. " }}}
  1051. " Scala: {{{
  1052. " NB: scala vim syntax file is kinda horrible
  1053. hi! link scalaNameDefinition GruvboxFg1
  1054. hi! link scalaCaseFollowing GruvboxFg1
  1055. hi! link scalaCapitalWord GruvboxFg1
  1056. hi! link scalaTypeExtension GruvboxFg1
  1057. hi! link scalaKeyword GruvboxRed
  1058. hi! link scalaKeywordModifier GruvboxRed
  1059. hi! link scalaSpecial GruvboxAqua
  1060. hi! link scalaOperator GruvboxFg1
  1061. hi! link scalaTypeDeclaration GruvboxYellow
  1062. hi! link scalaTypeTypePostDeclaration GruvboxYellow
  1063. hi! link scalaInstanceDeclaration GruvboxFg1
  1064. hi! link scalaInterpolation GruvboxAqua
  1065. " }}}
  1066. " Markdown: {{{
  1067. call s:HL('markdownItalic', s:fg3, s:none, s:italic)
  1068. hi! link markdownH1 GruvboxGreenBold
  1069. hi! link markdownH2 GruvboxGreenBold
  1070. hi! link markdownH3 GruvboxYellowBold
  1071. hi! link markdownH4 GruvboxYellowBold
  1072. hi! link markdownH5 GruvboxYellow
  1073. hi! link markdownH6 GruvboxYellow
  1074. hi! link markdownCode GruvboxAqua
  1075. hi! link markdownCodeBlock GruvboxAqua
  1076. hi! link markdownCodeDelimiter GruvboxAqua
  1077. hi! link markdownBlockquote GruvboxGray
  1078. hi! link markdownListMarker GruvboxGray
  1079. hi! link markdownOrderedListMarker GruvboxGray
  1080. hi! link markdownRule GruvboxGray
  1081. hi! link markdownHeadingRule GruvboxGray
  1082. hi! link markdownUrlDelimiter GruvboxFg3
  1083. hi! link markdownLinkDelimiter GruvboxFg3
  1084. hi! link markdownLinkTextDelimiter GruvboxFg3
  1085. hi! link markdownHeadingDelimiter GruvboxOrange
  1086. hi! link markdownUrl GruvboxPurple
  1087. hi! link markdownUrlTitleDelimiter GruvboxGreen
  1088. call s:HL('markdownLinkText', s:gray, s:none, s:underline)
  1089. hi! link markdownIdDeclaration markdownLinkText
  1090. " }}}
  1091. " Haskell: {{{
  1092. " hi! link haskellType GruvboxYellow
  1093. " hi! link haskellOperators GruvboxOrange
  1094. " hi! link haskellConditional GruvboxAqua
  1095. " hi! link haskellLet GruvboxOrange
  1096. "
  1097. hi! link haskellType GruvboxFg1
  1098. hi! link haskellIdentifier GruvboxFg1
  1099. hi! link haskellSeparator GruvboxFg1
  1100. hi! link haskellDelimiter GruvboxFg4
  1101. hi! link haskellOperators GruvboxBlue
  1102. "
  1103. hi! link haskellBacktick GruvboxOrange
  1104. hi! link haskellStatement GruvboxOrange
  1105. hi! link haskellConditional GruvboxOrange
  1106. hi! link haskellLet GruvboxAqua
  1107. hi! link haskellDefault GruvboxAqua
  1108. hi! link haskellWhere GruvboxAqua
  1109. hi! link haskellBottom GruvboxAqua
  1110. hi! link haskellBlockKeywords GruvboxAqua
  1111. hi! link haskellImportKeywords GruvboxAqua
  1112. hi! link haskellDeclKeyword GruvboxAqua
  1113. hi! link haskellDeriving GruvboxAqua
  1114. hi! link haskellAssocType GruvboxAqua
  1115. hi! link haskellNumber GruvboxPurple
  1116. hi! link haskellPragma GruvboxPurple
  1117. hi! link haskellString GruvboxGreen
  1118. hi! link haskellChar GruvboxGreen
  1119. " }}}
  1120. " Json: {{{
  1121. hi! link jsonKeyword GruvboxGreen
  1122. hi! link jsonQuote GruvboxGreen
  1123. hi! link jsonBraces GruvboxFg1
  1124. hi! link jsonString GruvboxFg1
  1125. " }}}
  1126. " Functions -------------------------------------------------------------------
  1127. " Search Highlighting Cursor {{{
  1128. function! GruvboxHlsShowCursor()
  1129. call s:HL('Cursor', s:bg0, s:hls_cursor)
  1130. endfunction
  1131. function! GruvboxHlsHideCursor()
  1132. call s:HL('Cursor', s:none, s:none, s:inverse)
  1133. endfunction
  1134. " }}}
  1135. " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker: