gruvbox.vim 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. " -----------------------------------------------------------------------------
  2. " File: gruvbox.vim
  3. " Description: Retro groove color scheme for Airline
  4. " Author: morhetz <morhetz@gmail.com>
  5. " Source: https://github.com/morhetz/gruvbox
  6. " Last Modified: 22 Aug 2014
  7. " -----------------------------------------------------------------------------
  8. let g:airline#themes#gruvbox#palette = {}
  9. function! airline#themes#gruvbox#refresh()
  10. let M0 = airline#themes#get_highlight('Identifier')
  11. let accents_group = airline#themes#get_highlight('Special')
  12. let modified_group = [M0[0], '', M0[2], '', '']
  13. let warning_group = airline#themes#get_highlight2(['Normal', 'bg'], ['Question', 'fg'])
  14. let s:N1 = airline#themes#get_highlight2(['Normal', 'bg'], ['StatusLineNC', 'bg'])
  15. let s:N2 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['StatusLineNC', 'fg'])
  16. let s:N3 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['CursorLine', 'bg'])
  17. let g:airline#themes#gruvbox#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3)
  18. let g:airline#themes#gruvbox#palette.normal_modified = { 'airline_c': modified_group }
  19. let g:airline#themes#gruvbox#palette.normal.airline_warning = warning_group
  20. let g:airline#themes#gruvbox#palette.normal_modified.airline_warning = warning_group
  21. let s:I1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Identifier', 'fg'])
  22. let s:I2 = s:N2
  23. let s:I3 = airline#themes#get_highlight2(['Normal', 'fg'], ['StatusLineNC', 'fg'])
  24. let g:airline#themes#gruvbox#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3)
  25. let g:airline#themes#gruvbox#palette.insert_modified = g:airline#themes#gruvbox#palette.normal_modified
  26. let g:airline#themes#gruvbox#palette.insert.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
  27. let g:airline#themes#gruvbox#palette.insert_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
  28. let s:R1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Structure', 'fg'])
  29. let s:R2 = s:I2
  30. let s:R3 = s:I3
  31. let g:airline#themes#gruvbox#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3)
  32. let g:airline#themes#gruvbox#palette.replace_modified = g:airline#themes#gruvbox#palette.normal_modified
  33. let g:airline#themes#gruvbox#palette.replace.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
  34. let g:airline#themes#gruvbox#palette.replace_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
  35. let s:V1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Question', 'fg'])
  36. let s:V2 = s:N2
  37. let s:V3 = airline#themes#get_highlight2(['Normal', 'bg'], ['TabLine', 'fg'])
  38. let g:airline#themes#gruvbox#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3)
  39. let g:airline#themes#gruvbox#palette.visual_modified = { 'airline_c': [ s:V3[0], '', s:V3[2], '', '' ] }
  40. let g:airline#themes#gruvbox#palette.visual.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning
  41. let g:airline#themes#gruvbox#palette.visual_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning
  42. let s:IA = airline#themes#get_highlight2(['TabLine', 'fg'], ['CursorLine', 'bg'])
  43. let g:airline#themes#gruvbox#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA)
  44. let g:airline#themes#gruvbox#palette.inactive_modified = { 'airline_c': modified_group }
  45. let g:airline#themes#gruvbox#palette.accents = { 'red': accents_group }
  46. let s:TF = airline#themes#get_highlight2(['Normal', 'bg'], ['Normal', 'bg'])
  47. let g:airline#themes#gruvbox#palette.tabline = {
  48. \ 'airline_tab': s:N2,
  49. \ 'airline_tabsel': s:N1,
  50. \ 'airline_tabtype': s:V1,
  51. \ 'airline_tabfill': s:TF,
  52. \ 'airline_tabhid': s:IA,
  53. \ 'airline_tabmod': s:I1
  54. \ }
  55. endfunction
  56. call airline#themes#gruvbox#refresh()