From 4c061de793c586c149febfe9c639164fbbd9c6b9 Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Sat, 16 Sep 2017 20:55:59 +0800 Subject: [PATCH 1/3] Add project manager --- autoload/SpaceVim/plugins/projectmanager.vim | 35 ++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 autoload/SpaceVim/plugins/projectmanager.vim diff --git a/autoload/SpaceVim/plugins/projectmanager.vim b/autoload/SpaceVim/plugins/projectmanager.vim new file mode 100644 index 000000000000..933da10a834c --- /dev/null +++ b/autoload/SpaceVim/plugins/projectmanager.vim @@ -0,0 +1,35 @@ +"============================================================================= +" projectmanager.vim --- project manager for SpaceVim +" Copyright (c) 2016-2017 Shidong Wang & Contributors +" Author: Shidong Wang < wsdjeg at 163.com > +" URL: https://spacevim.org +" License: MIT license +"============================================================================= + +" project item: +" { +" "path" : "path/to/root", +" "name" : "name of the project, by default it is name of root directory", +" "type" : "git maven or svn", +" } +" + + + +let s:project_paths = {} + +function! s:cache_project(prj) abort + if !has_key(s:project_paths, a:prj.path) + let s:project_paths[a:prj.path] = a:prj + endif +endfunction + + +function! SpaceVim#plugins#projectmanager#list() abort + + + +endfunction + + + From 4092951db88a3e08aee38be01ae94b77420cd020 Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Mon, 25 Sep 2017 20:55:46 +0800 Subject: [PATCH 2/3] Add SPC p k to kill all project buffers --- autoload/SpaceVim/layers/core.vim | 1 + autoload/SpaceVim/plugins/projectmanager.vim | 24 ++++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/autoload/SpaceVim/layers/core.vim b/autoload/SpaceVim/layers/core.vim index 4bad3e0b047d..bf9fa42bac3e 100644 --- a/autoload/SpaceVim/layers/core.vim +++ b/autoload/SpaceVim/layers/core.vim @@ -12,6 +12,7 @@ function! SpaceVim#layers#core#config() abort call SpaceVim#layers#load('core#statusline') call SpaceVim#layers#load('core#tabline') call SpaceVim#mapping#space#def('nnoremap', ['p', 't'], 'Rooter', 'find-project-root', 1) + call SpaceVim#mapping#space#def('nnoremap', ['p', 'k'], 'call SpaceVim#plugins#projectmanager#kill_project()', 'kill all project buffers', 1) call SpaceVim#mapping#space#def('nnoremap', ['p', 'f'], 'CtrlP', 'find files in current project', 1) call SpaceVim#mapping#space#def('nnoremap', ['p', '/'], 'Grepper', 'fuzzy search for text in current project', 1) endfunction diff --git a/autoload/SpaceVim/plugins/projectmanager.vim b/autoload/SpaceVim/plugins/projectmanager.vim index 933da10a834c..c64d6347d39f 100644 --- a/autoload/SpaceVim/plugins/projectmanager.vim +++ b/autoload/SpaceVim/plugins/projectmanager.vim @@ -15,7 +15,6 @@ " - let s:project_paths = {} function! s:cache_project(prj) abort @@ -27,7 +26,28 @@ endfunction function! SpaceVim#plugins#projectmanager#list() abort - +endfunction + +function! SpaceVim#plugins#projectmanager#current_() + return get(b:, '_spacevim_project_name', '') +endfunction + +let s:BUFFER = SpaceVim#api#import('vim#buffer') + +function! SpaceVim#plugins#projectmanager#kill_project() abort + let name = get(b:, '_spacevim_project_name', '') + if name != '' + call s:BUFFER.filter_do( + \ { + \ 'expr' : [ + \ 'buflisted(v:val)', + \ 'index(tabpagebuflist(), v:val) == -1', + \ 'getbufvar(v:val, "_spacevim_project_name") == ' . name, + \ ], + \ 'do' : 'bd %d' + \ } + \ ) + endif endfunction From aeccca71b6d4c901c7b0f75e7bf247280b1e3336 Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Tue, 26 Sep 2017 21:05:24 +0800 Subject: [PATCH 3/3] Fix lint --- autoload/SpaceVim/layers/core.vim | 2 +- test/api/web/html.vader | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autoload/SpaceVim/layers/core.vim b/autoload/SpaceVim/layers/core.vim index bf9fa42bac3e..bccf68b5b493 100644 --- a/autoload/SpaceVim/layers/core.vim +++ b/autoload/SpaceVim/layers/core.vim @@ -2,7 +2,7 @@ function! SpaceVim#layers#core#plugins() abort return [ \ ['Shougo/vimproc.vim', {'build' : ['make']}], \ ['benizi/vim-automkdir'], - \ ['airblade/vim-rooter', {'on_cmd' : 'Rooter'}], + \ ['airblade/vim-rooter', {'merged' : 0}], \ ] endfunction diff --git a/test/api/web/html.vader b/test/api/web/html.vader index 84dd74c1f6d0..cb8e3b144581 100644 --- a/test/api/web/html.vader +++ b/test/api/web/html.vader @@ -1,4 +1,4 @@ Execute (Test web#http api): let g:test_api_web_html = SpaceVim#api#import('web#html') let g:test_api_web_html_paser = g:test_api_web_html.parseURL('spacevim.org') - AssertEqual g:test_api_web_html_paser.child[1].find('title').child[0], 'Home - SpaceVim' + AssertEqual g:test_api_web_html_paser.child[1].find('title').child[0], 'Home | SpaceVim'