]> gitweb.factorcode.org Git - factor.git/blob - misc/vim/plugin/factor.vim
misc/vim: Further improve `:FactorVocab` completion
[factor.git] / misc / vim / plugin / factor.vim
1 " Location:     plugin/factor.vim
2
3 nmap <silent> <Leader>fi :FactorVocabImpl<CR>
4 nmap <silent> <Leader>fd :FactorVocabDocs<CR>
5 nmap <silent> <Leader>ft :FactorVocabTests<CR>
6 nmap <Leader>fv :FactorVocab<SPACE>
7 nmap <Leader>fn :NewFactorVocab<SPACE>
8
9 if !exists('g:FactorResourcePath')
10     let g:FactorResourcePath = '~/factor/'
11 endif
12
13 if !exists('g:FactorDefaultVocabRoots')
14     let g:FactorDefaultVocabRoots = ['resource:core', 'resource:basis', 'resource:extra', 'resource:work']
15 endif
16 " let g:FactorAdditionalVocabRoots = ... " see autoload/factor.vim
17 unlet! g:FactorVocabRoots
18
19 if !exists('*FactorNewVocabRoot') | function! FactorNewVocabRoot() abort
20     return 'resource:work'
21 endfunction | endif
22
23 command! -bar -bang -range=1 -nargs=1 -complete=customlist,factor#complete_vocab_glob FactorVocab
24             \ execute factor#go_to_vocab_command(<count>,"edit<bang>",<q-args>)
25 command! -bar -bang -range=1 -nargs=1 -complete=customlist,factor#complete_vocab_glob NewFactorVocab
26             \ execute factor#make_vocab_command(<count>,"edit<bang>",<q-args>)
27 command! FactorVocabImpl -bar :call GoToFactorVocabImpl()
28 command! FactorVocabDocs -bar :call GoToFactorVocabDocs()
29 command! FactorVocabTests -bar :call GoToFactorVocabTests()
30
31 function! FactorFileBase()
32     let filename = expand('%:r')
33     let filename = substitute(filename, '-docs', '', '')
34     let filename = substitute(filename, '-tests', '', '')
35     return filename
36 endfunction
37
38 function! GoToFactorVocabImpl()
39     exe 'edit ' fnameescape(FactorFileBase() . '.factor')
40 endfunction
41
42 function! GoToFactorVocabDocs()
43     exe 'edit ' fnameescape(FactorFileBase() . '-docs.factor')
44 endfunction
45
46 function! GoToFactorVocabTests()
47     exe 'edit ' fnameescape(FactorFileBase() . '-tests.factor')
48 endfunction
49
50 " vim:sw=4:et: