gruvbox.vim 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. " -----------------------------------------------------------------------------
  2. " File: gruvbox.vim
  3. " Description: Gruvbox colorscheme for Lightline (itchyny/lightline.vim)
  4. " Author: gmoe <me@griffinmoe.com>
  5. " Source: https://github.com/morhetz/gruvbox
  6. " Last Modified: 31 Oct 2015
  7. " -----------------------------------------------------------------------------
  8. function! s:getGruvColor(group)
  9. let guiColor = synIDattr(hlID(a:group), "fg", "gui")
  10. let termColor = synIDattr(hlID(a:group), "fg", "cterm")
  11. return [ guiColor, termColor ]
  12. endfunction
  13. if exists('g:lightline')
  14. let s:bg1 = s:getGruvColor('GruvboxBg1')
  15. let s:bg2 = s:getGruvColor('GruvboxBg2')
  16. let s:bg3 = s:getGruvColor('GruvboxBg3')
  17. let s:bg4 = s:getGruvColor('GruvboxBg4')
  18. let s:gray = s:getGruvColor('GruvboxGray')
  19. let s:fg1 = s:getGruvColor('GruvboxFg1')
  20. let s:fg2 = s:getGruvColor('GruvboxFg2')
  21. let s:fg3 = s:getGruvColor('GruvboxFg3')
  22. let s:fg4 = s:getGruvColor('GruvboxFg4')
  23. let s:red = s:getGruvColor('GruvboxRed')
  24. let s:green = s:getGruvColor('GruvboxGreen')
  25. let s:yellow = s:getGruvColor('GruvboxYellow')
  26. let s:blue = s:getGruvColor('GruvboxBlue')
  27. let s:purple = s:getGruvColor('GruvboxPurple')
  28. let s:aqua = s:getGruvColor('GruvboxAqua')
  29. let s:orange = s:getGruvColor('GruvboxOrange')
  30. let s:p = {'normal':{}, 'inactive':{}, 'insert':{}, 'replace':{}, 'visual':{}, 'tabline':{}}
  31. let s:p.normal.left = [ [ s:bg1, s:fg4 ], [ s:fg4, s:bg2 ] ]
  32. let s:p.normal.right = [ [ s:bg1, s:fg4 ], [ s:fg4, s:bg2 ] ]
  33. let s:p.inactive.right = [ [ s:gray, s:bg1 ], [ s:gray, s:bg1 ] ]
  34. let s:p.inactive.left = [ [ s:gray, s:bg1 ], [ s:gray, s:bg1 ] ]
  35. let s:p.insert.left = [ [ s:bg2, s:blue ], [ s:fg4, s:bg2 ] ]
  36. let s:p.insert.right = [ [ s:bg2, s:blue ], [ s:fg4, s:bg2 ] ]
  37. let s:p.replace.left = [ [ s:bg2, s:aqua ], [ s:fg4, s:bg2 ] ]
  38. let s:p.replace.right = [ [ s:bg2, s:aqua ], [ s:fg4, s:bg2 ] ]
  39. let s:p.visual.left = [ [ s:bg2, s:orange ], [ s:fg4, s:bg2 ] ]
  40. let s:p.visual.right = [ [ s:bg2, s:orange ], [ s:fg4, s:bg2 ] ]
  41. let s:p.normal.middle = [ [ s:fg3, s:bg1 ] ]
  42. let s:p.inactive.middle = [ [ s:fg3, s:bg1 ] ]
  43. let s:p.tabline.left = [ [ s:bg1, s:fg4 ] ]
  44. let s:p.tabline.tabsel = [ [ s:fg4, s:bg2 ] ]
  45. let s:p.tabline.middle = [ [ s:bg4, s:bg1 ] ]
  46. let s:p.tabline.right = [ [ s:bg1, s:orange ] ]
  47. let s:p.normal.error = [ [ s:bg1, s:red ] ]
  48. let s:p.normal.warning = [ [ s:bg2, s:yellow ] ]
  49. let g:lightline#colorscheme#gruvbox#palette = lightline#colorscheme#flatten(s:p)
  50. endif