1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 02:00:05 +08:00

Improve colorscheme layer (#1549)

Add jellybeans hybrid and nord support
This commit is contained in:
Wang Shidong 2018-03-25 05:01:48 -05:00 committed by GitHub
parent 5b41ad5bc3
commit abef4b7870
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 192 additions and 306 deletions

View File

@ -77,7 +77,7 @@ function! SpaceVim#autocmds#init() abort
endif
autocmd BufWritePost *.vim call s:generate_doc()
autocmd ColorScheme * call SpaceVim#api#import('vim#highlight').hide_in_normal('EndOfBuffer')
autocmd ColorScheme gruvbox call s:fix_gruvbox()
autocmd ColorScheme gruvbox,jellybeans,nord call s:fix_VertSplit()
autocmd VimEnter * call SpaceVim#autocmds#VimEnter()
autocmd BufEnter * let b:_spacevim_project_name = get(g:, '_spacevim_project_name', '')
autocmd SessionLoadPost * let g:_spacevim_session_loaded = 1
@ -118,13 +118,19 @@ function! s:generate_doc() abort
endif
endfunction
function! s:fix_gruvbox() abort
function! s:fix_VertSplit() abort
if &background ==# 'dark'
if g:colors_name ==# 'gruvbox'
hi VertSplit guibg=#282828 guifg=#181A1F
"hi EndOfBuffer guibg=#282828 guifg=#282828
elseif g:colors_name ==# 'jellybeans'
hi VertSplit guibg=#151515 guifg=#080808
elseif g:colors_name ==# 'nord'
hi VertSplit guibg=#2E3440 guifg=#262626
endif
else
if g:colors_name ==# 'gruvbox'
hi VertSplit guibg=#fbf1c7 guifg=#e7e9e1
"hi EndOfBuffer guibg=#fbf1c7 guifg=#fbf1c7
endif
endif
hi SpaceVimLeaderGuiderGroupName cterm=bold ctermfg=175 gui=bold guifg=#d3869b
endfunction

View File

@ -24,175 +24,56 @@
" a colorscheme called atom doesn't support spell check very well.
"
" SpaceVim is not gonna fix them since these should be in charge of each author.
" You can see a list which has no support of spell check in here:
" https://github.com/SpaceVim/SpaceVim/issues/209#issuecomment-280545818
"
" >
" anderson
" apprentice
" atom
" base16-3024
" base16-apathy
" base16-ashes
" base16-atelier-cave
" base16-atelier-dune
" base16-atelier-estuary
" base16-atelier-forest
" base16-atelier-heath
" base16-atelier-lakeside
" base16-atelier-plateau
" base16-atelier-savanna
" base16-atelier-seaside
" base16-atelier-sulphurpool
" base16-bespin
" base16-brewer
" base16-bright
" base16-chalk
" base16-codeschool
" base16-cupcake
" base16-darktooth
" base16-default-dark
" base16-default-light
" base16-dracula
" base16-eighties
" base16-embers
" base16-flat
" base16-github
" base16-google-dark
" base16-google-light
" base16-grayscale-dark
" base16-grayscale-light
" base16-green-screen
" base16-harmonic16-dark
" base16-harmonic16-light
" base16-hopscotch
" base16-ir-black
" base16-isotope
" base16-london-tube
" base16-macintosh
" base16-marrakesh
" base16-materia
" base16-mexico-light
" base16-mocha
" base16-monokai
" base16-ocean
" base16-oceanicnext
" base16-onedark
" base16-paraiso
" base16-phd
" base16-pico
" base16-pop
" base16-railscasts
" base16-seti-ui
" base16-shapeshifter
" base16-solar-flare
" base16-solarized-dark
" base16-solarized-light
" base16-spacemacs
" base16-summerfruit-dark
" base16-summerfruit-light
" base16-tomorrow
" base16-tomorrow-night
" base16-twilight
" base16-unikitty-dark
" base16-unikitty-light
" base16-woodland
" blue
" darkblue
" default
" delek
" desert
" elflord
" evening
" flatcolor
" flattened_dark
" flattened_light
" focuspoint
" gruvbox
" hybrid
" hybrid-material
" hybrid_material
" hybrid_reverse
" industry
" janah
" jellybeans
" koehler
" lightning
" lucius
" molokai
" molokayo
" morning
" murphy
" OceanicNext
" OceanicNextLight
" onedark
" pablo
" PaperColor
" parsec
" peachpuff
" pyte
" rdark-terminal2
" ron
" scheakur
" seoul256
" seoul256-light
" shine
" slate
" solarized
" torte
" twilight256
" wombat256mod
" yowish
" zellner
" <
function! SpaceVim#layers#colorscheme#plugins() abort
return [
\ ['kristijanhusak/vim-hybrid-material', { 'merged' : 0 }],
\ ['altercation/vim-colors-solarized', { 'merged' : 0 }],
\ ['nanotech/jellybeans.vim', { 'merged' : 0 }],
\ ['mhartington/oceanic-next', { 'merged' : 0 }],
\ ['mhinz/vim-janah', { 'merged' : 0 }],
\ ['Gabirel/molokai', { 'merged' : 0 }],
\ ['kabbamine/yowish.vim', { 'merged' : 0 }],
\ ['vim-scripts/wombat256.vim', { 'merged' : 0 }],
\ ['vim-scripts/twilight256.vim', { 'merged' : 0 }],
\ ['junegunn/seoul256.vim', { 'merged' : 0 }],
\ ['vim-scripts/rdark-terminal2.vim', { 'merged' : 0 }],
\ ['vim-scripts/pyte', { 'merged' : 0 }],
\ ['joshdick/onedark.vim', { 'merged' : 0 }],
\ ['fmoralesc/molokayo', { 'merged' : 0 }],
\ ['jonathanfilip/vim-lucius', { 'merged' : 0 }],
\ ['wimstefan/Lightning', { 'merged' : 0 }],
\ ['w0ng/vim-hybrid', { 'merged' : 0 }],
\ ['scheakur/vim-scheakur', { 'merged' : 0 }],
\ ['keith/parsec.vim', { 'merged' : 0 }],
\ ['NLKNguyen/papercolor-theme', { 'merged' : 0 }],
\ ['romainl/flattened', { 'merged' : 0 }],
\ ['SpaceVim/FlatColor', { 'merged' : 0 }],
\ ['chase/focuspoint-vim', { 'merged' : 0 }],
\ ['chriskempson/base16-vim', { 'merged' : 0 }],
\ ['gregsexton/Atom', { 'merged' : 0 }],
\ ['gilgigilgil/anderson.vim', { 'merged' : 0 }],
\ ['romainl/Apprentice', { 'merged' : 0 }],
\ ['icymind/NeoSolarized', { 'merged' : 0 }],
\ ['jacoborus/tender', { 'merged' : 0 }],
\ ['wsdjeg/vim-one', { 'merged' : 0 }],
\ ['nanotech/jellybeans.vim', { 'merged' : 0 }],
\ ['rakr/vim-one', { 'merged' : 0 }],
\ ['arcticicestudio/nord-vim', { 'merged' : 0 }],
\ ['KeitaNakamura/neodark.vim', { 'merged' : 0 }]
\ ['icymind/NeoSolarized', { 'merged' : 0 }],
\ ['w0ng/vim-hybrid', { 'merged' : 0 }],
\ ]
"
" TODO:
" \ ['mhartington/oceanic-next', { 'merged' : 0 }],
" \ ['junegunn/seoul256.vim', { 'merged' : 0 }],
" \ ['kabbamine/yowish.vim', { 'merged' : 0 }],
" \ ['KeitaNakamura/neodark.vim', { 'merged' : 0 }],
" \ ['NLKNguyen/papercolor-theme', { 'merged' : 0 }],
" \ ['SpaceVim/FlatColor', { 'merged' : 0 }],
endfunction
let s:cs = ['gruvbox', 'molokai', 'onedark', 'jellybeans', 'one', 'nord']
let s:Number = SpaceVim#api#import('data#number')
let s:cs = [
\ 'gruvbox',
\ 'molokai',
\ 'onedark',
\ 'jellybeans',
\ 'one',
\ 'nord',
\ 'hybrid',
\ 'NeoSolarized',
\ ]
let s:NUMBER = SpaceVim#api#import('data#number')
function! SpaceVim#layers#colorscheme#config() abort
if s:random_colorscheme == 1
let id = s:NUMBER.random(0, len(s:cs))
let g:spacevim_colorscheme = s:cs[id]
endif
call SpaceVim#mapping#space#def('nnoremap', ['T', 'n'],
\ 'call call(' . string(s:_function('s:cycle_spacevim_theme'))
\ . ', [])', 'cycle-spacevim-theme', 1)
endfunction
let s:random_colorscheme = 0
function! SpaceVim#layers#colorscheme#set_variable(var) abort
let s:random_colorscheme = get(a:var, 'random-theme', 0)
endfunction
" function() wrapper
if v:version > 703 || v:version == 703 && has('patch1170')
@ -209,6 +90,6 @@ else
endfunction
endif
function! s:cycle_spacevim_theme() abort
let id = s:Number.random(0, len(s:cs))
let id = s:NUMBER.random(0, len(s:cs))
exe 'colorscheme ' . s:cs[id]
endfunction

View File

@ -0,0 +1,33 @@
"=============================================================================
" hybrid.vim --- hybrid colorschem palette
" Copyright (c) 2016-2017 Wang Shidong & Contributors
" Author: Wang Shidong < wsdjeg at 163.com >
" URL: https://spacevim.org
" License: GPLv3
"=============================================================================
" [
" \ [ a_guifg, a_guibg, a_ctermfg, a_ctermbg],
" \ [ b_guifg, b_guibg, b_ctermfg, b_ctermbg],
" \ [ c_guifg, c_guibg, c_ctermfg, c_ctermbg],
" \ [ z_guibg, z_ctermbg],
" \ [ i_guifg, i_guibg, i_ctermfg, i_ctermbg],
" \ [ v_guifg, v_guibg, v_ctermfg, v_ctermbg],
" \ [ r_guifg, r_guibg, r_ctermfg, r_ctermbg],
" \ [ ii_guifg, ii_guibg, ii_ctermfg, ii_ctermbg],
" \ [ in_guifg, in_guibg, in_ctermfg, in_ctermbg],
" \ ]
function! SpaceVim#mapping#guide#theme#hybrid#palette() abort
return [
\ ['#d7ffaf', '#5F875F', 193, 65],
\ ['#ffffff', '#373b41', 231, 22],
\ ['#ffffff', '#282a2e', 231, 237],
\ ['#4e4e4e', 239],
\ ['#c5c8c6', '#81a2be', 193, 110],
\ ['#c5c8c6', '#cc6666', 231, 167],
\ ['#d7d7ff', '#5f5f87', 88, 0],
\ ['#ffffff', '#689d6a', 231, 72],
\ ['#ffffff', '#8f3f71', 231, 132],
\ ]
endfunction

View File

@ -0,0 +1,61 @@
"=============================================================================
" jellybeans.vim --- jellybeans colorscheme palette
" Copyright (c) 2016-2017 Wang Shidong & Contributors
" Author: Wang Shidong < wsdjeg at 163.com >
" URL: https://spacevim.org
" License: GPLv3
"=============================================================================
" Color palette
let s:gui00 = "#151515"
let s:gui01 = "#262626"
let s:gui02 = "#4f5b66"
let s:gui03 = "#65737e"
let s:gui04 = "#a7adba"
let s:gui05 = "#c0c5ce"
let s:gui06 = "#cdd3de"
let s:gui07 = "#d8dee9"
let s:gui08 = "#870000"
let s:gui09 = "#f99157"
let s:gui0A = "#fac863"
let s:gui0B = "#437019"
let s:gui0C = "#5fb3b3"
let s:gui0D = "#0d61ac"
let s:gui0E = "#c594c5"
let s:gui0F = "#ab7967"
let s:cterm00 = "233"
let s:cterm01 = "235"
let s:cterm02 = "59"
let s:cterm03 = "66"
let s:cterm04 = "145"
let s:cterm05 = "152"
let s:cterm06 = "188"
let s:cterm07 = "189"
let s:cterm08 = "88"
let s:cterm09 = "209"
let s:cterm0A = "221"
let s:cterm0B = "22"
let s:cterm0C = "73"
let s:cterm0D = "25"
let s:cterm0E = "176"
let s:cterm0F = "137"
let s:guiWhite = "#ffffff"
let s:guiGray = "#666666"
let s:ctermWhite = "231"
let s:ctermGray = "243"
function! SpaceVim#mapping#guide#theme#jellybeans#palette() abort
return [
\ ['#d8dee9', '#0d61ac', 189, 25],
\ ['#ffffff', '#262626', 231, 235],
\ ['#ffffff', '#3a3a3a', 231, 237],
\ ['#4e4e4e', 239],
\ ['#ffffff', '#437019', 231, 22],
\ ['#ffffff', '#870000', 231, 88],
\ ['#870000', '#000000', 88, 0],
\ ['#ffffff', '#689d6a', 231, 72],
\ ['#ffffff', '#8f3f71', 231, 132],
\ ]
endfunction

View File

@ -16,5 +16,7 @@ function! SpaceVim#mapping#guide#theme#nord#palette() abort
\ ['#2E3440', '#8FBCBB', 0, 14],
\ ['#2E3440', '#D08770', 0, 11],
\ ['#2E3440', '#BF616A', 0, 1],
\ ['#2E3440', '#689d6a', 0, 72],
\ ['#2E3440', '#8f3f71', 0, 132],
\ ]
endfunction

View File

@ -619,128 +619,6 @@ all of below colorschemes support spell check very well. For example, a
colorscheme called atom doesn't support spell check very well.
SpaceVim is not gonna fix them since these should be in charge of each author.
You can see a list which has no support of spell check in here:
https://github.com/SpaceVim/SpaceVim/issues/209#issuecomment-280545818
>
anderson
apprentice
atom
base16-3024
base16-apathy
base16-ashes
base16-atelier-cave
base16-atelier-dune
base16-atelier-estuary
base16-atelier-forest
base16-atelier-heath
base16-atelier-lakeside
base16-atelier-plateau
base16-atelier-savanna
base16-atelier-seaside
base16-atelier-sulphurpool
base16-bespin
base16-brewer
base16-bright
base16-chalk
base16-codeschool
base16-cupcake
base16-darktooth
base16-default-dark
base16-default-light
base16-dracula
base16-eighties
base16-embers
base16-flat
base16-github
base16-google-dark
base16-google-light
base16-grayscale-dark
base16-grayscale-light
base16-green-screen
base16-harmonic16-dark
base16-harmonic16-light
base16-hopscotch
base16-ir-black
base16-isotope
base16-london-tube
base16-macintosh
base16-marrakesh
base16-materia
base16-mexico-light
base16-mocha
base16-monokai
base16-ocean
base16-oceanicnext
base16-onedark
base16-paraiso
base16-phd
base16-pico
base16-pop
base16-railscasts
base16-seti-ui
base16-shapeshifter
base16-solar-flare
base16-solarized-dark
base16-solarized-light
base16-spacemacs
base16-summerfruit-dark
base16-summerfruit-light
base16-tomorrow
base16-tomorrow-night
base16-twilight
base16-unikitty-dark
base16-unikitty-light
base16-woodland
blue
darkblue
default
delek
desert
elflord
evening
flatcolor
flattened_dark
flattened_light
focuspoint
gruvbox
hybrid
hybrid-material
hybrid_material
hybrid_reverse
industry
janah
jellybeans
koehler
lightning
lucius
molokai
molokayo
morning
murphy
OceanicNext
OceanicNextLight
onedark
pablo
PaperColor
parsec
peachpuff
pyte
rdark-terminal2
ron
scheakur
seoul256
seoul256-light
shine
slate
solarized
torte
twilight256
wombat256mod
yowish
zellner
<
==============================================================================
CORE#TABLINE *SpaceVim-layer-core-tabline*

View File

@ -5,24 +5,49 @@ description: "colorscheme provides a list of colorscheme for SpaceVim, default c
# [SpaceVim Layers:](https://spacevim.org/layers) colorscheme
## Description
This layer provides many Vim colorschemes for SpaceVim, the default colorscheme is gruvbox.
## Install
This layer is disabled by default in SpaceVim.
To use this configuration layer, add `call SpaceVim#layers#load('colorscheme')` to your custom configuration file.
## Configuration
To change the colorscheme:
```vim
let g:spacevim_colorscheme = 'onedark'
```
**List colorschemes**
| Name | dark | light | term | gui | statusline |
| ---------- | ---- | ----- | ---- | --- | ---------- |
| gruvbox | yes | yes | yes | yes | yes |
| one | yes | yes | yes | yes | yes |
| molokai | yes | no | yes | yes | yes |
| jellybeans | yes | no | yes | yes | yes |
| nord | yes | no | yes | yes | yes |
| onedark | yes | no | yes | yes | yes |
Some colorschemes offer dark and light styles. Most of them are set by changing
Vim background color. SpaceVim support to change the background color with
`g:spacevim_colorscheme_bg`:
```vim
let g:spacevim_colorscheme_bg = 'dark'
```
Among SpaceVim colorschemes supported, there are some that looks like Atom
editor color styles: dark and light.
For Atom dark color scheme use _onedark_ or _neodark_ in `g:spacevim_colorscheme`.
For Atom light color scheme use _one_. vim-one plugin offer _one_ colorscheme and it
supports dark and light styles, but dark style doesn't work well with SpaceVim.
Check [#507](https://github.com/SpaceVim/SpaceVim/issues/507) for further discussion.
colorscheme layer support random colorscheme on startup. just load this layer with layer option `random-theme`
```vim
call SpaceVim#layers#load('colorscheme', {
\ 'random-theme' : 1,
\ })
```
## Contributing