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

nvim source deoplete/util.vim slow #500

Closed
liuhaoyoc opened this Issue Jun 24, 2017 · 9 comments

Comments

Projects
None yet
3 participants
@liuhaoyoc

liuhaoyoc commented Jun 24, 2017

Problems summary

nvim source deoplete.nvim/autoload/deoplete/util.vim file slow, up to 200ms

Expected

it should be more fast

Environment Information

  • deoplete version(SHA1): d77939d

  • OS: MacOS Sierra 10.12.5

  • neovim version: v0.2.0

  • :CheckHealth result(neovim ver.0.1.5-452+):


health#deoplete#check
========================================================================
## deoplete.nvim
  - SUCCESS: has("nvim") was successful
  - SUCCESS: has("python3") was successful
  - INFO: If you're still having problems, try the following commands:
    $ export NVIM_PYTHON_LOG_FILE=/tmp/log
    $ export NVIM_PYTHON_LOG_LEVEL=DEBUG
    $ nvim
    $ cat /tmp/log_{PID}
    and then create an issue on github

health#nvim#check
========================================================================
## Configuration
  - SUCCESS: no issues found

## Performance
  - SUCCESS: Build type: RelWithDebInfo

## Remote Plugins
  - SUCCESS: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~

## tmux
  - SUCCESS: escape-time: 10ms
  - INFO: $TERM: screen-256color

health#provider#check
========================================================================
## Clipboard (optional)
  - SUCCESS: Clipboard tool found: pbcopy

## Python 2 provider (optional)
  - WARNING: No Python interpreter was found with the neovim module.  Using the first available for diagnostics.
  - WARNING: provider/pythonx: Could not load Python 2:
    python2 not found in search path or not executable.
    /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
    /usr/bin/python2.6 does not have the "neovim" module. :help |provider-python|
    /usr/bin/python does not have the "neovim" module. :help |provider-python|
  - ERROR: Python provider error
    - SUGGESTIONS:
      - provider/pythonx: Could not load Python 2:
          python2 not found in search path or not executable.
          /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          /usr/bin/python2.6 does not have the "neovim" module. :help |provider-python|
          /usr/bin/python does not have the "neovim" module. :help |provider-python|
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/local/bin/python3
  - INFO: Python3 version: 3.6.1
  - INFO: python3-neovim version: 0.1.13
  - SUCCESS: Latest python3-neovim is installed: 0.1.13

## Ruby provider (optional)
  - INFO: Ruby: ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
  - WARNING: Missing "neovim" gem.
    - SUGGESTIONS:
      - Run in shell: gem install neovim
      - Is the gem bin directory in $PATH? Check `gem environment`.
      - If you are using rvm/rbenv/chruby, try "rehashing".

Provide a minimal init.vim with less than 50 lines (Required!)

call plug#begin('~/.config/nvim/plugged')
Plug 'ctrlpvim/ctrlp.vim'
Plug 'Shougo/deoplete.nvim'
Plug 'zchee/deoplete-go'
Plug 'Shougo/denite.nvim'
Plug 'mileszs/ack.vim'
Plug 'easymotion/vim-easymotion'
Plug 'bling/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'scrooloose/nerdtree'
Plug 'scrooloose/nerdcommenter'
Plug 'plasticboy/vim-markdown'
Plug 'Raimondi/delimitMate'
Plug 'tpope/vim-repeat'
Plug 'majutsushi/tagbar'
Plug 'fatih/vim-go'
Plug 'altercation/vim-colors-solarized'
Plug 'tpope/vim-fugitive'
Plug 'triglav/vim-visual-increment'
Plug 'christoomey/vim-tmux-navigator'
call plug#end()

let g:solarized_visibility='low'
syntax on
set background=light
colorscheme solarized

let mapleader = "\<Space>"

"airline
let g:airline#extensions#branch#enabled = 1
let g:airline_powerline_fonts = 1

"easymotion
map <Leader> <Plug>(easymotion-prefix)
let g:EasyMotion_smartcase = 1

"ctrlp
let g:ctrlp_working_path_mode = 'rw'
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
let g:ctrlp_use_caching = 0
let g:ctrlp_cache_dir = $HOME.'/.local/.cache/ctrlp'

"vim-go
let g:go_fmt_command = "goimports"
let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_fields = 1
let g:go_highlight_types = 1

set completeopt=menu,preview,longest
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
let g:deoplete#enable_at_startup = 1
let g:deoplete#complete_method = "omnifunc"
let g:deoplete#sources#go#gocode_binary = $GOPATH.'/bin/gocode'
inoremap <expr><TAB> pumvisible()?"\<C-n>":"\<TAB>"
inoremap <expr><S-TAB> pumvisible()?"\<C-p>":"\<TAB>"

The reproduce ways from neovim starting (Required!)

nvim --startuptime vimstartuplog

My Startuplog

times in msec
 clock   self+sourced   self:  sourced script
 clock   elapsed:              other lines

000.014  000.014: --- NVIM STARTING ---
005.014  004.999: locale set
005.969  000.955: inits 1
005.988  000.019: window checked
006.408  000.420: parsing arguments
006.411  000.003: expanding arguments
006.510  000.100: inits 2
006.733  000.223: init highlight
007.152  000.060  000.060: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/ftoff.vim
009.167  001.936  001.936: sourcing /Users/liuhao/.config/nvim/autoload/plug.vim
033.257  000.176  000.176: sourcing /Users/liuhao/.config/nvim/plugged/vim-markdown/ftdetect/markdown.vim
033.642  000.261  000.261: sourcing /Users/liuhao/.config/nvim/plugged/vim-go/ftdetect/gofiletype.vim
034.088  020.512  020.075: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/filetype.vim
034.444  000.056  000.056: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/ftplugin.vim
034.777  000.035  000.035: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/indent.vim
035.950  000.374  000.374: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/syntax/syncolor.vim
036.149  000.791  000.417: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/syntax/synload.vim
036.182  001.213  000.422: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/syntax/syntax.vim
036.373  000.011  000.011: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/filetype.vim
036.527  000.009  000.009: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/ftplugin.vim
036.730  000.012  000.012: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/indent.vim
037.068  000.226  000.226: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/syntax/nosyntax.vim
037.672  000.260  000.260: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/syntax/syncolor.vim
037.786  000.527  000.267: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/syntax/synload.vim
037.850  001.053  000.300: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/syntax/syntax.vim
038.354  000.206  000.206: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/syntax/syncolor.vim
039.566  000.209  000.209: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/syntax/syncolor.vim
039.995  000.207  000.207: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/syntax/syncolor.vim
042.702  004.202  003.786: sourcing /Users/liuhao/.config/nvim/plugged/vim-colors-solarized/colors/solarized.vim
043.315  036.419  007.114: sourcing /Users/liuhao/.config/nvim/init.vim
043.322  000.169: sourcing vimrc file(s)
043.867  000.251  000.251: sourcing /Users/liuhao/.config/nvim/plugged/ctrlp.vim/autoload/ctrlp/mrufiles.vim
043.998  000.542  000.291: sourcing /Users/liuhao/.config/nvim/plugged/ctrlp.vim/plugin/ctrlp.vim
044.271  000.096  000.096: sourcing /Users/liuhao/.config/nvim/plugged/deoplete.nvim/autoload/deoplete.vim
044.509  000.175  000.175: sourcing /Users/liuhao/.config/nvim/plugged/deoplete.nvim/autoload/deoplete/init.vim
044.997  000.108  000.108: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/autoload/provider/pythonx.vim
081.651  000.242  000.242: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/autoload/remote/host.vim
081.774  037.041  036.690: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/autoload/provider/python3.vim
082.665  000.213  000.213: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/autoload/remote/define.vim
083.026  000.841  000.628: sourcing /Users/liuhao/.local/share/nvim/rplugin.vim
083.034  001.076  000.234: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/rplugin.vim
288.523  000.201  000.201: sourcing /Users/liuhao/.config/nvim/plugged/deoplete.nvim/autoload/deoplete/util.vim
288.765  000.049  000.049: sourcing /Users/liuhao/.config/nvim/plugged/deoplete.nvim/autoload/deoplete/mapping.vim
289.422  000.160  000.160: sourcing /Users/liuhao/.config/nvim/plugged/deoplete.nvim/autoload/deoplete/handler.vim
290.496  000.033  000.033: sourcing /Users/liuhao/.config/nvim/plugged/deoplete.nvim/autoload/deoplete/custom.vim
290.626  246.514  207.684: sourcing /Users/liuhao/.config/nvim/plugged/deoplete.nvim/plugin/deoplete.vim
290.806  000.053  000.053: sourcing /Users/liuhao/.config/nvim/plugged/deoplete-go/plugin/deoplete-go.vim
290.971  000.065  000.065: sourcing /Users/liuhao/.config/nvim/plugged/denite.nvim/plugin/denite.vim
291.250  000.184  000.184: sourcing /Users/liuhao/.config/nvim/plugged/ack.vim/plugin/ack.vim
296.930  005.566  005.566: sourcing /Users/liuhao/.config/nvim/plugged/vim-easymotion/plugin/EasyMotion.vim
297.332  000.154  000.154: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline.vim
297.592  000.120  000.120: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/init.vim
298.033  000.094  000.094: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/parts.vim
298.840  001.797  001.429: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/plugin/airline.vim
298.973  000.018  000.018: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline-themes/plugin/airline-themes.vim
299.659  000.134  000.134: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/autoload/nerdtree.vim
300.938  000.496  000.496: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/path.vim
301.148  000.125  000.125: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/menu_controller.vim
301.306  000.080  000.080: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/menu_item.vim
301.489  000.107  000.107: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/key_map.vim
301.776  000.211  000.211: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/bookmark.vim
302.092  000.236  000.236: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/tree_file_node.vim
302.565  000.394  000.394: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/tree_dir_node.vim
302.855  000.213  000.213: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/opener.vim
303.176  000.244  000.244: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/creator.vim
303.302  000.049  000.049: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/flag_set.vim
303.515  000.136  000.136: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/nerdtree.vim
303.927  000.338  000.338: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/ui.vim
304.019  000.017  000.017: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/event.vim
304.136  000.043  000.043: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/lib/nerdtree/notifier.vim
304.711  000.489  000.489: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/autoload/nerdtree/ui_glue.vim
319.276  000.093  000.093: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/nerdtree_plugin/exec_menuitem.vim
319.842  000.531  000.531: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/nerdtree_plugin/fs_menu.vim
320.085  021.011  017.076: sourcing /Users/liuhao/.config/nvim/plugged/nerdtree/plugin/NERD_tree.vim
326.074  005.884  005.884: sourcing /Users/liuhao/.config/nvim/plugged/nerdcommenter/plugin/NERD_commenter.vim
327.691  000.759  000.759: sourcing /Users/liuhao/.config/nvim/plugged/delimitMate/autoload/delimitMate.vim
330.169  003.950  003.191: sourcing /Users/liuhao/.config/nvim/plugged/delimitMate/plugin/delimitMate.vim
331.169  000.879  000.879: sourcing /Users/liuhao/.config/nvim/plugged/tagbar/plugin/tagbar.vim
331.616  000.342  000.342: sourcing /Users/liuhao/.config/nvim/plugged/vim-go/plugin/go.vim
335.438  003.706  003.706: sourcing /Users/liuhao/.config/nvim/plugged/vim-fugitive/plugin/fugitive.vim
335.671  000.124  000.124: sourcing /Users/liuhao/.config/nvim/plugged/vim-visual-increment/plugin/visual-increment.vim
335.979  000.203  000.203: sourcing /Users/liuhao/.config/nvim/plugged/vim-tmux-navigator/plugin/tmux_navigator.vim
336.377  000.014  000.014: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/gui_shim.vim
336.657  000.251  000.251: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/gzip.vim
336.727  000.019  000.019: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/health.vim
336.819  000.065  000.065: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/man.vim
337.451  000.602  000.602: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/matchit.vim
337.674  000.189  000.189: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/matchparen.vim
338.216  000.508  000.508: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/netrwPlugin.vim
338.274  000.010  000.010: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/rplugin.vim
338.326  000.014  000.014: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/rrhelper.vim
338.482  000.115  000.115: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/shada.vim
338.560  000.035  000.035: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/spellfile.vim
338.746  000.146  000.146: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/tarPlugin.vim
338.880  000.094  000.094: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/tohtml.vim
338.940  000.024  000.024: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/tutor.vim
339.162  000.186  000.186: sourcing /usr/local/Cellar/neovim/0.2.0/share/nvim/runtime/plugin/zipPlugin.vim
339.172  002.739: loading plugins
339.344  000.172: loading packages
339.411  000.068: loading after plugins
339.422  000.010: inits 3
340.904  001.482: reading ShaDa
343.518  002.614: clearing screen
344.153  000.328  000.328: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/extensions.vim
344.531  000.071  000.071: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/extensions/quickfix.vim
344.729  000.046  000.046: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/extensions/denite.vim
344.884  000.079  000.079: sourcing /Users/liuhao/.config/nvim/plugged/denite.nvim/autoload/denite/custom.vim
345.187  000.205  000.205: sourcing /Users/liuhao/.config/nvim/plugged/denite.nvim/autoload/denite/util.vim
345.491  000.038  000.038: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/extensions/netrw.vim
345.723  000.075  000.075: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/extensions/ctrlp.vim
345.954  000.056  000.056: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/extensions/tagbar.vim
346.427  000.305  000.305: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/extensions/branch.vim
346.806  000.146  000.146: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/extensions/whitespace.vim
347.079  000.050  000.050: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/extensions/wordcount.vim
349.065  000.078  000.078: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/section.vim
349.417  000.171  000.171: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/highlighter.vim
353.435  000.083  000.083: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/themes.vim
353.858  001.110  001.027: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline-themes/autoload/airline/themes/solarized.vim
366.316  000.113  000.113: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/util.vim
367.859  000.160  000.160: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/builder.vim
368.279  000.098  000.098: sourcing /Users/liuhao/.config/nvim/plugged/vim-airline/autoload/airline/extensions/default.vim
411.416  064.769: opening buffers
415.131  003.715: BufEnter autocommands
415.135  000.004: editing files in windows
416.985  001.850: VimEnter autocommands
416.988  000.003: before starting main loop
427.500  003.438  003.438: sourcing /Users/liuhao/.config/nvim/plugged/tagbar/autoload/tagbar.vim
444.825  024.399: first screen update
444.920  000.094: --- NVIM STARTED ---

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Jun 25, 2017

Owner

290.626 246.514 207.684: sourcing /Users/liuhao/.config/nvim/plugged/deoplete.nvim/plugin/deoplete.vim

It is not deoplete/util.vim.

And the 200ms loading is:

neovim/neovim#5856

Owner

Shougo commented Jun 25, 2017

290.626 246.514 207.684: sourcing /Users/liuhao/.config/nvim/plugged/deoplete.nvim/plugin/deoplete.vim

It is not deoplete/util.vim.

And the 200ms loading is:

neovim/neovim#5856

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Jun 25, 2017

Owner
Q: Neovim startup is slow when |g:deoplete#enable_at_startup| is enabled.

A: If it is enabled, Neovim will enable and load deoplete in startup.
It may be slow.  You should use lazy load feature in plugin manager or use
|:autocmd| to call |deoplete#enable()|.
Owner

Shougo commented Jun 25, 2017

Q: Neovim startup is slow when |g:deoplete#enable_at_startup| is enabled.

A: If it is enabled, Neovim will enable and load deoplete in startup.
It may be slow.  You should use lazy load feature in plugin manager or use
|:autocmd| to call |deoplete#enable()|.

@Shougo Shougo closed this Jun 25, 2017

Shougo added a commit that referenced this issue Jun 25, 2017

@gkapfham

This comment has been minimized.

Show comment
Hide comment
@gkapfham

gkapfham Jul 3, 2017

Hello @Shougo! Thanks for developing this plugin, I really like it. I know that you have already closed this issue. However, I am not able to follow the instructions that you posted 8 days ago and I thought it would be appropriate to ask for clarifications.

I would like to not have deoplete.nvim start when Neovim starts. Instead, I have placed the following lines in my init.vim file:

  let g:deoplete#enable_at_startup = 0
  autocmd InsertEnter * call deoplete#enable()

As you know, I took these lines from the documentation for your plugin. However, I find that when I enter insert mode in Neovim none of the autocompletions ever appear. In fact, if I type `:call deoplete#enable()" in command mode and use tab-completion to see what is available, this command is not available.

For what it is worth, I have also tried to lazily load the plugin with vim-plug and found that this would only achieve part of what I wanted. That is, deoplete.nvim would start working after the second time I entered insert mode. However, on the first time I entered insert mode I would not be able to see any completions.

Any ideas about how to achieve the lazy loading of the plugin? I have looked in the help files and read all of the tutorials online and I could not find a solution to this issue. I am sure that there is something that I am overlooking and I hope that you can point it out to me. For the record, I am using NVIM v0.2.1-dev
on the Ubuntu 16.04 operating system.

I can provide more details about these issues if you think that it would be helpful to you. Thank you for considering this issue further!

gkapfham commented Jul 3, 2017

Hello @Shougo! Thanks for developing this plugin, I really like it. I know that you have already closed this issue. However, I am not able to follow the instructions that you posted 8 days ago and I thought it would be appropriate to ask for clarifications.

I would like to not have deoplete.nvim start when Neovim starts. Instead, I have placed the following lines in my init.vim file:

  let g:deoplete#enable_at_startup = 0
  autocmd InsertEnter * call deoplete#enable()

As you know, I took these lines from the documentation for your plugin. However, I find that when I enter insert mode in Neovim none of the autocompletions ever appear. In fact, if I type `:call deoplete#enable()" in command mode and use tab-completion to see what is available, this command is not available.

For what it is worth, I have also tried to lazily load the plugin with vim-plug and found that this would only achieve part of what I wanted. That is, deoplete.nvim would start working after the second time I entered insert mode. However, on the first time I entered insert mode I would not be able to see any completions.

Any ideas about how to achieve the lazy loading of the plugin? I have looked in the help files and read all of the tutorials online and I could not find a solution to this issue. I am sure that there is something that I am overlooking and I hope that you can point it out to me. For the record, I am using NVIM v0.2.1-dev
on the Ubuntu 16.04 operating system.

I can provide more details about these issues if you think that it would be helpful to you. Thank you for considering this issue further!

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Jul 3, 2017

Owner

As you know, I took these lines from the documentation for your plugin. However, I find that when I enter insert mode in Neovim none of the autocompletions ever appear. In fact, if I type `:call deoplete#enable()" in command mode and use tab-completion to see what is available, this command is not available.

deoplete initialization is asynchronous. So it is not possible to popup the completion immediately.
Sorry.

Owner

Shougo commented Jul 3, 2017

As you know, I took these lines from the documentation for your plugin. However, I find that when I enter insert mode in Neovim none of the autocompletions ever appear. In fact, if I type `:call deoplete#enable()" in command mode and use tab-completion to see what is available, this command is not available.

deoplete initialization is asynchronous. So it is not possible to popup the completion immediately.
Sorry.

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Jul 3, 2017

Owner

If deoplete initialization is not asynchronous, deoplete will block your input.
It is your desired behavior? I think not.

Owner

Shougo commented Jul 3, 2017

If deoplete initialization is not asynchronous, deoplete will block your input.
It is your desired behavior? I think not.

@gkapfham

This comment has been minimized.

Show comment
Hide comment
@gkapfham

gkapfham Jul 3, 2017

Hi @Shougo! Okay, if I wait for a period of time then I can see functions when I type :call deoplete#... in command mode in Neovim. However, with the two lines that I mentioned previously, I never see any of the completion menus regardless of how long I wait.

I understand that the plugin is asynchronous and I would not want the blocking of my input. However, I would like to ultimately see the completion menus. I think that there is something that I am still not understanding in the documentation or your response.

Should the completion menus appear (at some point in the future) when I run Neovim with the two lines of code that are mentioned in the help file?

Thanks for any insights that you can provide!

gkapfham commented Jul 3, 2017

Hi @Shougo! Okay, if I wait for a period of time then I can see functions when I type :call deoplete#... in command mode in Neovim. However, with the two lines that I mentioned previously, I never see any of the completion menus regardless of how long I wait.

I understand that the plugin is asynchronous and I would not want the blocking of my input. However, I would like to ultimately see the completion menus. I think that there is something that I am still not understanding in the documentation or your response.

Should the completion menus appear (at some point in the future) when I run Neovim with the two lines of code that are mentioned in the help file?

Thanks for any insights that you can provide!

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Jul 3, 2017

Owner

However, with the two lines that I mentioned previously, I never see any of the completion menus regardless of how long I wait.

OK. Reproduced. It is bug. I will fix it. Please create new issue for it.

Owner

Shougo commented Jul 3, 2017

However, with the two lines that I mentioned previously, I never see any of the completion menus regardless of how long I wait.

OK. Reproduced. It is bug. I will fix it. Please create new issue for it.

@gkapfham

This comment has been minimized.

Show comment
Hide comment
@gkapfham

gkapfham Jul 3, 2017

Hello @Shougo, thanks for agreeing to look into this issue again. As you have requested, I have now opened #508 to document the issue that you have confirmed is a bug.

To ensure that my comments are complete, @Shougo, here is the other configuration that I mentioned previously. First, I followed the vim-plug documentation to write this line:

Plug 'Shougo/deoplete.nvim', {'do': ':UpdateRemotePlugins', 'on': []}

Then, I later included these lines (again, directly modified from the vim-plug documentation!):

augroup load_us_ycm
  autocmd!
  autocmd InsertEnter * call plug#load('deoplete.nvim')
                     \| autocmd! load_us_ycm
augroup END

This approach will work for the second time that I enter insert mode in Neovim. That is, on the second time I enter insert mode I will always see the completions. However, as long as I keep typing in the first insert mode, I never seem to see the completions from deoplete.nvim.

Again, thanks for this plugin! I really like it. I would appreciate it if you can show me what I am overlooking when it comes to loading this plugin in a lazy fashion.

gkapfham commented Jul 3, 2017

Hello @Shougo, thanks for agreeing to look into this issue again. As you have requested, I have now opened #508 to document the issue that you have confirmed is a bug.

To ensure that my comments are complete, @Shougo, here is the other configuration that I mentioned previously. First, I followed the vim-plug documentation to write this line:

Plug 'Shougo/deoplete.nvim', {'do': ':UpdateRemotePlugins', 'on': []}

Then, I later included these lines (again, directly modified from the vim-plug documentation!):

augroup load_us_ycm
  autocmd!
  autocmd InsertEnter * call plug#load('deoplete.nvim')
                     \| autocmd! load_us_ycm
augroup END

This approach will work for the second time that I enter insert mode in Neovim. That is, on the second time I enter insert mode I will always see the completions. However, as long as I keep typing in the first insert mode, I never seem to see the completions from deoplete.nvim.

Again, thanks for this plugin! I really like it. I would appreciate it if you can show me what I am overlooking when it comes to loading this plugin in a lazy fashion.

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Jul 3, 2017

Owner

Don't mind. I had not known the issue.

Owner

Shougo commented Jul 3, 2017

Don't mind. I had not known the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment