1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-03-23 01:09:56 +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 endif
autocmd BufWritePost *.vim call s:generate_doc() autocmd BufWritePost *.vim call s:generate_doc()
autocmd ColorScheme * call SpaceVim#api#import('vim#highlight').hide_in_normal('EndOfBuffer') 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 VimEnter * call SpaceVim#autocmds#VimEnter()
autocmd BufEnter * let b:_spacevim_project_name = get(g:, '_spacevim_project_name', '') autocmd BufEnter * let b:_spacevim_project_name = get(g:, '_spacevim_project_name', '')
autocmd SessionLoadPost * let g:_spacevim_session_loaded = 1 autocmd SessionLoadPost * let g:_spacevim_session_loaded = 1
@ -118,13 +118,19 @@ function! s:generate_doc() abort
endif endif
endfunction endfunction
function! s:fix_gruvbox() abort function! s:fix_VertSplit() abort
if &background ==# 'dark' if &background ==# 'dark'
if g:colors_name ==# 'gruvbox'
hi VertSplit guibg=#282828 guifg=#181A1F 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 else
if g:colors_name ==# 'gruvbox'
hi VertSplit guibg=#fbf1c7 guifg=#e7e9e1 hi VertSplit guibg=#fbf1c7 guifg=#e7e9e1
"hi EndOfBuffer guibg=#fbf1c7 guifg=#fbf1c7 endif
endif endif
hi SpaceVimLeaderGuiderGroupName cterm=bold ctermfg=175 gui=bold guifg=#d3869b hi SpaceVimLeaderGuiderGroupName cterm=bold ctermfg=175 gui=bold guifg=#d3869b
endfunction endfunction

View File

@ -24,175 +24,56 @@
" a colorscheme called atom doesn't support spell check very well. " 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. " 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 function! SpaceVim#layers#colorscheme#plugins() abort
return [ 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 }], \ ['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 }], \ ['joshdick/onedark.vim', { 'merged' : 0 }],
\ ['fmoralesc/molokayo', { 'merged' : 0 }], \ ['nanotech/jellybeans.vim', { 'merged' : 0 }],
\ ['jonathanfilip/vim-lucius', { 'merged' : 0 }], \ ['rakr/vim-one', { '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 }],
\ ['arcticicestudio/nord-vim', { '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 endfunction
let s:cs = ['gruvbox', 'molokai', 'onedark', 'jellybeans', 'one', 'nord'] let s:cs = [
let s:Number = SpaceVim#api#import('data#number') \ 'gruvbox',
\ 'molokai',
\ 'onedark',
\ 'jellybeans',
\ 'one',
\ 'nord',
\ 'hybrid',
\ 'NeoSolarized',
\ ]
let s:NUMBER = SpaceVim#api#import('data#number')
function! SpaceVim#layers#colorscheme#config() abort 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 SpaceVim#mapping#space#def('nnoremap', ['T', 'n'],
\ 'call call(' . string(s:_function('s:cycle_spacevim_theme')) \ 'call call(' . string(s:_function('s:cycle_spacevim_theme'))
\ . ', [])', 'cycle-spacevim-theme', 1) \ . ', [])', 'cycle-spacevim-theme', 1)
endfunction 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 " function() wrapper
if v:version > 703 || v:version == 703 && has('patch1170') if v:version > 703 || v:version == 703 && has('patch1170')
@ -209,6 +90,6 @@ else
endfunction endfunction
endif endif
function! s:cycle_spacevim_theme() abort 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] exe 'colorscheme ' . s:cs[id]
endfunction 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', '#8FBCBB', 0, 14],
\ ['#2E3440', '#D08770', 0, 11], \ ['#2E3440', '#D08770', 0, 11],
\ ['#2E3440', '#BF616A', 0, 1], \ ['#2E3440', '#BF616A', 0, 1],
\ ['#2E3440', '#689d6a', 0, 72],
\ ['#2E3440', '#8f3f71', 0, 132],
\ ] \ ]
endfunction 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. 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. 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* 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 # [SpaceVim Layers:](https://spacevim.org/layers) colorscheme
## Description
This layer provides many Vim colorschemes for SpaceVim, the default colorscheme is gruvbox. 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: To change the colorscheme:
```vim ```vim
let g:spacevim_colorscheme = 'onedark' 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 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 Vim background color. SpaceVim support to change the background color with
`g:spacevim_colorscheme_bg`: `g:spacevim_colorscheme_bg`:
```vim ```vim
let g:spacevim_colorscheme_bg = 'dark' let g:spacevim_colorscheme_bg = 'dark'
``` ```
Among SpaceVim colorschemes supported, there are some that looks like Atom colorscheme layer support random colorscheme on startup. just load this layer with layer option `random-theme`
editor color styles: dark and light.
For Atom dark color scheme use _onedark_ or _neodark_ in `g:spacevim_colorscheme`. ```vim
For Atom light color scheme use _one_. vim-one plugin offer _one_ colorscheme and it call SpaceVim#layers#load('colorscheme', {
supports dark and light styles, but dark style doesn't work well with SpaceVim. \ 'random-theme' : 1,
Check [#507](https://github.com/SpaceVim/SpaceVim/issues/507) for further discussion. \ })
```
## Contributing