Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Autoload an opt plugin on Filetype. #28

Open
heliomeiralins opened this issue Jul 6, 2017 · 3 comments
Open

Autoload an opt plugin on Filetype. #28

heliomeiralins opened this issue Jul 6, 2017 · 3 comments

Comments

@heliomeiralins
Copy link

heliomeiralins commented Jul 6, 2017

After reading the documentation it seems that it's the user responsibility to load opt plugins. ( with :packadd)
Could minpac provide an API to load plugins on certain filetypes? Or is there an easy native way( besides Autocomd's) to do it?

@k-takata
Copy link
Owner

k-takata commented Jul 6, 2017

Currently minpac doesn't provide an easy way to load opt plugins. (Because, personally, I don't use it.)
I think that the following code will work:

augroup PackFTLoad
  autocmd!
  autocmd FileType THEFILETYPE packadd PLUGINNAME
augroup END

@ony
Copy link

ony commented Oct 24, 2017

Other hack-around:

" minautopac.vim

" Naïve autoload of packs
" See https://github.com/k-takata/minpac/issues/28
" And https://github.com/junegunn/vim-plug/blob/9813d5e/plug.vim#L271-L276
function! minautopac#add(repo, ...)
    let l:opts = get(a:000, 0, {})
    if has_key(l:opts, 'for')
        let l:name = substitute(a:repo, '^.*/', '', '')
        let l:ft = l:opts.for  " TODO: support array
        execut printf('autocmd FileType %s packadd %s', l:ft, l:name)
    endif
endfunction

if exists('*minpac#init')
    call minpac#init()

    command! -nargs=+ -bar Plugin call minpac#add(<args>) | call minautopac#add(<args>)
else
    " do nothing
    command! -nargs=+ Plugin call minautopac#add(<args>)
endif

command! -bar PackUpdate packadd minpac | runtime minautopac.vim | call minpac#update()
command! -bar PackClean packadd minpac | runtime minautopac.vim | call minpac#clean()

runtime! OPT ftdetect/*.vim

augroup MinAutoPac
    autocmd!
    runtime! myplugins.vim
augroup END
" myplugins.vim
Plugin 'eagletmt/neco-ghc', {'type': 'opt', 'for': 'haskell'}

@ghost
Copy link

ghost commented Dec 25, 2017

function! minautopac#add(repo, ...) abort
    let l:opts = get(a:000, 0, {})
    if has_key(l:opts, 'for')
        let l:name = substitute(a:repo, '^.*/', '', '')
        let l:ft = type(l:opts.for) == type([]) ? join(l:opts.for, ',') : l:opts.for
        execut printf('autocmd FileType %s packadd %s', l:ft, l:name)
    endif
endfunction

k-takata added a commit that referenced this issue Apr 21, 2021
0fb846e avoid has_key check for on_stdout
236debf Merge pull request #43 from prabirshrestha/fix-retry
c4d6144 Set waittime
8fc5956 Increment l:retry
f6b87c1 Trim null
69a4a5c Merge pull request #42 from mattn/fix-null
35b369f Trim null
36e97f0 Merge pull request #41 from mattn/tcp
2addfc3 Skip neovim
625cd40 Add test for async#job#connect
fa1b82d Retry
a4f4005 Add async#job#connect
6102020 Add :AsyncEmbed
d15123a Add default value when reading 'close_stdin' from input options
bb3aceb Make `opts` argument of `async#job#send`, optional
732cf48 Pass `close_stdin` as a Dictionary rather than bool argument
ab499e8 Better / safer management of non-blocking channels
a0f4e4e Wait for transmit buffer to be empty, before calling `ch_close_in`
ada658f Add support for sending data and closing stdin at the same time
42371b5 fix not restoring cpoptions
f67ecb5 Support 'cwd' option in jobstart
627a8c4 Do NOT remove job in job_stop but on_exit
8998efb Add tests for Neovim
91c3f2b Do NOT raise E900 on invalid jobid
f301455 doc: Update Embedding section
8da445b default to noblock if supported by vim 8 to avoid deadlocks causing vim to hang (#31)
4bde72e Don't use workaround (#30)
ff9177c add async#job#pid() (#28)
0521409 Fix variable name in example (#19)
d721851 Merge pull request #25 from prabirshrestha/add-test
633414e Use partial argument
79d54f4 Merge pull request #27 from prabirshrestha/revert-22
c980166 Revert #22
d7c52bc Fix test
d5e8819 Install vim
2a883ee Fix test
519430b Add tests
7627c81 Merge pull request #24 from prabirshrestha/fix-heavy
ca41dab Buffer size must be more large
300493e Merge pull request #22 from mattn/fix-block
017c6a8 Fix .travis.yml
7b1dfec Fix .travis.yml
d10fdb9 Start timer to read lazy
89bec95 Add "sleep 1m" to read blocked channel

git-subtree-dir: autoload/minpac
git-subtree-split: 0fb846e1eb3c2bf04d52a57f41088afb3395212e
k-takata added a commit that referenced this issue Apr 21, 2021
0fb846e avoid has_key check for on_stdout
236debf Merge pull request #43 from prabirshrestha/fix-retry
c4d6144 Set waittime
8fc5956 Increment l:retry
f6b87c1 Trim null
69a4a5c Merge pull request #42 from mattn/fix-null
35b369f Trim null
36e97f0 Merge pull request #41 from mattn/tcp
2addfc3 Skip neovim
625cd40 Add test for async#job#connect
fa1b82d Retry
a4f4005 Add async#job#connect
6102020 Add :AsyncEmbed
d15123a Add default value when reading 'close_stdin' from input options
bb3aceb Make `opts` argument of `async#job#send`, optional
732cf48 Pass `close_stdin` as a Dictionary rather than bool argument
ab499e8 Better / safer management of non-blocking channels
a0f4e4e Wait for transmit buffer to be empty, before calling `ch_close_in`
ada658f Add support for sending data and closing stdin at the same time
42371b5 fix not restoring cpoptions
f67ecb5 Support 'cwd' option in jobstart
627a8c4 Do NOT remove job in job_stop but on_exit
8998efb Add tests for Neovim
91c3f2b Do NOT raise E900 on invalid jobid
f301455 doc: Update Embedding section
8da445b default to noblock if supported by vim 8 to avoid deadlocks causing vim to hang (#31)
4bde72e Don't use workaround (#30)
ff9177c add async#job#pid() (#28)
0521409 Fix variable name in example (#19)
d721851 Merge pull request #25 from prabirshrestha/add-test
633414e Use partial argument
79d54f4 Merge pull request #27 from prabirshrestha/revert-22
c980166 Revert #22
d7c52bc Fix test
d5e8819 Install vim
2a883ee Fix test
519430b Add tests
7627c81 Merge pull request #24 from prabirshrestha/fix-heavy
ca41dab Buffer size must be more large
300493e Merge pull request #22 from mattn/fix-block
017c6a8 Fix .travis.yml
7b1dfec Fix .travis.yml
d10fdb9 Start timer to read lazy
89bec95 Add "sleep 1m" to read blocked channel

git-subtree-dir: autoload/minpac
git-subtree-split: 0fb846e1eb3c2bf04d52a57f41088afb3395212e
k-takata added a commit that referenced this issue May 5, 2021
0fb846e avoid has_key check for on_stdout
236debf Merge pull request #43 from prabirshrestha/fix-retry
c4d6144 Set waittime
8fc5956 Increment l:retry
f6b87c1 Trim null
69a4a5c Merge pull request #42 from mattn/fix-null
35b369f Trim null
36e97f0 Merge pull request #41 from mattn/tcp
2addfc3 Skip neovim
625cd40 Add test for async#job#connect
fa1b82d Retry
a4f4005 Add async#job#connect
6102020 Add :AsyncEmbed
d15123a Add default value when reading 'close_stdin' from input options
bb3aceb Make `opts` argument of `async#job#send`, optional
732cf48 Pass `close_stdin` as a Dictionary rather than bool argument
ab499e8 Better / safer management of non-blocking channels
a0f4e4e Wait for transmit buffer to be empty, before calling `ch_close_in`
ada658f Add support for sending data and closing stdin at the same time
42371b5 fix not restoring cpoptions
f67ecb5 Support 'cwd' option in jobstart
627a8c4 Do NOT remove job in job_stop but on_exit
8998efb Add tests for Neovim
91c3f2b Do NOT raise E900 on invalid jobid
f301455 doc: Update Embedding section
8da445b default to noblock if supported by vim 8 to avoid deadlocks causing vim to hang (#31)
4bde72e Don't use workaround (#30)
ff9177c add async#job#pid() (#28)
0521409 Fix variable name in example (#19)
d721851 Merge pull request #25 from prabirshrestha/add-test
633414e Use partial argument
79d54f4 Merge pull request #27 from prabirshrestha/revert-22
c980166 Revert #22
d7c52bc Fix test
d5e8819 Install vim
2a883ee Fix test
519430b Add tests
7627c81 Merge pull request #24 from prabirshrestha/fix-heavy
ca41dab Buffer size must be more large
300493e Merge pull request #22 from mattn/fix-block
017c6a8 Fix .travis.yml
7b1dfec Fix .travis.yml
d10fdb9 Start timer to read lazy
89bec95 Add "sleep 1m" to read blocked channel

git-subtree-dir: autoload/minpac
git-subtree-split: 0fb846e1eb3c2bf04d52a57f41088afb3395212e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants