1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-23 07:10:06 +08:00

Better default

Fix up

Fix up

Fix up

Fix rtp

Update project layout

Fix colorscheme layer

Add colorsheme

close #1308

Close #1307

Set default fillchars

Move cache to cache

Disable lang layer

Remove layers

Fix crash

ref : https://github.com/neovim/neovim/issues/7876

Fix plugin manager

Filter same filename:linenumber in flygrep

Fix type
This commit is contained in:
wsdjeg 2018-02-22 21:15:46 +08:00
parent 14cf41a944
commit 3ac76a0ca8
21 changed files with 393 additions and 187 deletions

View File

@ -104,11 +104,15 @@ The easist way is to download [install.cmd](https://spacevim.org/install.cmd) an
### Project layout
```txt
├─ autoload/SpaceVim/api/ APIs
├─ autoload/SpaceVim/layers/ layers
├─ autoload/SpaceVim/plugins/ plugins
├─ .ci/ build automation
├─ .github/ issue/PR templates
├─ .SpaceVim.d/ project specific configuration
├─ autoload/SpaceVim.vim SpaceVim core file
├─ autoload/SpaceVim/api/ Public APIs
├─ autoload/SpaceVim/layers/ available layers
├─ autoload/SpaceVim/plugins/ buildin plugins
├─ autoload/SpaceVim/mapping/ mapping guide
├─ doc/SpaceVim.txt help
├─ doc/ help(cn/en)
├─ docs/ website(cn/en)
├─ wiki/ wiki(cn/en)
├─ bin/ executeable

View File

@ -24,11 +24,14 @@
" settings in `.SpaceVim.d/init.vim` in the root directory of your project.
" `.SpaceVim.d/` will also be added to runtimepath.
" Public SpaceVim Options {{{
scriptencoding utf-8
""
" Version of SpaceVim , this value can not be changed.
scriptencoding utf-8
let g:spacevim_version = '0.7.0-dev'
lockvar g:spacevim_version
""
" Change the default indentation of SpaceVim. Default is 2.
" >
@ -480,9 +483,12 @@ let g:spacevim_wildignore
\ = '*/tmp/*,*.so,*.swp,*.zip,*.class,tags,*.jpg,
\*.ttf,*.TTF,*.png,*/target/*,
\.git,.svn,.hg,.DS_Store,*.svg'
" privite options
" }}}
" Privite SpaceVim options
let g:_spacevim_mappings = {}
" TODO merge leader guide
let g:_spacevim_mappings_space_custom = []
let g:_spacevim_mappings_space_custom_group_name = []
@ -597,6 +603,8 @@ endfunction
function! SpaceVim#end() abort
call SpaceVim#server#connect()
if g:spacevim_enable_neocomplcache
let g:spacevim_autocomplete_method = 'neocomplcache'
endif
@ -649,8 +657,12 @@ function! SpaceVim#end() abort
endif
""
" generate tags for SpaceVim
let help = fnamemodify(g:Config_Main_Home, ':p:h:h') . '/doc'
exe 'helptags ' . help
let help = fnamemodify(g:_spacevim_root_dir, ':p:h:h') . '/doc'
try
exe 'helptags ' . help
catch
call SpaceVim#logger#warn('Failed to generate helptags for SpaceVim')
endtry
""
" set language
@ -664,6 +676,8 @@ function! SpaceVim#end() abort
if !g:spacevim_relativenumber
set norelativenumber
else
set relativenumber
endif
let &shiftwidth = g:spacevim_default_indent
@ -674,10 +688,59 @@ function! SpaceVim#end() abort
endif
let g:leaderGuide_max_size = 15
call SpaceVim#plugins#load()
call SpaceVim#plugins#projectmanager#RootchandgeCallback()
call zvim#util#source_rc('general.vim')
call SpaceVim#autocmds#init()
if has('nvim')
call zvim#util#source_rc('neovim.vim')
endif
call zvim#util#source_rc('commands.vim')
filetype plugin indent on
syntax on
endfunction
function! SpaceVim#default() abort
function! SpaceVim#begin() abort
call zvim#util#source_rc('functions.vim')
call zvim#util#source_rc('init.vim')
" Before loading SpaceVim, We need to parser argvs.
function! s:parser_argv() abort
if !argc()
return [1, getcwd()]
elseif argv(0) =~# '/$'
let f = expand(argv(0))
if isdirectory(f)
return [1, f]
else
return [1, getcwd()]
endif
elseif argv(0) ==# '.'
return [1, getcwd()]
elseif isdirectory(expand(argv(0)))
return [1, expand(argv(0)) ]
else
return [0]
endif
endfunction
let s:status = s:parser_argv()
" If do not start Vim with filename, Define autocmd for opening welcome page
if s:status[0]
let g:_spacevim_enter_dir = s:status[1]
augroup SPwelcome
au!
autocmd VimEnter * call SpaceVim#welcome()
augroup END
endif
call SpaceVim#default#SetOptions()
call SpaceVim#default#SetPlugins()
call SpaceVim#default#SetMappings()

View File

@ -8,7 +8,7 @@
let s:self = {}
let s:completer = fnamemodify(g:Config_Main_Home, ':p:h:h') . '/autoload/SpaceVim/bin/get_complete'
let s:completer = fnamemodify(g:_spacevim_root_dir, ':p:h:h') . '/autoload/SpaceVim/bin/get_complete'
let s:COP = SpaceVim#api#import('vim#compatible')

View File

@ -12,6 +12,7 @@ function! SpaceVim#api#data#list#get() abort
\ 'unshift' : '',
\ 'uniq' : '',
\ 'uniq_by' : '',
\ 'uniq_by_func' : '',
\ 'clear' : '',
\ 'char_range' : '',
\ 'has' : '',
@ -71,6 +72,22 @@ function! s:uniq(list) abort
return s:uniq_by(a:list, 'v:val')
endfunction
function! s:uniq_by_func(list, func) abort
let list = map(copy(a:list), '[v:val, call(a:func, [v:val])]')
let i = 0
let seen = {}
while i < len(list)
let key = string(list[i][1])
if has_key(seen, key)
call remove(list, i)
else
let seen[key] = 1
let i += 1
endif
endwhile
return map(list, 'v:val[0]')
endfunction
function! s:uniq_by(list, f) abort
let list = map(copy(a:list), printf('[v:val, %s]', a:f))
let i = 0

View File

@ -40,14 +40,14 @@ endfunction
function! s:awesome_mode() abort
let sep = SpaceVim#api#import('file').separator
let f = fnamemodify(g:Config_Main_Home, ':h') . join(['', 'mode', 'dark_powered.vim'], sep)
let f = fnamemodify(g:_spacevim_root_dir, ':h') . join(['', 'mode', 'dark_powered.vim'], sep)
let config = readfile(f, '')
call s:write_to_config(config)
endfunction
function! s:basic_mode() abort
let sep = SpaceVim#api#import('file').separator
let f = fnamemodify(g:Config_Main_Home, ':h') . join(['', 'mode', 'basic.vim'], sep)
let f = fnamemodify(g:_spacevim_root_dir, ':h') . join(['', 'mode', 'basic.vim'], sep)
let config = readfile(f, '')
call s:write_to_config(config)
endfunction

View File

@ -7,6 +7,7 @@
"=============================================================================
scriptencoding utf-8
" Default options {{{
function! SpaceVim#default#SetOptions() abort
" basic vim settiing
if has('gui_running')
@ -31,14 +32,12 @@ function! SpaceVim#default#SetOptions() abort
" begining start delete the char you just typed in if you do not use set
" nocompatible ,you need this
set backspace=indent,eol,start
set smarttab
set nrformats-=octal
set listchars=tab:→\ ,eol:↵,trail,extends:↷,precedes:↶
set fillchars=vert:│,fold
" Shou number and relativenumber
set relativenumber
set number
" set fillchar
hi VertSplit ctermbg=NONE guibg=NONE
set fillchars+=vert:│
set laststatus=2
" hide cmd
set noshowcmd
@ -60,14 +59,17 @@ function! SpaceVim#default#SetOptions() abort
set softtabstop=4
set shiftwidth=4
" autoread
" Enable line number
set number
" Automatically read a file changed outside of vim
set autoread
" backup
set backup
set undofile
set undolevels=1000
let g:data_dir = $HOME . '/.data/'
let g:data_dir = $HOME . '/.cache/SpaceVim/'
let g:backup_dir = g:data_dir . 'backup'
let g:swap_dir = g:data_dir . 'swap'
let g:undo_dir = g:data_dir . 'undofile'
@ -83,13 +85,13 @@ function! SpaceVim#default#SetOptions() abort
if finddir(g:undo_dir) ==# ''
silent call mkdir(g:undo_dir)
endif
unlet g:data_dir
unlet g:backup_dir
unlet g:swap_dir
unlet g:data_dir
unlet g:undo_dir
set undodir=$HOME/.data/undofile
set backupdir=$HOME/.data/backup
set directory=$HOME/.data/swap
set undodir=$HOME/.cache/SpaceVim/undofile
set backupdir=$HOME/.cache/SpaceVim/backup
set directory=$HOME/.cache/SpaceVim/swap
" no fold enable
set nofoldenable
@ -105,21 +107,24 @@ function! SpaceVim#default#SetOptions() abort
set complete=.,w,b,u,t
" limit completion menu height
set pumheight=15
set scrolloff=3
set scrolloff=1
set sidescrolloff=5
set display+=lastline
set incsearch
set hlsearch
set laststatus=2
set wildignorecase
set mouse=nv
set hidden
set ttimeout
set ttimeoutlen=50
set lazyredraw
if has('patch-7.4.314')
" don't give ins-completion-menu messages.
set shortmess+=c
endif
" Do not wrap lone lines
set nowrap
endfunction
"}}}
function! SpaceVim#default#SetPlugins() abort
@ -133,17 +138,6 @@ function! SpaceVim#default#SetPlugins() abort
call add(g:spacevim_plugin_groups, 'chat')
call add(g:spacevim_plugin_groups, 'git')
call add(g:spacevim_plugin_groups, 'VersionControl')
call add(g:spacevim_plugin_groups, 'javascript')
call add(g:spacevim_plugin_groups, 'ruby')
call add(g:spacevim_plugin_groups, 'python')
call add(g:spacevim_plugin_groups, 'scala')
call add(g:spacevim_plugin_groups, 'lang#go')
call add(g:spacevim_plugin_groups, 'lang#markdown')
call add(g:spacevim_plugin_groups, 'scm')
call add(g:spacevim_plugin_groups, 'editing')
call add(g:spacevim_plugin_groups, 'indents')
call add(g:spacevim_plugin_groups, 'navigation')
call add(g:spacevim_plugin_groups, 'misc')
call add(g:spacevim_plugin_groups, 'core')
call SpaceVim#layers#load('core#banner')

View File

@ -12,7 +12,7 @@
" @subsection code completion
" SpaceVim uses neocomplete as the default completion engine if vim has lua
" support. If there is no lua support, neocomplcache will be used for the
" completion engine. Spacevim uses deoplete as the default completion engine
" completion engine. SpaceVim uses deoplete as the default completion engine
" for neovim. Deoplete requires neovim to be compiled with python support. For
" more information on python support, please read neovim's |provider-python|.
"

View File

@ -149,39 +149,39 @@
function! SpaceVim#layers#colorscheme#plugins() abort
return [
\ ['morhetz/gruvbox', {'loadconf' : 1}],
\ ['kristijanhusak/vim-hybrid-material'],
\ ['altercation/vim-colors-solarized'],
\ ['nanotech/jellybeans.vim'],
\ ['mhartington/oceanic-next'],
\ ['mhinz/vim-janah'],
\ ['Gabirel/molokai'],
\ ['kabbamine/yowish.vim'],
\ ['vim-scripts/wombat256.vim'],
\ ['vim-scripts/twilight256.vim'],
\ ['junegunn/seoul256.vim'],
\ ['vim-scripts/rdark-terminal2.vim'],
\ ['vim-scripts/pyte'],
\ ['joshdick/onedark.vim'],
\ ['fmoralesc/molokayo'],
\ ['jonathanfilip/vim-lucius'],
\ ['wimstefan/Lightning'],
\ ['w0ng/vim-hybrid'],
\ ['scheakur/vim-scheakur'],
\ ['keith/parsec.vim'],
\ ['NLKNguyen/papercolor-theme'],
\ ['romainl/flattened'],
\ ['MaxSt/FlatColor'],
\ ['chase/focuspoint-vim'],
\ ['chriskempson/base16-vim'],
\ ['gregsexton/Atom'],
\ ['gilgigilgil/anderson.vim'],
\ ['romainl/Apprentice'],
\ ['icymind/NeoSolarized'],
\ ['jacoborus/tender'],
\ ['wsdjeg/vim-one'],
\ ['arcticicestudio/nord-vim'],
\ ['KeitaNakamura/neodark.vim'],
\ ['morhetz/gruvbox', {'loadconf' : 1, 'merged' : 0}],
\ ['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 }],
\ ['arcticicestudio/nord-vim', { 'merged' : 0 }],
\ ['KeitaNakamura/neodark.vim', { 'merged' : 0 }]
\ ]
endfunction

View File

@ -0,0 +1,22 @@
" the theme colors should be
" [
" \ [ 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],
" \ ]
function! SpaceVim#mapping#guide#theme#SpaceVim#palette() abort
return [
\ ['#282828' , '#FFA500' , 250, 97],
\ ['#d75fd7' , '#4e4e4e' , 170 , 239],
\ ['#c6c6c6' , '#3a3a3a' , 251 , 237],
\ ['#2c323c', 16],
\ ['#282828', '#00BFFF', 114, 152],
\ ['#2c323c', '#ff8787', 114, 210],
\ ['#2c323c', '#d75f5f', 114, 167],
\ ]
endfunction

View File

@ -12,6 +12,7 @@ let s:MPT = SpaceVim#api#import('prompt')
let s:JOB = SpaceVim#api#import('job')
let s:SYS = SpaceVim#api#import('system')
let s:BUFFER = SpaceVim#api#import('vim#buffer')
let s:LIST = SpaceVim#api#import('data#list')
"}}}
" Init local options: {{{
@ -189,12 +190,17 @@ endfunction
let s:MPT._oninputpro = function('s:close_grep_job')
" }}}
function! s:file_line(line) abort
return matchstr(a:line, '[^:]*:\d\+:')
endfunction
" FlyGrep job handles: {{{
" @vimlint(EVL103, 1, a:data)
" @vimlint(EVL103, 1, a:id)
" @vimlint(EVL103, 1, a:event)
function! s:grep_stdout(id, data, event) abort
let datas =filter(a:data, '!empty(v:val)')
let datas = s:LIST.uniq_by_func(datas, function('s:file_line'))
if getline(1) ==# ''
call setline(1, datas)
else

View File

@ -347,3 +347,5 @@ function! s:find_func_range() abort
return [line, line]
endfunction
" }}}
" vim:set et sw=2 cc=80 foldenable:

View File

@ -26,8 +26,8 @@ fu! zvim#util#defineMap(type,key,value,desc,...) abort
endf
fu! zvim#util#source_rc(file) abort
if filereadable(g:Config_Main_Home. '/' . a:file)
execute 'source ' . g:Config_Main_Home . '/' . a:file
if filereadable(g:_spacevim_root_dir. '/' . a:file)
execute 'source ' . g:_spacevim_root_dir . '/' . a:file
endif
endf

View File

@ -1,5 +1,5 @@
coverage:
range: 50..70
range: 30..60
round: down
precision: 2
comment:

137
colors/SpaceVim.vim Normal file
View File

@ -0,0 +1,137 @@
"=============================================================================
" SpaceVim.vim --- SpaceVim colorscheme
" Copyright (c) 2016-2017 Wang Shidong & Contributors
" Author: Wang Shidong < wsdjeg at 163.com >
" URL: https://spacevim.org
" License: GPLv3
"=============================================================================
if version > 580
hi clear
if exists("syntax_on")
syntax reset
endif
endif
if !(has('termguicolors') && &termguicolors) && !has('gui_running') && &t_Co != 256
" prevent change statuslines
finish
else
let g:colors_name='SpaceVim'
endif
let s:HIAPI = SpaceVim#api#import('vim#highlight')
let s:COLOR = SpaceVim#api#import('color')
let s:is_dark=(&background == 'dark')
function! s:hi(items) abort
for [item, fg, bg, cterm, gui] in a:items
call s:HIAPI.hi(
\ {
\ 'name' : item,
\ 'ctermbg' : bg,
\ 'ctermfg' : fg,
\ 'guifg' : s:COLOR.nr2str(fg),
\ 'guibg' : s:COLOR.nr2str(bg),
\ 'cterm' : cterm,
\ 'gui' : gui,
\ }
\ )
endfor
endfunction
" color palette
let s:palette = {
\ 'dark' : [
\ ['Boolean' , 178 , '' , 'None' , 'None'] ,
\ ['Character' , 75 , '' , 'None' , 'None'] ,
\ ['ColorColumn' , '' , 236 , 'None' , 'None'] ,
\ ['Comment' , 30 , '' , 'None' , 'italic'] ,
\ ['Conditional' , 68 , '' , 'bold' , 'bold'] ,
\ ['Constant' , 218 , '' , 'None' , 'None'] ,
\ ['Cursor' , 235 , 178 , 'bold' , 'bold'] ,
\ ['CursorColumn' , '' , 236 , 'None' , 'None'] ,
\ ['CursorLine' , '' , 236 , 'None' , 'None'] ,
\ ['CursorLineNr' , 134 , 236 , 'None' , 'None'] ,
\ ['Debug' , 225 , '' , 'None' , 'None'] ,
\ ['Define' , 177 , '' , 'None' , 'None'] ,
\ ['Delimiter' , 151 , '' , 'None' , 'None'] ,
\ ['DiffAdd' , '' , 24 , 'None' , 'None'] ,
\ ['DiffChange' , 181 , 239 , 'None' , 'None'] ,
\ ['DiffDelete' , 162 , 53 , 'None' , 'None'] ,
\ ['DiffText' , '' , 102 , 'None' , 'None'] ,
\ ['Directory' , 67 , '' , 'bold' , 'bold'] ,
\ ['Error' , 160 , 235 , 'bold' , 'bold'] ,
\ ['ErrorMsg' , 196 , 235 , 'bold' , 'bold'] ,
\ ['Exception' , 204 , '' , 'bold' , 'bold'] ,
\ ['Float' , 135 , '' , 'None' , 'None'] ,
\ ['FoldColumn' , 67 , 236 , 'None' , 'None'] ,
\ ['Folded' , 133 , 236 , 'bold' , 'bold'] ,
\ ['Function' , 169 , '' , 'bold' , 'bold'] ,
\ ['Identifier' , 167 , '' , 'None' , 'None'] ,
\ ['Ignore' , 244 , '' , 'None' , 'None'] ,
\ ['IncSearch' , 16 , 76 , 'bold' , 'bold'] ,
\ ['Keyword' , 68 , '' , 'bold' , 'bold'] ,
\ ['Label' , 104 , '' , 'None' , 'None'] ,
\ ['LineNr' , 238 , 235 , 'None' , 'None'] ,
\ ['Macro' , 140 , '' , 'None' , 'None'] ,
\ ['MatchParen' , 40 , 234 , 'bold , underline' , 'bold , underline'] ,
\ ['ModeMsg' , 229 , '' , 'None' , 'None'] ,
\ ['NonText' , 241 , '' , 'None' , 'None'] ,
\ ['Normal' , 249 , 235 , 'None' , 'None'] ,
\ ['Number' , 176 , '' , 'None' , 'None'] ,
\ ['Operator' , 111 , '' , 'None' , 'None'] ,
\ ['Pmenu' , 141 , 236 , 'None' , 'None'] ,
\ ['PmenuSbar' , 28 , 233 , 'None' , 'None'] ,
\ ['PmenuSel' , 251 , 97 , 'None' , 'None'] ,
\ ['PmenuThumb' , 160 , 97 , 'None' , 'None'] ,
\ ['PreCondit' , 139 , '' , 'None' , 'None'] ,
\ ['PreProc' , 176 , '' , 'None' , 'None'] ,
\ ['Question' , 81 , '' , 'None' , 'None'] ,
\ ['Repeat' , 68 , '' , 'bold' , 'bold'] ,
\ ['Search' , 16 , 76 , 'bold' , 'bold'] ,
\ ['SignColumn' , 118 , 235 , 'None' , 'None'] ,
\ ['Special' , 169 , '' , 'None' , 'None'] ,
\ ['SpecialChar' , 171 , '' , 'bold' , 'bold'] ,
\ ['SpecialComment' , 24 , '' , 'None' , 'None'] ,
\ ['SpecialKey' , 59 , '' , 'None' , 'None'] ,
\ ['SpellBad' , 168 , '' , 'underline' , 'undercurl'] ,
\ ['SpellCap' , 110 , '' , 'underline' , 'undercurl'] ,
\ ['SpellLocal' , 253 , '' , 'underline' , 'undercurl'] ,
\ ['SpellRare' , 218 , '' , 'underline' , 'undercurl'] ,
\ ['Statement' , 68 , '' , 'None' , 'None'] ,
\ ['StatusLine' , 140 , 238 , 'None' , 'None'] ,
\ ['StatusLineNC' , 242 , 237 , 'None' , 'None'] ,
\ ['StatusLineTerm' , 140 , 238 , 'bold' , 'bold'] ,
\ ['StatusLineTermNC' , 244 , 237 , 'bold' , 'bold'] ,
\ ['StorageClass' , 178 , '' , 'bold' , 'bold'] ,
\ ['String' , 36 , '' , 'None' , 'None'] ,
\ ['Structure' , 68 , '' , 'bold' , 'bold'] ,
\ ['TabLine' , 66 , 239 , 'None' , 'None'] ,
\ ['TabLineFill' , 145 , 238 , 'None' , 'None'] ,
\ ['TabLineSel' , 178 , 240 , 'None' , 'None'] ,
\ ['Tag' , 161 , '' , 'None' , 'None'] ,
\ ['Title' , 176 , '' , 'None' , 'None'] ,
\ ['Todo' , 172 , 235 , 'bold' , 'bold'] ,
\ ['Type' , 68 , '' , 'None' , 'None'] ,
\ ['Typedef' , 68 , '' , 'None' , 'None'] ,
\ ['VertSplit' , 234 , '' , 'None' , 'None'] ,
\ ['Visual' , '' , 238 , 'None' , 'None'] ,
\ ['VisualNOS' , '' , 238 , 'None' , 'None'] ,
\ ['Warning' , 136 , '' , 'bold' , 'bold'] ,
\ ['WarningMsg' , 136 , '' , 'bold' , 'bold'] ,
\ ['WildMenu' , 214 , 239 , 'None' , 'None'] ,
\ ['VertSplit' , 235 , 238 , 'None' , 'None'] ,
\ ] ,
\ 'light' : [
\ ],
\ }
call s:hi(s:palette[s:is_dark ? 'dark' : 'light'])
if s:is_dark
set background=dark
endif

View File

@ -1,69 +1,71 @@
"=============================================================================
" init.vim --- Language && encoding in SpaceVim
" Copyright (c) 2016-2017 Wang Shidong & Contributors
" Author: Wang Shidong < wsdjeg at 163.com >
" URL: https://spacevim.org
" License: GPLv3
"=============================================================================
scriptencoding utf-8
" Enable nocompatible
if has('vim_starting')
if &compatible
set nocompatible
endif
if &compatible
set nocompatible
endif
endif
" Fsep && Psep
if has('win16') || has('win32') || has('win64')
let s:Psep = ';'
let s:Fsep = '\'
let s:Psep = ';'
let s:Fsep = '\'
else
let s:Psep = ':'
let s:Fsep = '/'
let s:Psep = ':'
let s:Fsep = '/'
endif
"Use English for anything in vim
try
if WINDOWS()
silent exec 'lan mes en_US.UTF-8'
elseif OSX()
silent exec 'language en_US'
if WINDOWS()
silent exec 'lan mes en_US.UTF-8'
elseif OSX()
silent exec 'language en_US'
else
let s:uname = system('uname -s')
if s:uname ==# "Darwin\n"
" in mac-terminal
silent exec 'language en_US'
elseif s:uname ==# "SunOS\n"
" in Sun-OS terminal
silent exec 'lan en_US.UTF-8'
else
let s:uname = system('uname -s')
if s:uname ==# "Darwin\n"
" in mac-terminal
silent exec 'language en_US'
elseif s:uname ==# "SunOS\n"
" in Sun-OS terminal
silent exec 'lan en_US.UTF-8'
else
" in linux-terminal
silent exec 'lan en_US.utf8'
endif
" in linux-terminal
silent exec 'lan en_US.utf8'
endif
endif
catch /^Vim\%((\a\+)\)\=:E197/
call SpaceVim#logger#error('Can not set language to en_US.utf8')
call SpaceVim#logger#error('Can not set language to en_US.utf8')
endtry
" try to set encoding to utf-8
if WINDOWS()
" Be nice and check for multi_byte even if the config requires
" multi_byte support most of the time
if has('multi_byte')
" Windows cmd.exe still uses cp850. If Windows ever moved to
" Powershell as the primary terminal, this would be utf-8
set termencoding=cp850
" Let Vim use utf-8 internally, because many scripts require this
set encoding=utf-8
setglobal fileencoding=utf-8
" Windows has traditionally used cp1252, so it's probably wise to
" fallback into cp1252 instead of eg. iso-8859-15.
" Newer Windows files might contain utf-8 or utf-16 LE so we might
" want to try them first.
set fileencodings=ucs-bom,utf-8,gbk,utf-16le,cp1252,iso-8859-15
endif
" Be nice and check for multi_byte even if the config requires
" multi_byte support most of the time
if has('multi_byte')
" Windows cmd.exe still uses cp850. If Windows ever moved to
" Powershell as the primary terminal, this would be utf-8
set termencoding=cp850
" Let Vim use utf-8 internally, because many scripts require this
set encoding=utf-8
setglobal fileencoding=utf-8
" Windows has traditionally used cp1252, so it's probably wise to
" fallback into cp1252 instead of eg. iso-8859-15.
" Newer Windows files might contain utf-8 or utf-16 LE so we might
" want to try them first.
set fileencodings=ucs-bom,utf-8,gbk,utf-16le,cp1252,iso-8859-15
endif
else
" set default encoding to utf-8
set encoding=utf-8
set termencoding=utf-8
" set default encoding to utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
endif
" Enable 256 colors
if $COLORTERM ==# 'gnome-terminal'
set t_Co=256
endif

View File

@ -6,71 +6,20 @@
" License: GPLv3
"=============================================================================
let g:Config_Main_Home = fnamemodify(expand('<sfile>'),
" Detect root directory of SpaceVim
let g:_spacevim_root_dir = fnamemodify(expand('<sfile>'),
\ ':p:h:gs?\\?'.((has('win16') || has('win32')
\ || has('win64'))?'\':'/') . '?')
" [dir?, path]
function! s:parser_argv() abort
if !argc()
return [1, getcwd()]
elseif argv(0) =~# '/$'
let f = expand(argv(0))
if isdirectory(f)
return [1, f]
else
return [1, getcwd()]
endif
elseif argv(0) ==# '.'
return [1, getcwd()]
elseif isdirectory(expand(argv(0)))
return [1, expand(argv(0)) ]
else
return [0]
endif
endfunction
let s:status = s:parser_argv()
if s:status[0]
let g:_spacevim_enter_dir = s:status[1]
augroup SPwelcome
au!
autocmd VimEnter * call SpaceVim#welcome()
augroup END
endif
lockvar g:_spacevim_root_dir
try
call zvim#util#source_rc('functions.vim')
call SpaceVim#begin()
catch
execute 'set rtp +=' . fnamemodify(g:Config_Main_Home, ':p:h:h')
call zvim#util#source_rc('functions.vim')
" Update the rtp only when SpaceVim is not contained in runtimepath.
execute 'set rtp +=' . fnamemodify(g:_spacevim_root_dir, ':p:h:h')
call SpaceVim#begin()
endtry
call zvim#util#source_rc('init.vim')
call SpaceVim#default()
call SpaceVim#loadCustomConfig()
call SpaceVim#server#connect()
call SpaceVim#end()
call SpaceVim#plugins#projectmanager#RootchandgeCallback()
call zvim#util#source_rc('general.vim')
call SpaceVim#autocmds#init()
if has('nvim')
call zvim#util#source_rc('neovim.vim')
endif
call zvim#util#source_rc('commands.vim')
filetype plugin indent on
syntax on
" vim:set et sw=2 cc=80:

View File

@ -15,7 +15,7 @@ elseif type(g:spacevim_force_global_config) == type([])
endif
if g:spacevim_force_global_config == 0
let g:neosnippet#snippets_directory = [getcwd() . '/.Spacevim.d/snippets'] +
let g:neosnippet#snippets_directory = [getcwd() . '/.SpaceVim.d/snippets'] +
\ g:neosnippet#snippets_directory
endif
let g:neosnippet#enable_snipmate_compatibility =

View File

@ -558,7 +558,7 @@ AUTOCOMPLETE *SpaceVim-autocomplete*
CODE COMPLETION
SpaceVim uses neocomplete as the default completion engine if vim has lua
support. If there is no lua support, neocomplcache will be used for the
completion engine. Spacevim uses deoplete as the default completion engine for
completion engine. SpaceVim uses deoplete as the default completion engine for
neovim. Deoplete requires neovim to be compiled with python support. For more
information on python support, please read neovim's |provider-python|.

View File

@ -77,6 +77,9 @@ also supports local config for each project. Place local config settings in
`.SpaceVim.d/init.vim` in the root directory of your project. `.SpaceVim.d/`
will also be added to runtimepath.
*g:spacevim_version*
Version of SpaceVim , this value can not be changed.
*g:spacevim_default_indent*
Change the default indentation of SpaceVim. Default is 2.
>
@ -585,7 +588,7 @@ AUTOCOMPLETE *SpaceVim-autocomplete*
CODE COMPLETION
SpaceVim uses neocomplete as the default completion engine if vim has lua
support. If there is no lua support, neocomplcache will be used for the
completion engine. Spacevim uses deoplete as the default completion engine for
completion engine. SpaceVim uses deoplete as the default completion engine for
neovim. Deoplete requires neovim to be compiled with python support. For more
information on python support, please read neovim's |provider-python|.

View File

@ -11,6 +11,7 @@ description: "General contributing guidelines and changelog of SpaceVim, includi
- [Reporting issues](#reporting-issues)
- [Contributing code](#contributing-code)
- [License](#license)
- [Bootstrap](#bootstrap)
- [Conventions](#conventions)
- [Pull Request](#pull-request)
- [Rebase your pr Branch on top of upstream master:](#rebase-your-pr-branch-on-top-of-upstream-master)
@ -71,6 +72,12 @@ The license is GPLv3 for all the parts of SpaceVim. this includes:
For files not belonging to SpaceVim like local packages and libraries, refer to the header file. Those files should not have an empty header, we may not accept code without a proper header file.
### Bootstrap
Before contributing to SpaceVim, you should know how does SpaceVim bootstrap, here is the logic of the bootstrap when SpaceVim startup.
<!-- TODO -->
### Conventions
SpaceVim is based on conventions, mainly for naming functions, keybindings definition and writing documentation. Please read the [conventions](https://spacevim.org/conventions/) before your first contribution to get to know them.

View File

@ -3,4 +3,4 @@ Execute ( SpaceVim api: SpaceVim main code ):
SPInstall
exe "func! Close() \n qa! \n endf"
call timer_start(2000, 'Close')
AssertEqual fnamemodify(g:Config_Main_Home, ':.'), 'config'
AssertEqual fnamemodify(g:_spacevim_root_dir, ':.'), 'config'