OceanicNext.vim 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. " ===============================================================
  2. " OceanicNext
  3. " Author: Mike Hartington
  4. " ===============================================================
  5. " {{{ Setup
  6. set background=dark
  7. hi clear
  8. if exists("syntax_on")
  9. syntax reset
  10. endif
  11. let g:colors_name="OceanicNext"
  12. " }}}
  13. " {{{ Italics
  14. let g:oceanic_next_terminal_italic = get(g:, 'oceanic_next_terminal_italic', 0)
  15. let s:italic = ""
  16. if g:oceanic_next_terminal_italic == 1
  17. let s:italic = "italic"
  18. endif
  19. "}}}
  20. " {{{ Bold
  21. let g:oceanic_next_terminal_bold = get(g:, 'oceanic_next_terminal_bold', 0)
  22. let s:bold = ""
  23. if g:oceanic_next_terminal_bold == 1
  24. let s:bold = "bold"
  25. endif
  26. "}}}
  27. " {{{ Colors
  28. let s:base00 = ['#1b2b34', '235']
  29. let s:base01 = ['#343d46', '237']
  30. let s:base02 = ['#4f5b66', '240']
  31. let s:base03 = ['#65737e', '243']
  32. let s:base04 = ['#a7adba', '145']
  33. let s:base05 = ['#c0c5ce', '251']
  34. let s:base06 = ['#cdd3de', '252']
  35. let s:base07 = ['#d8dee9', '253']
  36. let s:red = ['#ec5f67', '203']
  37. let s:orange = ['#f99157', '209']
  38. let s:yellow = ['#fac863', '221']
  39. let s:green = ['#99c794', '114']
  40. let s:cyan = ['#62b3b2', '73']
  41. let s:blue = ['#6699cc', '68']
  42. let s:purple = ['#c594c5', '176']
  43. let s:brown = ['#ab7967', '137']
  44. let s:white = ['#ffffff', '15']
  45. let s:none = ['NONE', 'NONE']
  46. " }}}
  47. " {{{ Highlight function
  48. function! s:hi(group, fg, bg, attr, attrsp)
  49. " fg, bg, attr, attrsp
  50. if !empty(a:fg)
  51. exec "hi " . a:group . " guifg=" . a:fg[0]
  52. exec "hi " . a:group . " ctermfg=" . a:fg[1]
  53. endif
  54. if !empty(a:bg)
  55. exec "hi " . a:group . " guibg=" . a:bg[0]
  56. exec "hi " . a:group . " ctermbg=" . a:bg[1]
  57. endif
  58. if a:attr != ""
  59. exec "hi " . a:group . " gui=" . a:attr
  60. exec "hi " . a:group . " cterm=" . a:attr
  61. endif
  62. if !empty(a:attrsp)
  63. exec "hi " . a:group . " guisp=" . a:attrsp[0]
  64. endif
  65. endfunction
  66. " }}}
  67. " {{{ call s::hi(group, fg, bg, gui, guisp)
  68. call s:hi('Bold', '', '', s:bold, '')
  69. call s:hi('Debug', s:red, '', '', '')
  70. call s:hi('Directory', s:blue, '', '', '')
  71. call s:hi('ErrorMsg', s:red, s:base00, '', '')
  72. call s:hi('Exception', s:red, '', '', '')
  73. call s:hi('FoldColumn', s:blue, s:base00, '', '')
  74. call s:hi('Folded', s:base03, s:base01, s:italic, '')
  75. call s:hi('IncSearch', s:base01, s:orange, 'NONE', '')
  76. call s:hi('Italic', '', '', s:italic, '')
  77. call s:hi('Macro', s:red, '', '', '')
  78. call s:hi('MatchParen', s:base05, s:base03, '', '')
  79. call s:hi('ModeMsg', s:green, '', '', '')
  80. call s:hi('MoreMsg', s:green, '', '', '')
  81. call s:hi('Question', s:blue, '', '', '')
  82. call s:hi('Search', s:base03, s:yellow, '', '')
  83. call s:hi('SpecialKey', s:base03, '', '', '')
  84. call s:hi('TooLong', s:red, '', '', '')
  85. call s:hi('Underlined', s:red, '', '', '')
  86. call s:hi('Visual', '', s:base02, '', '')
  87. call s:hi('VisualNOS', s:red, '', '', '')
  88. call s:hi('WarningMsg', s:red, '', '', '')
  89. call s:hi('WildMenu', s:base07, s:blue, '', '')
  90. call s:hi('Title', s:blue, '', '', '')
  91. call s:hi('Conceal', s:blue, s:base00, '', '')
  92. call s:hi('Cursor', s:base00, s:base05, '', '')
  93. call s:hi('NonText', s:base03, '', '', '')
  94. call s:hi('Normal', s:base07, s:base00, '', '')
  95. call s:hi('EndOfBuffer', s:base05, s:base00, '', '')
  96. call s:hi('LineNr', s:base03, s:base00, '', '')
  97. call s:hi('SignColumn', s:base00, s:base00, '', '')
  98. call s:hi('StatusLine', s:base01, s:base03, '', '')
  99. call s:hi('StatusLineNC', s:base03, s:base01, '', '')
  100. call s:hi('VertSplit', s:base00, s:base02, '', '')
  101. call s:hi('ColorColumn', '', s:base01, '', '')
  102. call s:hi('CursorColumn', '', s:base01, '', '')
  103. call s:hi('CursorLine', '', s:base01, 'None', '')
  104. call s:hi('CursorLineNR', s:base00, s:base00, '', '')
  105. call s:hi('CursorLineNr', s:base03, s:base01, '', '')
  106. call s:hi('PMenu', s:base04, s:base01, '', '')
  107. call s:hi('PMenuSel', s:base07, s:blue, '', '')
  108. call s:hi('PmenuSbar', '', s:base02, '', '')
  109. call s:hi('PmenuThumb', '', s:base07, '', '')
  110. call s:hi('TabLine', s:base03, s:base01, '', '')
  111. call s:hi('TabLineFill', s:base03, s:base01, '', '')
  112. call s:hi('TabLineSel', s:green, s:base01, '', '')
  113. call s:hi('helpExample', s:yellow, '', '', '')
  114. call s:hi('helpCommand', s:yellow, '', '', '')
  115. " Standard syntax highlighting
  116. call s:hi('Boolean', s:orange, '', '', '')
  117. call s:hi('Character', s:red, '', '', '')
  118. call s:hi('Comment', s:base03, '', s:italic, '')
  119. call s:hi('Conditional', s:purple, '', '', '')
  120. call s:hi('Constant', s:orange, '', '', '')
  121. call s:hi('Define', s:purple, '', '', '')
  122. call s:hi('Delimiter', s:brown, '', '', '')
  123. call s:hi('Float', s:orange, '', '', '')
  124. call s:hi('Function', s:blue, '', '', '')
  125. call s:hi('Identifier', s:cyan, '', '', '')
  126. call s:hi('Include', s:blue, '', '', '')
  127. call s:hi('Keyword', s:purple, '', '', '')
  128. call s:hi('Label', s:yellow, '', '', '')
  129. call s:hi('Number', s:orange, '', '', '')
  130. call s:hi('Operator', s:base05, '', '', '')
  131. call s:hi('PreProc', s:yellow, '', '', '')
  132. call s:hi('Repeat', s:yellow, '', '', '')
  133. call s:hi('Special', s:cyan, '', '', '')
  134. call s:hi('SpecialChar', s:brown, '', '', '')
  135. call s:hi('Statement', s:red, '', '', '')
  136. call s:hi('StorageClass', s:yellow, '', '', '')
  137. call s:hi('String', s:green, '', '', '')
  138. call s:hi('Structure', s:purple, '', '', '')
  139. call s:hi('Tag', s:yellow, '', '', '')
  140. call s:hi('Todo', s:yellow, s:base01, '', '')
  141. call s:hi('Type', s:yellow, '', '', '')
  142. call s:hi('Typedef', s:yellow, '', '', '')
  143. " LSP
  144. call s:hi('LspDiagnosticsDefaultError', '', '', '', '')
  145. call s:hi('LspDiagnosticsSignError', s:red, '', '', '')
  146. call s:hi('LspDiagnosticsUnderlineError', '', '', 'undercurl', '')
  147. call s:hi('LspDiagnosticsDefaultWarning', '', '', '', '')
  148. call s:hi('LspDiagnosticsSignWarning', s:yellow, '', '', '')
  149. call s:hi('LspDiagnosticsUnderlineWarning', '', '', 'undercurl', '')
  150. call s:hi('LspDiagnosticsDefaultInformation', '', '', '', '')
  151. call s:hi('LspDiagnosticsSignInformation', s:blue, '', '', '')
  152. call s:hi('LspDiagnosticsUnderlineInformation', '', '', 'undercurl', '')
  153. call s:hi('LspDiagnosticsDefaultHint', '', '', '', '')
  154. call s:hi('LspDiagnosticsSignHint', s:cyan, '', '', '')
  155. call s:hi('LspDiagnosticsUnderlineHint', '', '', 'undercurl', '')
  156. " TreeSitter stuff
  157. call s:hi('TSInclude', s:cyan, '', '', '')
  158. call s:hi('TSPunctBracket', s:cyan, '', '', '')
  159. call s:hi('TSPunctDelimiter', s:base07, '', '', '')
  160. call s:hi('TSParameter', s:base07, '', '', '')
  161. call s:hi('TSType', s:blue, '', '', '')
  162. call s:hi('TSFunction', s:cyan, '', '', '')
  163. call s:hi('TSTagDelimiter', s:cyan, '', '', '')
  164. call s:hi('TSProperty', s:yellow, '', '', '')
  165. call s:hi('TSMethod', s:blue, '', '', '')
  166. call s:hi('TSParameter', s:yellow, '', '', '')
  167. call s:hi('TSConstructor', s:base07, '', '', '')
  168. call s:hi('TSVariable', s:base07, '', '', '')
  169. call s:hi('TSOperator', s:base07, '', '', '')
  170. call s:hi('TSTag', s:base07, '', '', '')
  171. call s:hi('TSKeyword', s:purple, '', '', '')
  172. call s:hi('TSKeywordOperator', s:purple, '', '', '')
  173. call s:hi('TSVariableBuiltin', s:red, '', '', '')
  174. call s:hi('TSLabel', s:cyan, '', '', '')
  175. call s:hi('SpellBad', '', '', 'undercurl', '')
  176. call s:hi('SpellLocal', '', '', 'undercurl', '')
  177. call s:hi('SpellCap', '', '', 'undercurl', '')
  178. call s:hi('SpellRare', '', '', 'undercurl', '')
  179. call s:hi('csClass', s:yellow, '', '', '')
  180. call s:hi('csAttribute', s:yellow, '', '', '')
  181. call s:hi('csModifier', s:purple, '', '', '')
  182. call s:hi('csType', s:red, '', '', '')
  183. call s:hi('csUnspecifiedStatement', s:blue, '', '', '')
  184. call s:hi('csContextualStatement', s:purple, '', '', '')
  185. call s:hi('csNewDecleration', s:red, '', '', '')
  186. call s:hi('cOperator', s:cyan, '', '', '')
  187. call s:hi('cPreCondit', s:purple, '', '', '')
  188. call s:hi('cssColor', s:cyan, '', '', '')
  189. call s:hi('cssBraces', s:base05, '', '', '')
  190. call s:hi('cssClassName', s:purple, '', '', '')
  191. call s:hi('DiffAdd', s:green, s:base01, s:bold, '')
  192. call s:hi('DiffChange', s:base03, s:base01, '', '')
  193. call s:hi('DiffDelete', s:red, s:base01, '', '')
  194. call s:hi('DiffText', s:blue, s:base01, '', '')
  195. call s:hi('DiffAdded', s:base07, s:green, s:bold, '')
  196. call s:hi('DiffFile', s:red, s:base00, '', '')
  197. call s:hi('DiffNewFile', s:green, s:base00, '', '')
  198. call s:hi('DiffLine', s:blue, s:base00, '', '')
  199. call s:hi('DiffRemoved', s:base07, s:red, s:bold, '')
  200. call s:hi('gitCommitOverflow', s:red, '', '', '')
  201. call s:hi('gitCommitSummary', s:green, '', '', '')
  202. call s:hi('htmlBold', s:yellow, '', '', '')
  203. call s:hi('htmlItalic', s:purple, '', '', '')
  204. call s:hi('htmlTag', s:cyan, '', '', '')
  205. call s:hi('htmlEndTag', s:cyan, '', '', '')
  206. call s:hi('htmlArg', s:yellow, '', '', '')
  207. call s:hi('htmlTagName', s:base07, '', '', '')
  208. call s:hi('javaScript', s:base05, '', '', '')
  209. call s:hi('javaScriptNumber', s:orange, '', '', '')
  210. call s:hi('javaScriptBraces', s:base05, '', '', '')
  211. call s:hi('jsonKeyword', s:green, '', '', '')
  212. call s:hi('jsonQuote', s:green, '', '', '')
  213. call s:hi('markdownCode', s:green, '', '', '')
  214. call s:hi('markdownCodeBlock', s:green, '', '', '')
  215. call s:hi('markdownHeadingDelimiter', s:blue, '', '', '')
  216. call s:hi('markdownItalic', s:purple, '', s:italic, '')
  217. call s:hi('markdownBold', s:yellow, '', s:bold, '')
  218. call s:hi('markdownCodeDelimiter', s:brown, '', s:italic, '')
  219. call s:hi('markdownError', s:base05, s:base00, '', '')
  220. call s:hi('typescriptParens', s:base05, s:none, '', '')
  221. call s:hi('NeomakeErrorSign', s:red, s:base00, '', '')
  222. call s:hi('NeomakeWarningSign', s:yellow, s:base00, '', '')
  223. call s:hi('NeomakeInfoSign', s:white, s:base00, '', '')
  224. call s:hi('NeomakeError', s:red, '', 'underline', s:red)
  225. call s:hi('NeomakeWarning', s:red, '', 'underline', s:red)
  226. call s:hi('ALEErrorSign', s:red, s:base00, s:bold, '')
  227. call s:hi('ALEWarningSign', s:yellow, s:base00, s:bold, '')
  228. call s:hi('ALEInfoSign', s:white, s:base00, s:bold, '')
  229. call s:hi('NERDTreeExecFile', s:base05, '', '', '')
  230. call s:hi('NERDTreeDirSlash', s:blue, '', '', '')
  231. call s:hi('NERDTreeOpenable', s:blue, '', '', '')
  232. call s:hi('NERDTreeFile', '', s:none, '', '')
  233. call s:hi('NERDTreeFlags', s:blue, '', '', '')
  234. call s:hi('phpComparison', s:base05, '', '', '')
  235. call s:hi('phpParent', s:base05, '', '', '')
  236. call s:hi('phpMemberSelector', s:base05, '', '', '')
  237. call s:hi('pythonRepeat', s:purple, '', '', '')
  238. call s:hi('pythonOperator', s:purple, '', '', '')
  239. call s:hi('rubyConstant', s:yellow, '', '', '')
  240. call s:hi('rubySymbol', s:green, '', '', '')
  241. call s:hi('rubyAttribute', s:blue, '', '', '')
  242. call s:hi('rubyInterpolation', s:green, '', '', '')
  243. call s:hi('rubyInterpolationDelimiter', s:brown, '', '', '')
  244. call s:hi('rubyStringDelimiter', s:green, '', '', '')
  245. call s:hi('rubyRegexp', s:cyan, '', '', '')
  246. call s:hi('sassidChar', s:red, '', '', '')
  247. call s:hi('sassClassChar', s:orange, '', '', '')
  248. call s:hi('sassInclude', s:purple, '', '', '')
  249. call s:hi('sassMixing', s:purple, '', '', '')
  250. call s:hi('sassMixinName', s:blue, '', '', '')
  251. call s:hi('vimfilerLeaf', s:base05, '', '', '')
  252. call s:hi('vimfilerNormalFile', s:base05, s:base00, '', '')
  253. call s:hi('vimfilerOpenedFile', s:blue, '', '', '')
  254. call s:hi('vimfilerClosedFile', s:blue, '', '', '')
  255. call s:hi('GitGutterAdd', s:green, s:base00, s:bold, '')
  256. call s:hi('GitGutterChange', s:blue, s:base00, s:bold, '')
  257. call s:hi('GitGutterDelete', s:red, s:base00, s:bold, '')
  258. call s:hi('GitGutterChangeDelete', s:purple, s:base00, s:bold, '')
  259. call s:hi('SignifySignAdd', s:green, s:base00, s:bold, '')
  260. call s:hi('SignifySignChange', s:blue, s:base00, s:bold, '')
  261. call s:hi('SignifySignDelete', s:red, s:base00, s:bold, '')
  262. call s:hi('SignifySignChangeDelete', s:purple, s:base00, s:bold, '')
  263. call s:hi('SignifySignDeleteFirstLine', s:red, s:base00, s:bold, '')
  264. call s:hi('xmlTag', s:cyan, '', '', '')
  265. call s:hi('xmlTagName', s:base05, '', '', '')
  266. call s:hi('xmlEndTag', s:cyan, '', '', '')
  267. call s:hi('Defx_filename_directory', s:blue, '', '', '')
  268. call s:hi('CocErrorSign', s:red, '', '', '')
  269. call s:hi('CocWarningSign', s:yellow, '', '', '')
  270. call s:hi('CocInfoSign', s:blue, '', '', '')
  271. call s:hi('CocHintSign', s:cyan, '', '', '')
  272. call s:hi('CocErrorFloat', s:red, '', '', '')
  273. call s:hi('CocWarningFloat', s:yellow, '', '', '')
  274. call s:hi('CocInfoFloat', s:blue, '', '', '')
  275. call s:hi('CocHintFloat', s:cyan, '', '', '')
  276. call s:hi('CocDiagnosticsError', s:red, '', '', '')
  277. call s:hi('CocDiagnosticsWarning', s:yellow, '', '', '')
  278. call s:hi('CocDiagnosticsInfo', s:blue, '', '', '')
  279. call s:hi('CocDiagnosticsHint', s:cyan, '', '', '')
  280. call s:hi('CocSelectedText', s:purple, '', '', '')
  281. call s:hi('CocCodeLens', s:base04, '', '', '')
  282. " }}}
  283. " {{{ Terminal
  284. if has('nvim')
  285. let g:terminal_color_0=s:base00[0]
  286. let g:terminal_color_8=s:base03[0]
  287. let g:terminal_color_1=s:red[0]
  288. let g:terminal_color_9=s:red[0]
  289. let g:terminal_color_2=s:green[0]
  290. let g:terminal_color_10=s:green[0]
  291. let g:terminal_color_3=s:yellow[0]
  292. let g:terminal_color_11=s:yellow[0]
  293. let g:terminal_color_4=s:blue[0]
  294. let g:terminal_color_12=s:blue[0]
  295. let g:terminal_color_5=s:purple[0]
  296. let g:terminal_color_13=s:purple[0]
  297. let g:terminal_color_6=s:cyan[0]
  298. let g:terminal_color_14=s:cyan[0]
  299. let g:terminal_color_7=s:base05[0]
  300. let g:terminal_color_15=s:base05[0]
  301. let g:terminal_color_background=s:base00[0]
  302. let g:terminal_color_foreground=s:white[0]
  303. else
  304. let g:terminal_ansi_colors = [
  305. \ s:base00[0],
  306. \ s:red[0],
  307. \ s:green[0],
  308. \ s:yellow[0],
  309. \ s:blue[0],
  310. \ s:purple[0],
  311. \ s:cyan[0],
  312. \ s:white[0],
  313. \ s:base03[0],
  314. \ s:red[0],
  315. \ s:green[0],
  316. \ s:yellow[0],
  317. \ s:blue[0],
  318. \ s:purple[0],
  319. \ s:cyan[0],
  320. \ s:white[0],
  321. \]
  322. endif