base16-pop.vim 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. " Base16 Pop (https://github.com/chriskempson/base16)
  2. " Scheme: Chris Kempson (http://chriskempson.com)
  3. " GUI Base16 Color Definitions
  4. let s:gui00 = "000000"
  5. let s:gui01 = "202020"
  6. let s:gui02 = "303030"
  7. let s:gui03 = "505050"
  8. let s:gui04 = "b0b0b0"
  9. let s:gui05 = "d0d0d0"
  10. let s:gui06 = "e0e0e0"
  11. let s:gui07 = "ffffff"
  12. let s:gui08 = "eb008a"
  13. let s:gui09 = "f29333"
  14. let s:gui0A = "f8ca12"
  15. let s:gui0B = "37b349"
  16. let s:gui0C = "00aabb"
  17. let s:gui0D = "0e5a94"
  18. let s:gui0E = "b31e8d"
  19. let s:gui0F = "7a2d00"
  20. " Terminal Base16 Color Definitions
  21. let s:cterm00 = "00"
  22. let s:cterm03 = "08"
  23. let s:cterm05 = "07"
  24. let s:cterm07 = "15"
  25. let s:cterm08 = "01"
  26. let s:cterm0A = "03"
  27. let s:cterm0B = "02"
  28. let s:cterm0C = "06"
  29. let s:cterm0D = "04"
  30. let s:cterm0E = "05"
  31. if exists('base16colorspace') && base16colorspace == "256"
  32. let s:cterm01 = "18"
  33. let s:cterm02 = "19"
  34. let s:cterm04 = "20"
  35. let s:cterm06 = "21"
  36. let s:cterm09 = "16"
  37. let s:cterm0F = "17"
  38. else
  39. let s:cterm01 = "10"
  40. let s:cterm02 = "11"
  41. let s:cterm04 = "12"
  42. let s:cterm06 = "13"
  43. let s:cterm09 = "09"
  44. let s:cterm0F = "14"
  45. endif
  46. " Theme Setup
  47. hi clear
  48. syntax reset
  49. let g:colors_name = "base16-pop"
  50. " Highlighting function
  51. fun! <SID>hi(group, guifg, guibg, ctermfg, ctermbg, attr)
  52. if a:guifg != ""
  53. exec "hi " . a:group . " guifg=#" . a:guifg
  54. endif
  55. if a:guibg != ""
  56. exec "hi " . a:group . " guibg=#" . a:guibg
  57. endif
  58. if a:ctermfg != ""
  59. exec "hi " . a:group . " ctermfg=" . a:ctermfg
  60. endif
  61. if a:ctermbg != ""
  62. exec "hi " . a:group . " ctermbg=" . a:ctermbg
  63. endif
  64. if a:attr != ""
  65. exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
  66. endif
  67. endfun
  68. " Vim Editor Colors
  69. call <SID>hi("Bold", "", "", "", "", "bold")
  70. call <SID>hi("Debug", s:gui08, "", s:cterm08, "", "")
  71. call <SID>hi("Directory", s:gui0D, "", s:cterm0D, "", "")
  72. call <SID>hi("ErrorMsg", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
  73. call <SID>hi("Exception", s:gui08, "", s:cterm08, "", "")
  74. call <SID>hi("FoldColumn", "", s:gui01, "", s:cterm01, "")
  75. call <SID>hi("Folded", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
  76. call <SID>hi("IncSearch", s:gui0A, "", s:cterm0A, "", "")
  77. call <SID>hi("Italic", "", "", "", "", "none")
  78. call <SID>hi("Macro", s:gui08, "", s:cterm08, "", "")
  79. call <SID>hi("MatchParen", s:gui03, s:gui00, s:cterm03, s:cterm00, "reverse")
  80. call <SID>hi("ModeMsg", s:gui0B, "", s:cterm0B, "", "")
  81. call <SID>hi("MoreMsg", s:gui0B, "", s:cterm0B, "", "")
  82. call <SID>hi("Question", s:gui0A, "", s:cterm0A, "", "")
  83. call <SID>hi("Search", s:gui0A, s:gui01, s:cterm0A, s:cterm01, "reverse")
  84. call <SID>hi("SpecialKey", s:gui03, "", s:cterm03, "", "")
  85. call <SID>hi("TooLong", s:gui08, "", s:cterm08, "", "")
  86. call <SID>hi("Underlined", s:gui08, "", s:cterm08, "", "")
  87. call <SID>hi("Visual", "", s:gui02, "", s:cterm02, "")
  88. call <SID>hi("VisualNOS", s:gui08, "", s:cterm08, "", "")
  89. call <SID>hi("WarningMsg", s:gui08, "", s:cterm08, "", "")
  90. call <SID>hi("WildMenu", s:gui08, "", s:cterm08, "", "")
  91. call <SID>hi("Title", s:gui0D, "", s:cterm0D, "", "none")
  92. if &background == "dark"
  93. call <SID>hi("Cursor", s:gui00, s:gui05, s:cterm00, s:cterm05, "")
  94. call <SID>hi("NonText", s:gui03, "", s:cterm03, "", "")
  95. call <SID>hi("Normal", s:gui05, s:gui00, s:cterm05, s:cterm00, "")
  96. call <SID>hi("LineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
  97. call <SID>hi("SignColumn", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
  98. call <SID>hi("SpecialKey", s:gui03, "", s:cterm03, "", "")
  99. call <SID>hi("StatusLine", s:gui04, s:gui02, s:cterm04, s:cterm02, "none")
  100. call <SID>hi("StatusLineNC", s:gui03, s:gui01, s:cterm03, s:cterm01, "none")
  101. call <SID>hi("VertSplit", s:gui02, s:gui02, s:cterm02, s:cterm02, "none")
  102. call <SID>hi("ColorColumn", "", s:gui01, "", s:cterm01, "none")
  103. call <SID>hi("CursorColumn", "", s:gui01, "", s:cterm01, "none")
  104. call <SID>hi("CursorLine", "", s:gui01, "", s:cterm01, "none")
  105. call <SID>hi("CursorLineNr", s:gui03, s:gui01, s:cterm03, s:cterm01, "")
  106. call <SID>hi("PMenu", s:gui04, s:gui01, s:cterm04, s:cterm01, "none")
  107. call <SID>hi("PMenuSel", s:gui04, s:gui01, s:cterm04, s:cterm01, "reverse")
  108. call <SID>hi("TabLine", s:gui03, s:gui01, s:cterm03, s:cterm01, "none")
  109. call <SID>hi("TabLineFill", s:gui03, s:gui01, s:cterm03, s:cterm01, "none")
  110. call <SID>hi("TabLineSel", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "none")
  111. else
  112. call <SID>hi("Cursor", s:gui00, s:gui02, s:cterm00, s:cterm02, "")
  113. call <SID>hi("NonText", s:gui05, "", s:cterm05, "", "")
  114. call <SID>hi("Normal", s:gui02, s:gui07, s:cterm02, s:cterm05, "")
  115. call <SID>hi("LineNr", s:gui04, s:gui06, s:cterm04, s:cterm06, "")
  116. call <SID>hi("SignColumn", s:gui04, s:gui06, s:cterm04, s:cterm06, "")
  117. call <SID>hi("SpecialKey", s:gui05, "", s:cterm05, "", "")
  118. call <SID>hi("StatusLine", s:gui04, s:gui06, s:cterm04, s:cterm06, "none")
  119. call <SID>hi("StatusLineNC", s:gui04, s:gui06, s:cterm04, s:cterm06, "none")
  120. call <SID>hi("VertSplit", s:gui05, s:gui05, s:cterm05, s:cterm05, "none")
  121. call <SID>hi("ColorColumn", "", s:gui06, "", s:cterm06, "none")
  122. call <SID>hi("CursorColumn", "", s:gui06, "", s:cterm06, "none")
  123. call <SID>hi("CursorLine", "", s:gui06, "", s:cterm06, "none")
  124. call <SID>hi("CursorLineNr", s:gui04, s:gui06, s:cterm04, s:cterm06, "")
  125. call <SID>hi("PMenu", s:gui05, s:gui03, s:cterm05, s:cterm03, "none")
  126. call <SID>hi("PMenuSel", s:gui05, s:gui03, s:cterm05, s:cterm03, "reverse")
  127. call <SID>hi("TabLine", s:gui06, s:gui01, s:cterm06, s:cterm01, "reverse")
  128. call <SID>hi("TabLineFill", s:gui06, s:gui01, s:cterm06, s:cterm01, "reverse")
  129. call <SID>hi("TabLineSel", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "reverse")
  130. endif
  131. " Standard Syntax Highlighting
  132. call <SID>hi("Boolean", s:gui09, "", s:cterm09, "", "")
  133. call <SID>hi("Character", s:gui08, "", s:cterm08, "", "")
  134. call <SID>hi("Comment", s:gui03, "", s:cterm03, "", "")
  135. call <SID>hi("Conditional", s:gui0E, "", s:cterm0E, "", "")
  136. call <SID>hi("Constant", s:gui09, "", s:cterm09, "", "")
  137. call <SID>hi("Define", s:gui0E, "", s:cterm0E, "", "none")
  138. call <SID>hi("Delimiter", s:gui0F, "", s:cterm0F, "", "")
  139. call <SID>hi("Float", s:gui09, "", s:cterm09, "", "")
  140. call <SID>hi("Function", s:gui0D, "", s:cterm0D, "", "")
  141. call <SID>hi("Identifier", s:gui08, "", s:cterm08, "", "none")
  142. call <SID>hi("Include", s:gui0D, "", s:cterm0D, "", "")
  143. call <SID>hi("Keyword", s:gui0E, "", s:cterm0E, "", "")
  144. call <SID>hi("Label", s:gui0A, "", s:cterm0A, "", "")
  145. call <SID>hi("Number", s:gui09, "", s:cterm09, "", "")
  146. call <SID>hi("Operator", s:gui05, "", s:cterm05, "", "none")
  147. call <SID>hi("PreProc", s:gui0A, "", s:cterm0A, "", "")
  148. call <SID>hi("Repeat", s:gui0A, "", s:cterm0A, "", "")
  149. call <SID>hi("Special", s:gui0C, "", s:cterm0C, "", "")
  150. call <SID>hi("SpecialChar", s:gui0F, "", s:cterm0F, "", "")
  151. call <SID>hi("Statement", s:gui08, "", s:cterm08, "", "")
  152. call <SID>hi("StorageClass", s:gui0A, "", s:cterm0A, "", "")
  153. call <SID>hi("String", s:gui0B, "", s:cterm0B, "", "")
  154. call <SID>hi("Structure", s:gui0E, "", s:cterm0E, "", "")
  155. call <SID>hi("Tag", s:gui0A, "", s:cterm0A, "", "")
  156. call <SID>hi("Todo", s:gui0A, s:gui01, s:cterm0A, s:cterm01, "")
  157. call <SID>hi("Type", s:gui09, "", s:cterm09, "", "none")
  158. call <SID>hi("Typedef", s:gui0A, "", s:cterm0A, "", "")
  159. " Spelling Highlighting
  160. call <SID>hi("SpellBad", "", s:gui00, "", s:cterm08, "")
  161. call <SID>hi("SpellLocal", "", s:gui00, "", s:cterm0D, "")
  162. "call <SID>hi("SpellCap", s:gui00, s:gui08, s:cterm00, s:cterm08, "")
  163. "call <SID>hi("SpellRare", s:gui00, s:gui08, s:cterm00, s:cterm08, "")
  164. " Additional Diff Highlighting
  165. call <SID>hi("DiffAdd", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "")
  166. call <SID>hi("DiffChange", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
  167. call <SID>hi("DiffDelete", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
  168. call <SID>hi("DiffText", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
  169. call <SID>hi("DiffAdded", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "")
  170. call <SID>hi("DiffFile", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
  171. call <SID>hi("DiffNewFile", s:gui0B, s:gui00, s:cterm0B, s:cterm00, "")
  172. call <SID>hi("DiffLine", s:gui0D, s:gui00, s:cterm0D, s:cterm00, "")
  173. call <SID>hi("DiffRemoved", s:gui08, s:gui00, s:cterm08, s:cterm00, "")
  174. " Ruby Highlighting
  175. call <SID>hi("rubyAttribute", s:gui0D, "", s:cterm0D, "", "")
  176. call <SID>hi("rubyConstant", s:gui0A, "", s:cterm0A, "", "")
  177. call <SID>hi("rubyInterpolation", s:gui0B, "", s:cterm0B, "", "")
  178. call <SID>hi("rubyInterpolationDelimiter", s:gui0F, "", s:cterm0F, "", "")
  179. call <SID>hi("rubyRegexp", s:gui0C, "", s:cterm0C, "", "")
  180. call <SID>hi("rubySymbol", s:gui0B, "", s:cterm0B, "", "")
  181. call <SID>hi("rubyStringDelimiter", s:gui0B, "", s:cterm0B, "", "")
  182. " PHP Highlighting
  183. call <SID>hi("phpMemberSelector", s:gui05, "", s:cterm05, "", "")
  184. call <SID>hi("phpComparison", s:gui05, "", s:cterm05, "", "")
  185. call <SID>hi("phpParent", s:gui05, "", s:cterm05, "", "")
  186. " HTML Highlighting
  187. call <SID>hi("htmlBold", s:gui0A, "", s:cterm0A, "", "")
  188. call <SID>hi("htmlItalic", s:gui0E, "", s:cterm0E, "", "")
  189. call <SID>hi("htmlEndTag", s:gui05, "", s:cterm05, "", "")
  190. call <SID>hi("htmlTag", s:gui05, "", s:cterm05, "", "")
  191. " CSS Highlighting
  192. call <SID>hi("cssBraces", s:gui05, "", s:cterm05, "", "")
  193. call <SID>hi("cssClassName", s:gui0E, "", s:cterm0E, "", "")
  194. call <SID>hi("cssColor", s:gui0C, "", s:cterm0C, "", "")
  195. " SASS Highlighting
  196. call <SID>hi("sassIdChar", s:gui08, "", s:cterm08, "", "")
  197. call <SID>hi("sassClassChar", s:gui09, "", s:cterm09, "", "")
  198. call <SID>hi("sassInclude", s:gui0E, "", s:cterm0E, "", "")
  199. call <SID>hi("sassMixing", s:gui0E, "", s:cterm0E, "", "")
  200. call <SID>hi("sassMixinName", s:gui0D, "", s:cterm0D, "", "")
  201. " JavaScript Highlighting
  202. call <SID>hi("javaScript", s:gui05, "", s:cterm05, "", "")
  203. call <SID>hi("javaScriptBraces", s:gui05, "", s:cterm05, "", "")
  204. call <SID>hi("javaScriptNumber", s:gui09, "", s:cterm09, "", "")
  205. " Markdown Highlighting
  206. call <SID>hi("markdownCode", s:gui0B, "", s:cterm0B, "", "")
  207. call <SID>hi("markdownCodeBlock", s:gui0B, "", s:cterm0B, "", "")
  208. call <SID>hi("markdownHeadingDelimiter", s:gui0D, "", s:cterm0D, "", "")
  209. " Git Highlighting
  210. call <SID>hi("gitCommitOverflow", s:gui08, "", s:cterm08, "", "")
  211. call <SID>hi("gitCommitSummary", s:gui0B, "", s:cterm0B, "", "")
  212. " GitGutter Highlighting
  213. if &background == "dark"
  214. call <SID>hi("GitGutterAdd", s:gui0B, s:gui01, s:cterm0B, s:cterm01, "")
  215. call <SID>hi("GitGutterChange", s:gui0D, s:gui01, s:cterm0D, s:cterm01, "")
  216. call <SID>hi("GitGutterDelete", s:gui08, s:gui01, s:cterm08, s:cterm01, "")
  217. else
  218. call <SID>hi("GitGutterAdd", s:gui0B, s:gui06, s:cterm0B, s:cterm06, "")
  219. call <SID>hi("GitGutterChange", s:gui0D, s:gui06, s:cterm0D, s:cterm06, "")
  220. call <SID>hi("GitGutterDelete", s:gui08, s:gui06, s:cterm08, s:cterm06, "")
  221. endif
  222. " GitGutter Highlighting
  223. call <SID>hi("NERDTreeDirSlash", s:gui0D, "", s:cterm0D, "", "")
  224. call <SID>hi("NERDTreeExecFile", s:gui05, "", s:cterm05, "", "")
  225. " remove highlighting function
  226. delf <sid>hi
  227. " Remove Colour Variables
  228. unlet s:gui00 s:gui01 s:gui02 s:gui03 s:gui04 s:gui05 s:gui06 s:gui07 s:gui08 s:gui09 s:gui0A s:gui0B s:gui0C s:gui0D s:gui0E s:gui0F
  229. unlet s:cterm00 s:cterm01 s:cterm02 s:cterm03 s:cterm04 s:cterm05 s:cterm06 s:cterm07 s:cterm08 s:cterm09 s:cterm0A s:cterm0B s:cterm0C s:cterm0D s:cterm0E s:cterm0F