Giter VIP home page Giter VIP logo

deoplete-jedi's Introduction

deoplete-jedi

deoplete.nvim source for jedi.

Status
Travis CI Build Status
Gitter Join the chat at https://gitter.im/zchee/deoplete-jedi

Required

Install

pip3 install --user jedi --upgrade

And

NeoBundle 'deoplete-plugins/deoplete-jedi'
# or
Plug 'deoplete-plugins/deoplete-jedi'

Note: If you don't want to use a plugin manager, you will need to clone this repo recursively:

git clone --recursive https://github.com/deoplete-plugins/deoplete-jedi

When updating the plugin, you will want to be sure that the Jedi submodule is kept up to date with:

git submodule update --init

Options

  • g:deoplete#sources#jedi#statement_length: Sets the maximum length of completion description text. If this is exceeded, a simple description is used instead. Default: 50
  • g:deoplete#sources#jedi#enable_typeinfo: Enables type information of completions. If you disable it, you will get the faster results. Default: 1
  • g:deoplete#sources#jedi#enable_short_types: Enables short completion types. Default: 0
  • g:deoplete#sources#jedi#short_types_map: Short types mapping dictionary. Default: { 'import': 'imprt', 'function': 'def', 'globalstmt': 'var', 'instance': 'var', 'statement': 'var', 'keyword': 'keywd', 'module': 'mod', 'param': 'arg', 'property': 'prop', 'bytes': 'byte', 'complex': 'cmplx', 'object': 'obj', 'mappingproxy': 'dict', 'member_descriptor': 'cattr', 'getset_descriptor': 'cprop', 'method_descriptor': 'cdef', }
  • g:deoplete#sources#jedi#show_docstring: Shows docstring in preview window. Default: 0
  • g:deoplete#sources#jedi#python_path: Set the Python interpreter path to use for the completion server. It defaults to "python", i.e. the first available python in $PATH. Note: This is different from Neovim's Python (:python) in general.
  • g:deoplete#sources#jedi#extra_path: A list of extra paths to add to sys.path when performing completions.
  • g:deoplete#sources#jedi#ignore_errors: Ignore jedi errors for completions. Default: 1
  • g:deoplete#sources#jedi#ignore_private_members: Ignore private members from completions. Default: 0

Virtual Environments

If you are using virtualenv, it is recommended that you create environments specifically for Neovim. This way, you will not need to install the neovim package in each virtualenv. Once you have created them, add the following to your vimrc file:

let g:python_host_prog = '/full/path/to/neovim2/bin/python'
let g:python3_host_prog = '/full/path/to/neovim3/bin/python'

Deoplete only requires Python 3. See :help provider-python for more information.

deoplete-jedi's People

Contributors

adefossez avatar arkottke avatar blueyed avatar darthshadow avatar gitter-badger avatar hackaugusto avatar heliomeiralins avatar jun-t avatar kanchishimono avatar ma27 avatar mxmul avatar ozelentok avatar sergeant-wizard avatar shougo avatar tony avatar tvestelind avatar tweekmonster avatar yangbeom avatar zchee avatar zhou13 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deoplete-jedi's Issues

Completions of top-level modules after "import django." without Django being installed

After import django. deoplete-jedi completes generic modules.

django is not installed in the server's sys.path (['…/vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi', '/usr/lib/python3.5/site-packages/_pdbpp_path_hack', '/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi', '/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/sources', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-linux', '/usr/lib/python3.5/lib-dynload', '/home/user/.local/lib/python3.5/site-packages', '…/Vcs/pg_activity', '…/Vcs/vint', '…/Vcs/neovim-python-client', '/usr/lib/python3.5/site-packages']).

Output from the log (on #79):

2016-10-20 23:16:07,590 DEBUG    (deoplete.jedi.cache) Input: "import django."
2016-10-20 23:16:07,592 DEBUG    (deoplete.jedi) Key: ('import~',), Refresh: True, Wait: False
2016-10-20 23:16:07,594 INFO     (deoplete.jedi) gather_candidates t = 5.143311ms, µ = 4.503736ms, σ = 1.170783ms)
2016-10-20 23:16:07,594 DEBUG    (deoplete.jedi.worker.Thread-1) Got work
2016-10-20 23:16:07,597 DEBUG    (deoplete.jedi.server) Line: 11, Col: 14, Filename: '…/vim/neobundles/deoplete-jedi/t.py'
2016-10-20 23:16:07,599 DEBUG    (deoplete.jedi.worker.Thread-1) Completed work
2016-10-20 23:16:07,600 DEBUG    (deoplete.jedi.cache) Processed: ('import~',)

Triggering jedi-vim's completion completes Django's modules, since it's in Vim's path (via ~/.vim/plugin/pythonx/django).

Completion for jedi isn't showing

Continued from Shougo/deoplete.nvim#197

python-client is neovim-0.1.3.

log_68422.txt

# freebsd-version -ku; uname -apKU                            
11.0-CURRENT
11.0-CURRENT
FreeBSD z600 11.0-CURRENT FreeBSD 11.0-CURRENT #56: Tue Mar  1 18:52:01 CST 2016     root@z600:/usr/obj/usr/src/sys/MYKERNEL  amd64 amd64 1100100 1100099

# nvim --version
NVIM 0.1.2
Build type: Release
Compilation: /usr/bin/cc -O2 -pipe -fstack-protector -fno-strict-aliasing -Wconversion -O2 -pipe -fstack-protector -fno-strict-aliasing -DDISABLE_LOG -Wall -We
xtra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -DHAVE_CONFIG_H -I/wrkdirs/usr/ports/editors/neovim/work/neovim-b33c777/config -I/wrkdirs/usr/ports/editors/neovim/work/neovim-b33c777/src -I/usr/local/include -I/usr/local/include -I/usr/local/include/luajit-2.0 -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/include -I/wrkdirs/usr/ports/editors/neovim/work/neovim-b33c777/src/nvim/auto -I/wrkdirs/usr/ports/editors/neovim/work/neovim-b33c777/include                                  Compiled by root@head-amd64-default-job-19

Optional features included (+) or not (-): +acl   +iconv    -jemalloc 
For differences from Vim, see :help vim-differences

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/local/share/nvim"

minimal vim config:

" Your minimal init.vim

set runtimepath+=~/.vim/bundle/deoplete.nvim/
set runtimepath+=~/.vim/bundle/deoplete-jedi/

" deoplete.vim
" credit: https://gist.github.com/zchee/c314e63ae8b6bea50bb4
let g:deoplete#enable_at_startup = 1
set completeopt+=noinsert
set completeopt-=preview
let g:deoplete#enable_ignore_case = 'ignorecase'
let g:deoplete#auto_completion_start_length = 0
let g:min_pattern_length = 0
" https://github.com/Shougo/deoplete.nvim/issues/117

let g:deoplete#ignore_sources = {}
let g:deoplete#ignore_sources._ = ['buffer', 'vim', 'member']
let g:deoplete#sources#go = 'vim-go'

inoremap <expr><C-n> deoplete#mappings#manual_complete()

if exists(':DeopleteEnable')
  let g:jedi#completions_enabled = 0
  let g:jedi#auto_vim_configuration = 0
  let g:jedi#smart_auto_mappings = 0
  let g:jedi#show_call_signatures = 0
endif

deoplete-jedi doesn't show all completion candidates that jedi-vim can

Problem summary

This issue needs a confirmation. Because i'm not sure is it something with my config or deoplete-jedi problem itself.
There is no candidates for something like django's admin.site. ....
or deoplete-jedi doesn't show candidates for statements inside django's classes, etc.

class BookAdmin(admin.ModelAdmin):
    list_display

Expected

jedi-vim candidates

  • Neovim version:
    0.1.6

Fails to start server due to "no module names deoplete"

Problem summary

When starting to edit the first python file. deoplete-jedi fails to start its server with the message:

2017-01-18 11:04:24,709 [DEBUG @ msgpack_stream.py:send:33] 29070 - sent [0, 4, 'nvim_err_write', ('[deoplete] Error when loading source jedi: Failed to start server (python -u /home/languitar/.local/share/nvim/bundle/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi/server.py --desc-length 0 --debug  --debug-level 0): Server exited with b\'Traceback (most recent call last):\\n  File "/home/languitar/.local/share/nvim/bundle/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 24, in <module>\\n    from deoplete.deoplete import SourceInitError\\nModuleNotFoundError: No module named \\\'deoplete\\\'\\n\': error: 1. Ignoring.\n',)]

Expected

It works ;-)

Environment Information

  • OS: archlinux 64
  • Neovim version:
NVIM 0.1.7
Build type: Release
Compilation: /usr/bin/cc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -Wconversion -O2 -DNDEBUG -DDISABLE_LOG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -DHAVE_CONFIG_H -D_GNU_SOURCE -I/build/neovim/src/build/config -I/build/neovim/src/neovim-0.1.7/src -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/build/neovim/src/build/src/nvim/auto -I/build/neovim/src/build/include
Compiled by builduser

Optional features included (+) or not (-): +acl   +iconv    +jemalloc +tui      
For differences from Vim, see :help vim-differences

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

neovim-python installation are up to date and :UpdateRemotePlugins has been called.

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

set runtimepath+=~/path/to/deoplete.nvim/
set runtimepath+=~/path/to/deoplete-jedi/
let g:deoplete#enable_at_startup = 1
call deoplete#custom#set('jedi', 'debug_enabled', 1)
call deoplete#enable_logging('DEBUG', '/tmp/deoplete.log')

Steps to reproduce the issue after starting Neovim (required)

  1. :e test.py
  2. i

Upload the logfile(s)

logfile_py2_script.txt
logfile_py3_rplugin.txt
logfile_py3_script.txt
deoplete.log.txt

Needs unit test

deoplete-jedi become have many users and contributors.
Also, the number of PR has increased.

But the language source(I mean deoplete.nvim sources) test is sometimes difficult.
Use mock? Use real headless nvim? either way, it's little difficult.

Ideally, unit testing is completed in travis ci.
Do you have any idea?

Feature request: show doc for instances and statements in popup

Hi,

I'm using the plugin with echodoc.vim to print function arguments (like in jedi-vim, where the variables of a function and statement are displayed in-line, which is a handy feature). It seems that echodoc uses jedi to access the docstring. This works fine for functions, but not for presumable instances or statements like numpy.arange(). Is there any way to fix this?

deoplete_jedi.server.StreamEmpty

Problems summary

When editing python files, deoplete_jedi raises StreamEmpty error

I installed neovim through Homebrew
python neovim plugins were installed successuflly through pip2 and pip3

Environment Information

  • OS: OSX 10.11.6
  • Neovim version: 0.1.4

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

let g:python_host_prog = '/usr/local/bin/python'
let g:python3_host_prog = '/usr/local/bin/python3'
let g:deoplete#enable_at_startup = 1

The reproduce ways from neovim starting (Required!)

  1. nvim a.py
  2. type anything
    -> error occurs

Screen shot (if possible)

screenshot_05

AttributeError thrown upon every autocompletion trigger, when file contains a certain import

Problems summary

When editing a file that contains from decimal import Decimal at the top, AttributeError is thrown every time autocompletion is triggered.

[deoplete] Traceback (most recent call last):
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 47, in completion_begin
[deoplete]     complete_position, candidates = self.gather_candidates(context)
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 85, in gather_candidates
[deoplete]     results = self.gather_results(context)
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 150, in gather_results
[deoplete]     context['candidates'] = source.gather_candidates(context)
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi.py", line 342, in gather_candidates
[deoplete]     name, type_, desc, abbr = self.parse_completion(c, tmp_filecache)
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi.py", line 184, in parse_completion
[deoplete]     type_, desc = [x.strip() for x in comp.description.split(':', 1)]
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/api/classes.py", line 425, in description
[deoplete]     t = self.type
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/api/classes.py", line 470, in type
[deoplete]     followed = self.follow_definition()
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
[deoplete]     rv = function(obj, *args, **kwargs)
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/api/classes.py", line 498, in follow_definition
[deoplete]     defs = self._follow_statements_imports()
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
[deoplete]     rv = function(obj, *args, **kwargs)
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/api/classes.py", line 485, in _follow_statements_imports
[deoplete]     return i.follow()
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
[deoplete]     rv = function(obj, *args, **kwargs)
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/imports.py", line 103, in follow
[deoplete]     for t in types))
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/imports.py", line 103, in <genexpr>
[deoplete]     for t in types))
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 120, in find_types
[deoplete]     return f.find(scopes, search_global)
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
[deoplete]     result = func(*args, **kwargs)
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 86, in find
[deoplete]     names = self.filter_name(scopes)
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 176, in filter_name
[deoplete]     for names_dict, position in names_dicts:
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 109, in <genexpr>
[deoplete]     return ((n, None) for n in self.scope.names_dicts(search_global))
[deoplete]   File "/home/brad/.config/nvim/plugged/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 720, in names_dicts
[deoplete]     yield star_module.names_dict
[deoplete] AttributeError: 'NoneType' object has no attribute 'names_dict'
[deoplete] An error has occurred. Please execute :messages command.

Expected

Auto-completion should function correctly and not throw exceptions.

Environment Information

  • OS: Arch Linux
  • Neovim version: 0.1.2

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

call plug#begin('~/.config/nvim/plugged')
Plug 'Shougo/deoplete.nvim'
Plug 'zchee/deoplete-jedi'
call plug#end()
let g:deoplete#enable_at_startup=1

The reproduce ways from neovim starting (Required!)

  1. Open a new or existing Python file.
  2. At the top of the file, add from decimal import Decimal .
  3. Start typing on a new line until auto-completion triggers (2 characters by default). Auto-completion will not function and AttributeError will be shown under :messages .

Generate a logfile if appropriate

jedi_debug.txt

Screen shot (if possible)

2016-04-08_20-15-43

Error from failed script_completion is not reported

Problems summary

When Jedi throws an exception while generating completions, this is not properly reported.

Given the following code:

import requests
r = requests.get('www.github.com')
r.

Nothing happens when calling deoplete#manual_complete or when deoplete completes automatically (at the end).

An error shows up when enabling logging (:call deoplete#enable_logging(100, '/tmp/deo.log')):

2016-07-12 11:27:52,246 DEBUG    (deoplete.jedi.cache) Starting reaper thread
2016-07-12 11:27:52,248 DEBUG    (deoplete.jedi.cache) Input: "r."
2016-07-12 11:27:52,256 DEBUG    (deoplete.jedi.Thread-1) Got work
2016-07-12 11:27:52,302 DEBUG    (deoplete.jedi.Thread-1) Completed work
2016-07-12 11:27:52,303 DEBUG    (deoplete.jedi.Thread-1) Got work
2016-07-12 11:27:52,303 DEBUG    (deoplete.jedi.cache) Processed: ('boilerplate~',)
2016-07-12 11:27:52,609 DEBUG    (deoplete.jedi.Thread-1) Worker error
Traceback (most recent call last):
  File "/home/user/.vim/neobundles/deoplete-jedi//rplugin/python3/deoplete/sources/deoplete_jedi/worker.py", line 67, in run
    self.out_queue.put(self.completion_work(*work), block=False)
  File "/home/user/.vim/neobundles/deoplete-jedi//rplugin/python3/deoplete/sources/deoplete_jedi/worker.py", line 34, in completion_work
    filename)
  File "/home/user/.vim/neobundles/deoplete-jedi//rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 533, in completions
    return stream_read(self._server.stdout)
  File "/home/user/.vim/neobundles/deoplete-jedi//rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 83, in stream_read
    raise StreamEmpty
deoplete_jedi.server.StreamEmpty

When enabling --debug for the server, the StreamEmpty exception is not logged anywhere anymore (?!), but this shows up in /tmp/jedi-server.log:

Input closed.  Shutting down.
Starting server.  sys.path = ['…/vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi', '/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi', '/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/sources', '…/pyenv/tmp-system-2YTclz/lib/python35.zip', '…/pyenv/tmp-system-2YTclz/lib/python3.5', '…/pyenv/tmp-system-2YTclz/lib/python3.5/plat-linux', '…/pyenv/tmp-system-2YTclz/lib/python3.5/lib-dynload', '/usr/lib64/python3.5', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-linux', '…/pyenv/tmp-system-2YTclz/lib/python3.5/site-packages']
Line: 1, Col: 0, Filename: ''
Line: 3, Col: 2, Filename: '…/Vcs/vim/t.py'
Failed completion 'script_completion'

When using log.exception there this traceback shows up - apparently an error with Jedi:

Traceback (most recent call last):
  File "/home/user/.vim/neobundles/deoplete-jedi//rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 122, in wrapper
    return func(self, source, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi//rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 283, in script_completion
    completions = jedi.Script(source, line, col, filename).completions()
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/api/__init__.py", line 192, in completions
    completion_names = get_completions(user_stmt, b)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/api/__init__.py", line 178, in get_completions
    completion_names += self._simple_complete(path, dot, like)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/api/__init__.py", line 254, in _simple_complete
    scopes = list(self._prepare_goto(path, True))
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/api/__init__.py", line 298, in _prepare_goto
    scopes = self._evaluator.eval_element(eval_stmt)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 278, in _name_to_types
    types += _remove_statements(evaluator, typ, name)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 323, in _remove_statements
    types += evaluator.eval_statement(stmt, seek_name=name)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/recursion.py", line 23, in run
    result = func(evaluator, stmt, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 135, in eval_statement
    types = self.eval_element(stmt.get_rhs())
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 299, in execute
    types = func(self, arguments)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/_compatibility.py", line 124, in <lambda>
    return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 299, in execute
    types = func(self, arguments)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/_compatibility.py", line 124, in <lambda>
    return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 299, in execute
    types = func(self, arguments)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 364, in py__call__
    return Function.py__call__(self, evaluator, params)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/_compatibility.py", line 122, in <lambda>
    return lambda *args, **kwargs: self.func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 278, in _name_to_types
    types += _remove_statements(evaluator, typ, name)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 323, in _remove_statements
    types += evaluator.eval_statement(stmt, seek_name=name)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/recursion.py", line 23, in run
    result = func(evaluator, stmt, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 135, in eval_statement
    types = self.eval_element(stmt.get_rhs())
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 299, in execute
    types = func(self, arguments)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 364, in py__call__
    return Function.py__call__(self, evaluator, params)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/_compatibility.py", line 122, in <lambda>
    return lambda *args, **kwargs: self.func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 278, in _name_to_types
    types += _remove_statements(evaluator, typ, name)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 323, in _remove_statements
    types += evaluator.eval_statement(stmt, seek_name=name)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/recursion.py", line 23, in run
    result = func(evaluator, stmt, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 135, in eval_statement
    types = self.eval_element(stmt.get_rhs())
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 299, in execute
    types = func(self, arguments)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 364, in py__call__
    return Function.py__call__(self, evaluator, params)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/_compatibility.py", line 122, in <lambda>
    return lambda *args, **kwargs: self.func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 267, in eval_trailer
    new_types += get(self, node)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/iterable.py", line 229, in get_index_types
    types += self.get_exact_index_types(index.obj)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/iterable.py", line 255, in get_exact_index_types
    return self._evaluator.eval_element(self._items()[mixed_index])
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/finder.py", line 269, in _name_to_types
    for_types = iterable.get_iterator_types(for_types)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/iterable.py", line 418, in get_iterator_types
    result += it.iter_content()
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/iterable.py", line 575, in iter_content
    module = self.var_args.get_parent_until()
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/evaluate/param.py", line 56, in get_parent_until
    return element.get_parent_until(*args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/_compatibility.py", line 124, in <lambda>
    return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
  File "/home/user/.vim/neobundles/deoplete-jedi/rplugin/python3/deoplete/jedi/jedi/parser/tree.py", line 123, in get_parent_until
    while scope.parent is not None:
AttributeError: 'ListComprehension' object has no attribute 'parent'

Expected

  1. The exception should be logged in retry_completion.
  2. The user should be informed about the error.

The completion works using <C-X><C-O>, but that uses another version of Jedi
(through jedi-vim). So apparently the Jedi submodule should probably get
updated to fix this bug.

Environment Information

  • OS: Arch Linux
  • Neovim version: v0.1.5-535-ge906111

Remove extra symbols from word completion

Completion adds a ( or . at the end of the word. This has been more annoying than useful in Python.

For example:

from module import BaseClass

class Subclass(

If I want to add BaseClass as a subclass, the completion will add this:

class Subclass(BaseClass.

I use the following to assist with completions:

inoremap <expr> ( pumvisible() ? "\<c-y>()\<c-\>\<c-o>h" : "("
inoremap <expr> ) pumvisible() ? "\<c-y>)" : ")"
inoremap <expr> . pumvisible() ? "\<c-y>." : "."

When I accept the completion using ), in the example above I end up with:

class Subclass(BaseClass.)

The other problem is Python properties. Jedi shows them as functions, which causes an open parenthesis to be incorrectly added to the completion.

I think this should be removed completely to let the user decide on what to do.

How to enable debugging? deoplete#sources#jedi#debug_enabled vs deoplete's help

https://github.com/zchee/deoplete-jedi/blob/1607a657fb564e53caf44562d3ae77881690f186/rplugin/python3/deoplete/sources/deoplete_jedi.py#L54-L56:

    def on_init(self, context):
        vars = context['vars']

    …
        self.debug_enabled = vars.get(
            'deoplete#sources#jedi#debug_enabled', False
        )

In Deoplete.load_sources context has 'custom': {'_': {}, 'jedi': {'debug_enabled': 1}} here, but not in context['vars'].

So it turns out that you need to actually set deoplete#sources#jedi#debug_enabled = 1, and deoplete's help is wrong / does not apply to this plugin?!

  " Enable jedi source debug messages
    call deoplete#custom#set('jedi', 'debug_enabled', 1)

This also means the new / current issue template is wrong, and @ysolis figured this out to get the debug log for #56 (comment)?!

call deoplete#custom#set('jedi', 'debug_enabled', 1)

FWIW, code seems to have been changed recently in Shougo/deoplete.nvim@5939bfb - is this relevant?! /cc @tweekmonster

Is deoplete-jedi "just" not behaving according to deoplete's interface / help here?

Recommended Virtualenv Settings Require Package Duplication

Problems summary

For every package I have installed in my app virtualenv I am required to also install in my nvim3 virtualenv.

Expected

the nvim3 virtualenv should only be required to run the neovim python client and support importing of current virtualenv modules.

Environment Information

  • OS: OSX
  • Neovim version: NVIM v0.1.3-61-gf03ab69

Python process get defunct for seconds when restarted inside

Problems summary

I am using NeoVim 1.5 and use this when i do python programming. The python process invoked for deoplete-jedi get defunct, Deoplete continue to work but i don't get any suggestion for python autocomplete almost all the times for several seconds.

Expected

The python autocomplete must continue normally.

Environment Information

  • OS: Ubuntu 16.04 LTS
  • Neovim version: neovim 0.1.5ubuntu1+git201609060743+27 from NeoVim PPA.

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

" Your minimal init.vim
set runtimepath+=~/tmp/deoplete.nvim/
set runtimepath+=~/tmp/deoplete-jedi/
let g:deoplete#enable_at_startup = 1
set completeopt=menu,preview

The reproduce ways from neovim starting (Required!)

  1. configure vim with option

    set completeopt=menu,preview

  2. edit your code and wait that a preview window appear
  3. check your process (pgrep -af python) you can find that the python process using jedi, invoked from deoplete is in defunct state

Completion of pymongo (python MongoDB driver) throws error

Problems summary

Completion candidates from the pymongo package throw errors.

Environment Information

  • OS: Ubuntu 14.04 Trusty
  • Neovim version: 0.1.5-dev

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

I've tried with this suggested minimal init.vim and the problem occurs

" Your minimal init.vim
set runtimepath+=~/path/to/deoplete.nvim/
set runtimepath+=~/path/to/deoplete-jedi/
let g:deoplete#enable_at_startup = 1

The reproduce ways from neovim starting (Required!)

  1. Open a python file (maybe a new one)
  2. Import pymongo: import pymongo
  3. Use the package in some way: pymongo.MongoClient()

While pymongo is being entered in point 3 a completion is available as expected:
image
But there is no completion when typing MongoClient:
image
When I look at the :messages, there is a string of errors:
image

The full error message repeats as the completion is requested, the complete stack trace is:

[deoplete] An error has occurred. Please execute :messages command.                                                                                                                                                                   
[deoplete] Traceback (most recent call last):                                                                                                                                                                                         
[deoplete]   File "/home/mcnamara/.config/nvim/dein/repos/github.com/Shougo/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 47, in completion_begin                                                                         
[deoplete]     complete_position, candidates = self.gather_candidates(context)                                                                                                                                                        
[deoplete]   File "/home/mcnamara/.config/nvim/dein/repos/github.com/Shougo/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 81, in gather_candidates                                                                        
[deoplete]     results = self.gather_results(context)                                                                                                                                                                                 
[deoplete]   File "/home/mcnamara/.config/nvim/dein/repos/github.com/Shougo/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 132, in gather_results                                                                          
[deoplete]     context['candidates'] = source.gather_candidates(context)                                                                                                                                                              
[deoplete]   File "/home/mcnamara/.config/nvim/dein/repos/github.com/zchee/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi/profiler.py", line 37, in wrapper                                                             
[deoplete]     return func(self, *args, **kwargs)                                                                                                                                                                                     
[deoplete]   File "/home/mcnamara/.config/nvim/dein/repos/github.com/zchee/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi.py", line 113, in gather_candidates                                                           
[deoplete]     for filename, mtime in modules.items()]):                                                                                                                                                                              
[deoplete]   File "/home/mcnamara/.config/nvim/dein/repos/github.com/zchee/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi.py", line 113, in <listcomp>                                                                  
[deoplete]     for filename, mtime in modules.items()]):                                                                                                                                                                              
[deoplete]   File "/home/mcnamara/anaconda3/lib/python3.5/genericpath.py", line 55, in getmtime                                                                                                                                       
[deoplete]     return os.stat(filename).st_mtime                                                                                                                                                                                      
[deoplete] FileNotFoundError: [Errno 2] No such file or directory: '/home/<user>/.hugh/test.py'                                                                                                                                     
[deoplete] An error has occurred. Please execute :messages command.   

Setting up Python for Neovim

Problem summary

Unable to activate neovim on pyenv

Expected

When running the code to activate neovim on pyenv, "virtualenv" and "activate" are not recognized as valid pyenv commands.

Environment Information

  • OS: Mac OS 10.11
  • Neovim version: 0.1.7

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

" Use the following as a template.
set runtimepath+=~/path/to/deoplete.nvim/
set runtimepath+=~/path/to/deoplete-jedi/
let g:deoplete#enable_at_startup = 1
call deoplete#custom#set('jedi', 'debug_enabled', 1)
call deoplete#enable_logging('DEBUG', '/tmp/deoplete.log')

Generate logfiles if appropriate

  1. export NVIM_PYTHON_LOG_FILE=/tmp/nvim-log
  2. export NVIM_PYTHON_LOG_LEVEL=DEBUG
  3. nvim -u minimal.vimrc

Then look at and attach the files /tmp/nvim-log_{PID} and
/tmp/deoplete.log here.

Steps to reproduce the issue after starting Neovim (required)

  1. pyenv install 2.7.12
  2. pyenv install 3.6.0
  3. pyenv virtualenv 2.7.12 neovim2
  4. pyenv virtualenv 3.6.0 neovim3
  5. pyenv activate neovim2
  6. pip install neovim
  7. pyenv which python # Note the path
  8. pyenv activate neovim3
  9. pip install neovim
  10. pyenv which python # Note the path

Screen shot (if possible)

Upload the logfile(s)

Feature request: show function definition string when calling function

In vim-jedi, while typing variables in function a one-line pop-up with the function's variable appears, which I find very helpful. Is it possible to reimplement this feature? Unfortunately using both plugins and setting jedi#completions_enabled = 0 does not revoke this feature.

Great work otherwise!

deoplete-jedi processes are running even if I edit non-py file

Problems summary

I've noticed that deoplete-jedi is running 8 processes and consuming CPU even if I opened and editing a non-python related file.

Expected

deoplete-jedi processes running only when there is work to do.

Environment Information

  • OS: OSX El Capitan 10.11.6
  • Neovim version: v0.1.6-119-g7b6786f
  • tmux 2.2

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

if &compatible
    set nocompatible
endif

" Set configuration paths
let s:cfg_dir = $HOME.'/.config/nvim'
let s:venv_dir = $HOME.'/.cache/nvim/venv'

let s:bundle_dir = s:cfg_dir.'/bundle'
let s:dein_dir = s:bundle_dir.'/repos/github.com/Shougo/dein.vim'
let g:python_host_prog = s:venv_dir.'/neovim2/bin/python'
let g:python3_host_prog = s:venv_dir.'/neovim3/bin/python'

" Install dein.vim
if ! isdirectory(s:dein_dir)
    execute '!git clone https://github.com/Shougo/dein.vim' s:dein_dir
endif
execute 'set runtimepath+='.substitute(
    \ fnamemodify(s:dein_dir, ':p') , '/$', '', '')

" Add plugins to bundle
call dein#begin(s:bundle_dir, [ expand('<sfile>') ])
call dein#add('Shougo/dein.vim')
call dein#add('Shougo/deoplete.nvim')
call dein#add('zchee/deoplete-jedi')
call dein#end()

" Install any missing plugins
if dein#check_install()
    call dein#install()
endif

" Enable highlight syntax
filetype plugin indent on
syntax enable

let g:deoplete#enable_at_startup = 1

The reproduce ways from neovim starting (Required!)

  1. Run nvim ~/.bashrc

  2. Enter 'insert' mode

  3. On different terminal, run ps -ef | grep deoplete or pstree -pl -s deoplete

    Repeat steps 1-3 in a different terminal and see processes doubling.

Generate a logfile if appropriate

N/A

Screen shot (if possible)

image

Upload the log file

N/A

newline character not shown in popup menu

Consider the following minimal init.vim:

let $DOTVIM = expand('$HOME/.vim')

execute 'set runtimepath+=' . expand(
            \ '$DOTVIM/bundle/repos/github.com/Shougo/dein.vim')

call dein#begin(expand('$DOTVIM/bundle/'))
call dein#add('Shougo/deoplete.nvim')
call dein#add('zchee/deoplete-jedi')
call dein#add('Shougo/echodoc.vim')
call dein#end()
filetype plugin indent on

set completeopt=menuone,preview,noinsert
set noshowmode
set laststatus=2
set shortmess+=c
let g:deoplete#enable_at_startup = 1
let g:deoplete#sources#jedi#python_path = '/usr/local/bin/python3'
let deoplete#sources#jedi#show_docstring = 1
let g:echodoc_enable_at_startup = 1
au CompleteDone * pclose!

Now (as in the GIF and screenshot) open an empty python file and start typing pri. You wil see that deoplete correctly shows completion and signatures for print function. However the popup menu for the end argument is shown as \x0a instead of \n. This in turns makes echodoc fail (see the command line for this). I expect the popup menu (and echodoc) to show \n. Thanks in advance.
screen shot 2016-09-15 at 17 31 58

sep-15-2016 17-31-41

Use deoplete.util.getlines instead of nvim.current.buffer

As in #58, nvim.current.buffer sometimes will freezing remote plugin if current buffer is large.
So need change to use deoplete.util.getlines.
I don't know vim.call('getline', ...) side effect for performance, but there is no way if fix Neovim core API or python-client module.

deoplete-go already dealt this problem.
But note that have own Buffer class for not need change the large fix such as nvim.current.buffer.name or etc. Just copied and some fix python-client buffer code.
And, I don't know that is a correct way and correct code. but now it works.
Also, cache is proof-concept, not used.
https://github.com/zchee/deoplete-go/blob/master/rplugin/python3/deoplete/sources/deoplete_go/buffer.py

jedi completion does not trigger

Problem summary

I'm trying to get jedi completion to work but the only completions i get are strings in the current buffer.
like here: https://imgur.com/a/oy62s

Expected

similiar behavior like in other autocompletions that i already have running with deoplete.
like ruby: http://imgur.com/a/INJKl
as you can see it also suggests words that are not in the current buffer

Environment Information

  • OS: Arch Linux 4.6.0
  • Neovim version: 0.1.7

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

set runtimepath+=~/.vim/plugged/deoplete.nvim/plugin/deoplete.vim/
set runtimepath+=~/.vim/plugged/deoplete-jedi/
call plug#begin('~/.vim/plugged')
Plug 'Shougo/deoplete.nvim'
Plug 'zchee/deoplete-jedi'
call plug#end()
let g:deoplete#enable_at_startup=1
let g:deoplete#auto_completion_start_length = 0

call deoplete#custom#set('jedi', 'debug_enabled', 1)
call deoplete#enable_logging('DEBUG', '/tmp/deoplete.log')

There is also no difference if i don't set a runtime path for deoplete and deoplete-jedi
also no difference if using my complete init.vim
just adding
Plug 'fishbullet/deoplete-ruby'
would activate ruby completion without problems, but python stays the same

Generate logfiles if appropriate

nvim generated a logfile called nvim-log_py3_rplugin even though i called it differently.
it's too big for pastebin and i don't see any error messages, however the format at quite bad:
https://ufile.io/eb67e

Steps to reproduce the issue after starting Neovim (required)

  1. install neovim
  2. install deoplete-jedi
  3. check if autocomplete works

What i tried:

:CheckHealth does not report any errors
:echo has("python") returns 1
:echo has("python3") returns 1
:UpdateRemotePlugins makes no difference
reinstalled everything multiple times (neovim, neovim-python, python2-jedi, python3-jedi)
switched from jedi from the Arch repos to pip
i also removed all vim Plugins, i thought maybe YCM jedi in vim would somehow break deoplete-jedi in neovim but no difference

i never had any error messages in logs or in vim, nothing that hinted that something is not working.
ONLY THING that seems strange to me:
When reinstalling only deoplete-jedi with Plug, it shows a git message in the command window of vim:
https://imgur.com/a/AVWKw
The git message is at the bottom of the screenshot. No other Plugin does that. Is this normal?

I would really appreciate any help on this. At this point i don't know what else to try so i'm opening this issue.
This is my first issue ever created on Github so please tell me if i did something wrong, also let me know if you need more information. I know the infos i gave probably won't let you solve this problem instantly but i don't know what else to give you. Also please let me know if i missed something obvious.

Many Thanks in advance

Unable to start server.py on Windows -- reports No module named deoplete_jedi

Problem summary

deoplete_jedi\server.py reports No module named 'deoplete_jedi'.

This error can be fixed by inserting the appropriate relative paths in server.py, but this seems like the wrong solution.

Expected

No error when loading "server.py"

Environment Information

  • OS: Windows 7
  • Neovim version: v0.2.0-625-gbeb2ef46

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

execute pathogen#infect()
syntax on
filetype plugin indent on

set runtimepath+=~/Documents/GitHub/dotfiles/neovim/bundle/deoplete/
set runtimepath+=~/Documents/GitHub/dotfiles/neovim/bundle/deoplete-jedi/

let g:deoplete#enable_at_startup = 1
call deoplete#custom#set('jedi', 'debug_enabled', 1)
call deoplete#enable_logging('DEBUG', '/tmp/deoplete.log')

Need to load pathogen.

Generate logfiles if appropriate

  1. export NVIM_PYTHON_LOG_FILE=/tmp/nvim-log
  2. export NVIM_PYTHON_LOG_LEVEL=DEBUG
  3. nvim -u minimal.vimrc

Then look at and attach the files /tmp/nvim-log_{PID} and
/tmp/deoplete.log here.

deoplete.log

2017-02-16 16:19:25,274 INFO     (deoplete.logging) --- Deoplete Log Start ---
2017-02-16 16:19:25,321 INFO     (deoplete.logging) NVIM v0.2.0-625-gbeb2ef46, Python 3.6.0, neovim client 0.1.13

Messages

[deoplete] Logging to /tmp/deoplete.log
Warning: Font "Fira Code" reports bad fixed pitch metrics
"~\Desktop\calc_elo.py" 35L, 1143C
[deoplete] Error when loading source jedi: Failed to start server (python -u C:\Users\akottke\AppData\Local\nvim\bundle\deoplete-jedi\rplugin/python3/deoplete\sources\deoplete_jedi\server.py --desc-length 0 --debug  --debug-level 10): Server exited with b'Traceback (most recent call last):\r\n  File "C:\\Users\\akottke\\AppData\\Local\\nvim\\bundle\\deoplete-jedi\\rplugin/python3/deoplete\\sources\\deoplete_jedi\\server.py", line 26, in <module>\r\n    from deoplete_jedi import utils\r\nModuleNotFoundError: No module named \'deoplete_jedi\'\r\n': error: 1. Ignoring.
[deoplete] Error when loading source jedi: Failed to start server (python -u C:\Users\akottke\AppData\Local\nvim\bundle\deoplete-jedi\rplugin/python3/deoplete\sources\deoplete_jedi\server.py --desc-length 0 --debug  --debug-level 10): Server exited with b'Traceback (most recent call last):\r\n  File "C:\\Users\\akottke\\AppData\\Local\\nvim\\bundle\\deoplete-jedi\\rplugin/python3/deoplete\\sources\\deoplete_jedi\\server.py", line 26, in <module>\r\n    from deoplete_jedi import utils\r\nModuleNotFoundError: No module named \'deoplete_jedi\'\r\n': error: 1. Ignoring.
[deoplete] Traceback (most recent call last):
[deoplete]   File "C:\Users\akottke\AppData\Local\nvim\bundle\deoplete-jedi\rplugin/python3/deoplete\sources\deoplete_jedi\server.py", line 518, in restart
[deoplete]     self.version = stream_read(self._server.stdout)
[deoplete]   File "C:\Users\akottke\AppData\Local\nvim\bundle\deoplete-jedi\rplugin/python3/deoplete\sources\deoplete_jedi\server.py", line 87, in stream_read
[deoplete]     raise StreamEmpty
[deoplete] deoplete_jedi.server.StreamEmpty
[deoplete] 
[deoplete] During handling of the above exception, another exception occurred:
[deoplete] 
[deoplete] Traceback (most recent call last):
[deoplete]   File "C:\Users\akottke\AppData\Local\nvim\bundle\deoplete-jedi\rplugin/python3/deoplete\sources\deoplete_jedi\server.py", line 493, in __init__
[deoplete]     self.restart()
[deoplete]   File "C:\Users\akottke\AppData\Local\nvim\bundle\deoplete-jedi\rplugin/python3/deoplete\sources\deoplete_jedi\server.py", line 522, in restart
[deoplete]     err, self._server.returncode))
[deoplete] Exception: Server exited with b'Traceback (most recent call last):\r\n  File "C:\\Users\\akottke\\AppData\\Local\\nvim\\bundle\\deoplete-jedi\\rplugin/python3/deoplete\\sources\\deoplete_jedi\\server.py", line 26, in <module>\r\n    from deoplete_jedi import utils\r\nModuleNotFoundError: No module named \'deoplete_jedi\'\r\n': error: 1
[deoplete] 
[deoplete] During handling of the above exception, another exception occurred:
[deoplete] 

[deoplete] Traceback (most recent call last):
[deoplete]   File "C:/Users/akottke/AppData/Local/nvim/bundle/deoplete/rplugin/python3\deoplete\deoplete.py", line 206, in itersource
[deoplete]     source.on_init(context)
[deoplete]   File "C:\Users\akottke/Documents/GitHub/dotfiles/neovim/bundle/deoplete-jedi/rplugin/python3/deoplete\sources\deoplete_jedi.py", line 80, in on_init

Steps to reproduce the issue after starting Neovim (required)

  1. Open .py file.

Screen shot (if possible)

image

NotImplementedError

Environment Information

  • OS: ubuntu 14.04
  • Neovim version: NVIM 0.1.3-dev

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

" Your minimal init.vim
set runtimepath+=~/path/to/deoplete.nvim/
set runtimepath+=~/path/to/deoplete-jedi/
let g:deoplete#enable_at_startup = 1

Screen shot (if possible)

image

CPU 100%

Problems summary

CPU up to 100% about two min

Expected

Environment Information

  • OS:ubuntu 15.04
  • Neovim version: 0.1.6-dev

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

" Your minimal init.vim
        " for python
        call dein#add('zchee/deoplete-jedi', {
                        \ 'depends': 'deoplete.nvim',
                        \ 'on_event': 'InsertEnter',
                        \ 'on_ft': 'python',
                        \ })

The reproduce ways from neovim starting (Required!)

  1. nvim get-pip.py
  2. and type " import "

Screen shot (if possible)

image
image

Upload the log file

THE LOG IS TOO LARGE.
PLEASE!! rename it with log_5970.tar.xz first.

log_5970.zip

WISH HELP TO YOU!

Use deoplete's logfile for the server

Instead of using /tmp/jedi-server.log, deoplete's logfile (from call deoplete#enable_logging('DEBUG', '/tmp/deoplete.log')) should be used also for the server. /tmp/jedi-server.log would be the fallback then.

Maybe deoplete has to set some global var in Vim for the logfile location for this?!

Huge delay for deoplete popup + wrong behavior

  • OS: macOS Sierra 10.12
  • Neovim version: NVIM 0.1.5

Config for deoplete-jedi:

Plug 'zchee/deoplete-jedi', {'for': 'python'}

Problem: can't find methods, modules, etc. + delay for showing any deoplete popup > 5 seconds. If I disabled deoplete-jedi – everything works fine with deoplete, except that I can't use jedi features for deoplete.

Preview split window remains after function is written

Thanks for the great plugin.

Problem summary

The preview split window doesn't disappear after function is already written.

Expected

The preview should disappear.

Environment Information

  • OS: MacOS Sierra
  • Neovim version: 0.1.5

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

The only fields I have set up in my init.vim are the following

let g:deoplete#enable_at_startup = 1
let g:deoplete#sources#jedi#show_docstring = 1

Screen shot (if possible)

The Preview window still shows cProfile.run() function docstring.
Screenshot

autocomplete menu appears even if enter space char

the terminal record

example:

import re
re.match('$1
re.match('xxxx')$2
re.match('xxxx')    $3

the autocomplete menu appears when the cursor on the $1, $2 and $3 position , even if I just enter space char as the $3 position

mini init.vim


" vim-plug {
    call plug#begin('~/dotfiles/nvim/plugged')

    " deoplete and sources about {
        Plug 'Shougo/deoplete.nvim'
        Plug 'zchee/deoplete-jedi', { 'for': 'python' }
    " }
    call plug#end()
" }

" deoplete.nvim {
    let g:deoplete#enable_at_startup = 1
    let g:deoplete#max_list = 15
    inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
    function! s:my_cr_function()
        return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>"
    endfunction
    inoremap <expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"
    colorscheme evening
" }

Menu flickers while completing

Hey! I was trying to make my own jedi package for Deoplete when I came across yours. I replaced the regular jedi-vim package with this and am trying it out. I noticed that completions seem to be working, and as I'm typing I'm getting suggestions based on what Jedi should suggest, but the menu only appears for a second and then flickers away. Do you think this has something to do with this package in particular? Or is it probably a Deoplete bug?

Edit: I made a .gif to show you what I'm seeing.

deoplete-jedi-bug mov

If I turn off this plugin, then I don't get any issues with Deoplete.

Fix cwd when loading server

I've noticed that deoplete-jedi will use Neovim's cwd when loading the server, which means that this depends on :lcd and when the server gets started (when doing it lazily, e.g. when entering insert mode).

When using pyenv, this might result in different python interpreters being used.

While this can be powerful in the context of restarting deoplete-jedi with another interpreter, it is rather confusing in its current state.

  1. A first step here might be to allow for configuration of the python prog (https://github.com/zchee/deoplete-jedi/blob/cdbe0902d646c37e68d0b2967b445c993b78cd32/rplugin/python3/deoplete/sources/deoplete_jedi/server.py#L464).
    This should be looked at when restarting then, too - allowing to change it without restarting Neovim (https://github.com/zchee/deoplete-jedi/blob/cdbe0902d646c37e68d0b2967b445c993b78cd32/rplugin/python3/deoplete/sources/deoplete_jedi/server.py#L500).

  2. Is there a way to get Neovim's startup directory later? This could be used then to change into before running the python prog. This would make the automatic detection (in the case of pyenv or other tools using the current working directory) more deterministic.

Automatically inserting functions

I've noticed that my function results in Deoplete seem to be inserting themselves when I don't want them to.

For example, if I start typing and Deoplete suggests a list of items, and the first one is a function from Jedi, as soon as I hit <C-n> to start navigating through the list, the item gets inserted. I think this is due to the fact that the ( is added automatically. If I cycle through the list backwards, it correctly passes over other Deoplete options, and variables from Jedi, but as soon as it hits a function and the ( is inserted, the behavior breaks.

I can't get the behavior to break all the time, but can upload a file and describe what I'm doing that triggers the undesired behavior.

The follow Python file shows the error:

// error.py
def test_model(test_file_name):
    pass

If you place the cursor at the end of the file and write test I get a completion that looks like this:

screen shot 2016-02-17 at 1 42 15 am

After pressing <C-n> I would expect the first item in the list to be highlighted, but not actually entered. However, pressing <C-n> only once brings me to the following instead:

screen shot 2016-02-17 at 1 43 36 am

Only show docstrings if they are not empty

Given a file like the following and let deoplete#sources#jedi#show_docstring = 1 it would be nice if the completion for bar would not open the preview window with the docstring, since there is nothing to display.

def foo():
    """foo"""

def bar():
    pass

fo
ba

Constant thread(?) polling with timeouts

Problem summary

Starting deoplete with deoplete-jedi causes a lot of thread I/O.
This causes constant CPU usage (of up to ~2%) for Neovim processes, where deoplete-jedi is loaded/used.

I've noticed this with long running Neovim instances before
(Shougo/deoplete.nvim#336), but have just noticed
that it is easily reproducible currently.

Environment Information

  • OS: Arch Linux
  • Neovim version: NVIM v0.1.6-89-g2daf54e

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

set rtp+=~/.vim/neobundles/deoplete
set rtp+=~/.vim/neobundles/deoplete-jedi
call deoplete#enable()
call deoplete#custom#set('jedi', 'debug_enabled', 1)
call deoplete#enable_logging('DEBUG', '/tmp/deoplete.log')

Steps to reproduce the issue after starting Neovim (required)

  1. strace -f -tt -o /tmp/O1 nvim -u vimrc.minimal

Upload the logfile(s)

The deoplete.log is very terse:

2016-09-21 09:26:01,741 INFO     (deoplete.logging) --- Deoplete Log Start ---
2016-09-21 09:26:01,746 INFO     (deoplete.logging) NVIM v0.1.6-122-gefe8311, Python 3.5.2, neovim client 0.1.9
2016-09-21 09:26:24,961 DEBUG    (deoplete.jedi.cache) Starting reaper thread

The strace output. At ~ 09:26:25 I've called :call deoplete#enable().
You can see that the last thing before the timeouts is the answer about the tag file (see Neovim log below).

I've waited until 09:26:40 and then quit Neovim - it was constantly spamming the same messages to the strace log then.

11746 09:25:59.409572 execve("/usr/local/bin/vi", ["vi", "-u", "vimrc.minimal"], [/* 72 vars */]) = 0
…
11746 09:25:59.415874 getcwd("/home/user/.dotfiles/vim/neobundles/deoplete", 4096) = 47
11746 09:25:59.415909 chdir("/home/user/.dotfiles/vim/neobundles/deoplete") = 0
…
11746 09:26:25.042966 write(17, "\224\1\r\300\222\244tags\273/home/user/.dotfile"..., 38) = 38
11791 09:26:25.042984 <... epoll_wait resumed> [{EPOLLIN, {u32=0, u64=18045263999896911872}}], 3, -1000) = 1
11746 09:26:25.042999 epoll_wait(10, [], 1024, 0) = 0
11746 09:26:25.043043 write(22, "\1\0\0\0\0\0\0\0", 8) = 8
11842 09:26:25.043063 <... epoll_wait resumed> [{EPOLLIN, {u32=22, u64=22}}], 1024, -1) = 1
11746 09:26:25.043072 epoll_wait(10,  <unfinished ...>
11842 09:26:25.043078 read(22,  <unfinished ...>
11746 09:26:25.043084 <... epoll_wait resumed> [], 1024, 0) = 0
11842 09:26:25.043090 <... read resumed> "\1\0\0\0\0\0\0\0", 1024) = 8
11746 09:26:25.043097 epoll_wait(10,  <unfinished ...>
11791 09:26:25.043104 read(0,  <unfinished ...>
11842 09:26:25.043110 write(28, "\33[?25l\33[1;1H\33[?12l\33[?25h", 24 <unfinished ...>
11791 09:26:25.043117 <... read resumed> "\224\1\r\300\222\244tags\273/home/user/.dotfile"..., 262144) = 38
11842 09:26:25.043162 <... write resumed> ) = 24
11842 09:26:25.043185 epoll_wait(24, [], 1024, 0) = 0
11842 09:26:25.043206 write(28, "\33[?25l\33[1;1H\33[?12l\33[?25h", 24) = 24
11791 09:26:25.043274 stat("/etc/localtime",  <unfinished ...>
11842 09:26:25.043285 epoll_wait(24, [], 1024, 0) = 0
11791 09:26:25.043300 <... stat resumed> {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11842 09:26:25.043309 epoll_wait(16,  <unfinished ...>
11791 09:26:25.043377 write(4, "2016-09-21 09:26:25,043 [DEBUG @"..., 95) = 95
11791 09:26:25.043497 stat("/etc/localtime",  <unfinished ...>
11873 09:26:25.043513 <... select resumed> ) = 0 (Timeout)
11791 09:26:25.043529 <... stat resumed> {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11873 09:26:25.043546 futex(0x7fc92fd13764, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 33, {1474442785, 48529000}, ffffffff <unfinished ...>
11791 09:26:25.043586 futex(0x7fc92fd13764, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fc92fd13760, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
11873 09:26:25.043643 <... futex resumed> ) = 0
11791 09:26:25.043655 <... futex resumed> ) = 1
11873 09:26:25.043696 futex(0x7fc92fd13720, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
11791 09:26:25.043734 futex(0x7fc92fd13720, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
11873 09:26:25.043772 <... futex resumed> ) = -1 EAGAIN (Resource temporarily unavailable)
11791 09:26:25.043858 <... futex resumed> ) = 0
11873 09:26:25.044015 futex(0x7fc92fd13720, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
11791 09:26:25.044090 write(4, "2016-09-21 09:26:25,043 [DEBUG @"..., 147 <unfinished ...>
11873 09:26:25.044168 <... futex resumed> ) = 0
11791 09:26:25.044221 <... write resumed> ) = 147
11873 09:26:25.044366 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.044770 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11791 09:26:25.044839 stat("/etc/localtime",  <unfinished ...>
11874 09:26:25.044960 futex(0x7fc92fd13764, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 35, {1474442785, 49844000}, ffffffff <unfinished ...>
11791 09:26:25.045051 <... stat resumed> {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.045538 futex(0x7fc92fd13764, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fc92fd13760, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
11874 09:26:25.045636 <... futex resumed> ) = 0
11874 09:26:25.045681 futex(0x7fc92fd13720, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
11791 09:26:25.045708 write(4, "2016-09-21 09:26:25,044 [DEBUG @"..., 142 <unfinished ...>
11874 09:26:25.045743 <... futex resumed> ) = 0
11791 09:26:25.045775 <... write resumed> ) = 142
11791 09:26:25.045847 futex(0x7fc92fd13764, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 37, {1474442785, 50825000}, ffffffff <unfinished ...>
11874 09:26:25.046060 futex(0x7fc92fd13764, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fc92fd13760, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
11791 09:26:25.046155 <... futex resumed> ) = 0
11874 09:26:25.046183 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 56148000}, ffffffff <unfinished ...>
11791 09:26:25.046455 futex(0x7fc92fd13720, FUTEX_WAKE_PRIVATE, 1) = 0
11791 09:26:25.047050 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.047530 write(4, "2016-09-21 09:26:25,046 [DEBUG @"..., 165) = 165
11791 09:26:25.048475 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.048766 write(4, "2016-09-21 09:26:25,048 [DEBUG @"..., 182) = 182
11791 09:26:25.049153 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.049414 write(4, "2016-09-21 09:26:25,048 [DEBUG @"..., 192) = 192
11791 09:26:25.049675 write(1, "\224\0\16\261vim_call_function\222\243map\222\222\244tag"..., 86 <unfinished ...>
11746 09:26:25.049864 <... epoll_wait resumed> [{EPOLLIN, {u32=19, u64=19}}], 1024, 4000) = 1
11746 09:26:25.050019 read(19, "\224\0\16\261vim_call_function\222\243map\222\222\244tag"..., 64900) = 86
11746 09:26:25.050435 getcwd("/home/user/.dotfiles/vim/neobundles/deoplete", 4096) = 47
11746 09:26:25.050708 stat("/home/user/.dotfiles/vim/neobundles/deoplete/tags",  <unfinished ...>
11791 09:26:25.050769 <... write resumed> ) = 86
11746 09:26:25.050802 <... stat resumed> {st_mode=S_IFREG|0644, st_size=28278, ...}) = 0
11746 09:26:25.050909 stat("/home/user/.dotfiles/tags", {st_mode=S_IFREG|0644, st_size=19038365, ...}) = 0
11746 09:26:25.051047 write(17, "\224\1\16\300\222\3313/home/user/.dotfiles/vi"..., 86) = 86
11746 09:26:25.051211 write(22, "\1\0\0\0\0\0\0\0", 8 <unfinished ...>
11791 09:26:25.051254 stat("/etc/localtime",  <unfinished ...>
11746 09:26:25.051309 <... write resumed> ) = 8
11842 09:26:25.051361 <... epoll_wait resumed> [{EPOLLIN, {u32=22, u64=22}}], 1024, -1) = 1
11746 09:26:25.051412 epoll_wait(10,  <unfinished ...>
11842 09:26:25.051450 read(22,  <unfinished ...>
11746 09:26:25.051478 <... epoll_wait resumed> [], 1024, 0) = 0
11842 09:26:25.051501 <... read resumed> "\1\0\0\0\0\0\0\0", 1024) = 8
11746 09:26:25.051550 epoll_wait(10,  <unfinished ...>
11791 09:26:25.051588 <... stat resumed> {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11842 09:26:25.051640 write(28, "\33[?25l\33[1;1H\33[?12l\33[?25h", 24) = 24
11842 09:26:25.051853 epoll_wait(24, [], 1024, 0) = 0
11842 09:26:25.051943 write(28, "\33[?25l\33[1;1H\33[?12l\33[?25h", 24 <unfinished ...>
11791 09:26:25.051991 write(4, "2016-09-21 09:26:25,050 [DEBUG @"..., 164 <unfinished ...>
11842 09:26:25.052064 <... write resumed> ) = 24
11842 09:26:25.052332 epoll_wait(24,  <unfinished ...>
11791 09:26:25.052384 <... write resumed> ) = 164
11842 09:26:25.052413 <... epoll_wait resumed> [], 1024, 0) = 0
11842 09:26:25.052484 epoll_wait(16,  <unfinished ...>
11791 09:26:25.053980 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.054389 write(4, "2016-09-21 09:26:25,052 [DEBUG @"..., 95) = 95
11873 09:26:25.054510 <... select resumed> ) = 0 (Timeout)
11791 09:26:25.054520 stat("/etc/localtime",  <unfinished ...>
11873 09:26:25.054532 futex(0x7fc92fd13764, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 39, {1474442785, 59520000}, ffffffff <unfinished ...>
11791 09:26:25.054545 <... stat resumed> {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.054596 futex(0x7fc92fd13764, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fc92fd13760, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
11873 09:26:25.054625 <... futex resumed> ) = 0
11791 09:26:25.054632 <... futex resumed> ) = 1
11873 09:26:25.054641 futex(0x7fc92fd13720, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
11791 09:26:25.054659 futex(0x7fc92fd13720, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
11873 09:26:25.054690 <... futex resumed> ) = 0
11791 09:26:25.054698 <... futex resumed> ) = 1
11873 09:26:25.054710 futex(0x7fc92fd13720, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
11791 09:26:25.054723 write(4, "2016-09-21 09:26:25,054 [DEBUG @"..., 100 <unfinished ...>
11873 09:26:25.054740 <... futex resumed> ) = 0
11791 09:26:25.054751 <... write resumed> ) = 100
11873 09:26:25.054793 futex(0x7fc92fd13764, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fc92fd13760, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
11791 09:26:25.054803 futex(0x7fc92fd13764, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 41, {1474442785, 59760000}, ffffffff <unfinished ...>
11873 09:26:25.054814 <... futex resumed> ) = 0
11873 09:26:25.054829 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11791 09:26:25.054838 <... futex resumed> ) = -1 EAGAIN (Resource temporarily unavailable)
11791 09:26:25.054859 futex(0x7fc92fd13720, FUTEX_WAKE_PRIVATE, 1) = 0
11791 09:26:25.054915 epoll_wait(5, [{EPOLLIN, {u32=0, u64=18045263999896911872}}], 3, -1000) = 1
11791 09:26:25.054989 read(0, "\224\1\16\300\222\3313/home/user/.dotfiles/vi"..., 262144) = 86
11791 09:26:25.055086 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.055148 write(4, "2016-09-21 09:26:25,055 [DEBUG @"..., 95) = 95
11791 09:26:25.055260 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.055327 write(4, "2016-09-21 09:26:25,055 [DEBUG @"..., 194) = 194
11791 09:26:25.055424 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.055481 write(4, "2016-09-21 09:26:25,055 [DEBUG @"..., 189) = 189
11791 09:26:25.055568 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.055622 write(4, "2016-09-21 09:26:25,055 [DEBUG @"..., 165) = 165
11791 09:26:25.055705 stat("/home/user/.dotfiles/vim/neobundles/deoplete/tags", {st_mode=S_IFREG|0644, st_size=28278, ...}) = 0
11791 09:26:25.055747 stat("/home/user/.dotfiles/vim/neobundles/deoplete/tags", {st_mode=S_IFREG|0644, st_size=28278, ...}) = 0
11791 09:26:25.055795 stat("/home/user/.dotfiles/tags", {st_mode=S_IFREG|0644, st_size=19038365, ...}) = 0
11791 09:26:25.055833 stat("/home/user/.dotfiles/tags", {st_mode=S_IFREG|0644, st_size=19038365, ...}) = 0
11791 09:26:25.055875 stat("/home/user/.dotfiles/vim/neobundles/deoplete/tags", {st_mode=S_IFREG|0644, st_size=28278, ...}) = 0
11791 09:26:25.055922 open("/home/user/.dotfiles/vim/neobundles/deoplete/tags", O_RDONLY|O_CLOEXEC) = 9
11791 09:26:25.055967 fstat(9, {st_mode=S_IFREG|0644, st_size=28278, ...}) = 0
11791 09:26:25.055998 ioctl(9, TCGETS, 0x7fff893e1310) = -1 ENOTTY (Inappropriate ioctl for device)
11791 09:26:25.056043 lseek(9, 0, SEEK_CUR) = 0
11791 09:26:25.056085 ioctl(9, TCGETS, 0x7fff893e12c0) = -1 ENOTTY (Inappropriate ioctl for device)
11874 09:26:25.056560 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11791 09:26:25.056642 lseek(9, 0, SEEK_CUR) = 0
11791 09:26:25.056834 futex(0x7fc92fd13764, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 43, {1474442785, 61794000}, ffffffff <unfinished ...>
11874 09:26:25.057026 futex(0x7fc92fd13764, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fc92fd13760, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
11791 09:26:25.057144 <... futex resumed> ) = 0
11874 09:26:25.057190 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 67140000}, ffffffff <unfinished ...>
11791 09:26:25.057315 futex(0x7fc92fd13720, FUTEX_WAKE_PRIVATE, 1) = 0
11791 09:26:25.057512 read(9, "!_TAG_FILE_FORMAT\t2\t/extended fo"..., 8192) = 8192
11791 09:26:25.057705 read(9, "n\tclass:LoggingMixin\ndebug\trplug"..., 8192) = 8192
11791 09:26:25.057913 read(9, "ython3/deoplete/filter/matcher_f"..., 8192) = 8192
11791 09:26:25.058112 read(9, "d/deoplete/handler.vim\t/^functio"..., 8192) = 3702
11791 09:26:25.058214 read(9, "", 8192) = 0
11791 09:26:25.058293 close(9)          = 0
11791 09:26:25.058384 stat("", 0x7fff893e0fd0) = -1 ENOENT (No such file or directory)
11791 09:26:25.058529 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.058605 write(4, "2016-09-21 09:26:25,058 [DEBUG @"..., 138) = 138
11791 09:26:25.058703 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.058766 write(4, "2016-09-21 09:26:25,058 [DEBUG @"..., 135) = 135
11791 09:26:25.058862 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.058920 write(4, "2016-09-21 09:26:25,058 [DEBUG @"..., 95) = 95
11791 09:26:25.058999 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2335, ...}) = 0
11791 09:26:25.059055 write(4, "2016-09-21 09:26:25,058 [DEBUG @"..., 100) = 100
11791 09:26:25.059111 epoll_wait(5,  <unfinished ...>
11873 09:26:25.065009 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.065344 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.067310 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.067651 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 77612000}, ffffffff <unfinished ...>
11873 09:26:25.075523 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.075590 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.077726 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.078072 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 88034000}, ffffffff <unfinished ...>
11873 09:26:25.085791 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.086118 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.088118 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.088178 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 98168000}, ffffffff <unfinished ...>
11873 09:26:25.096375 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.096830 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.098376 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.098840 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 108780000}, ffffffff <unfinished ...>
11873 09:26:25.107257 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.107323 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.108876 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.108943 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 118933000}, ffffffff <unfinished ...>
11873 09:26:25.117522 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.117863 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.119073 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.119395 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 129344000}, ffffffff <unfinished ...>
11873 09:26:25.128156 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.128545 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.129436 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.129878 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 139821000}, ffffffff <unfinished ...>
11873 09:26:25.138726 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.138792 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.139892 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.140027 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 150009000}, ffffffff <unfinished ...>
11873 09:26:25.148944 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.149223 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.150185 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.150555 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 160502000}, ffffffff <unfinished ...>
11873 09:26:25.159417 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.159482 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.160630 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.160969 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 170943000}, ffffffff <unfinished ...>
11873 09:26:25.169661 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.170108 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.171037 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.171168 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 181150000}, ffffffff <unfinished ...>
11873 09:26:25.180556 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.181010 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.181286 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.181619 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 191574000}, ffffffff <unfinished ...>
11873 09:26:25.191240 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.191346 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.191663 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.191781 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 201763000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.201941 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 211934000}, ffffffff <unfinished ...>
11873 09:26:25.201981 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.202068 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.212097 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.212584 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 222526000}, ffffffff <unfinished ...>
11873 09:26:25.216316 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.216416 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.222614 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.222831 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 232819000}, ffffffff <unfinished ...>
11873 09:26:25.228184 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.228746 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.234083 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.234926 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 244843000}, ffffffff <unfinished ...>
11873 09:26:25.239262 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.239345 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.245020 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.245511 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 255469000}, ffffffff <unfinished ...>
11873 09:26:25.249547 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.250123 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.255590 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.255714 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 265697000}, ffffffff <unfinished ...>
11873 09:26:25.260440 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.260958 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.265827 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.266288 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 276248000}, ffffffff <unfinished ...>
11873 09:26:25.271177 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.271245 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.276336 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.276465 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 286445000}, ffffffff <unfinished ...>
11873 09:26:25.281453 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.281770 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.286622 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.287044 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 296960000}, ffffffff <unfinished ...>
11873 09:26:25.292010 <... select resumed> ) = 0 (Timeout)
11873 09:26:25.292109 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:25.297051 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:25.297165 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442785, 307155000}, ffffffff <unfinished ...>
…
11873 09:26:41.654383 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11874 09:26:41.663552 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
11874 09:26:41.663647 futex(0x7fc91c000b10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1474442801, 673635000}, ffffffff <unfinished ...>
11873 09:26:41.664544 <... select resumed> ) = 0 (Timeout)
11873 09:26:41.664634 select(0, NULL, NULL, NULL, {0, 10000} <unfinished ...>
11842 09:26:41.667433 <... epoll_wait resumed> [{EPOLLIN, {u32=0, u64=0}}], 1024, -1) = 1
11842 09:26:41.667462 read(0, "\r", 4095) = 1
11842 09:26:41.667507 write(13, "\1\0\0\0\0\0\0\0", 8) = 8
11746 09:26:41.667543 <... epoll_wait resumed> [{EPOLLIN, {u32=13, u64=13}}], 1024, 4000) = 1
11842 09:26:41.667568 futex(0x7f2d9822371c, FUTEX_WAIT_PRIVATE, 55, NULL <unfinished ...>
11746 09:26:41.667580 read(13, "\1\0\0\0\0\0\0\0", 1024) = 8
11746 09:26:41.667616 futex(0x7f2d9822371c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7f2d98223718, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
11842 09:26:41.667644 <... futex resumed> ) = 0
11746 09:26:41.667654 epoll_wait(10,  <unfinished ...>
11842 09:26:41.667668 futex(0x7f2d982236f0, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
11746 09:26:41.667679 <... epoll_wait resumed> [], 1024, 0) = 0
11842 09:26:41.667686 <... futex resumed> ) = 0
11746 09:26:41.667692 write(22, "\1\0\0\0\0\0\0\0", 8 <unfinished ...>
11842 09:26:41.667702 epoll_wait(16,  <unfinished ...>
11746 09:26:41.667708 <... write resumed> ) = 8
11842 09:26:41.667716 <... epoll_wait resumed> [{EPOLLIN, {u32=22, u64=22}}], 1024, -1) = 1
11746 09:26:41.667727 epoll_wait(10,  <unfinished ...>
11842 09:26:41.667736 read(22,  <unfinished ...>
11746 09:26:41.667742 <... epoll_wait resumed> [], 1024, 0) = 0
11746 09:26:41.667777 open("/home/user/.local/share/nvim/shada/main.shada", O_RDONLY|O_CLOEXEC <unfinished ...>
11842 09:26:41.667792 <... read resumed> "\1\0\0\0\0\0\0\0", 1024) = 8
11746 09:26:41.667805 <... open resumed> ) = 30
11842 09:26:41.667822 write(28, "\33[?25l\33[52;3H\33[?12l\33[?25h", 25 <unfinished ...>
11746 09:26:41.667835 stat("/home/user/.local/share/nvim/shada/main.shada",  <unfinished ...>
…
11866 09:26:42.035647 exit_group(0)     = ?
11866 09:26:42.036820 +++ exited with 0 +++

nvim-log_11791:

016-09-21 09:26:25,052 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,054 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:25,055 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,055 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 14, None, [b'/home/user/.dotfiles/vim/neobundles/deoplete/tags', b'/home/user/.dotfiles/tag
2016-09-21 09:26:25,055 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, [b'/home/user/.dotfiles/vim/neobundles/deoplete/tags', b'/home/user/.dotfiles/tags']
2016-09-21 09:26:25,055 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:25,058 [DEBUG @ session.py:handler:208] 11791 - greenlet <greenlet.greenlet object at 0x7fc929b6b470> finished executing
2016-09-21 09:26:25,058 [DEBUG @ session.py:handler:213] 11791 - greenlet <greenlet.greenlet object at 0x7fc929b6b470> is now dying...
2016-09-21 09:26:25,058 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,058 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:41,865 [DEBUG @ base.py:_on_error:166] 11791 - EOF
2016-09-21 09:26:41,866 [DEBUG @ base.py:stop:149] 11791 - Stopped event loop
2016-09-21 09:26:41,870 [DEBUG @ base.py:run:140] 11791 - Exited event loop

Full nvim-log:

2016-09-21 09:26:00,925 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 1, b'vim_get_api_info', ()]
2016-09-21 09:26:00,925 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x01\xb0vim_get_api_info\x90''
2016-09-21 09:26:00,926 [DEBUG @ base.py:run:138] 11791 - Entering event loop
2016-09-21 09:26:00,926 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:00,927 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [0, 1, b'poll', []]
2016-09-21 09:26:00,928 [DEBUG @ async_session.py:_on_request:86] 11791 - received request: b'poll', []
2016-09-21 09:26:00,928 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:00,928 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:00,929 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:00,932 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 1, None, [1, {b'functions': [{b'name': b'nvim_buf_line_count', b'parameters': [[b'Buffer', b'buffer']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'buffer_get_line', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'index']], b'return_type': b'String', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'buffer_set_line', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'index'], [b'String', b'line']], b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'buffer_del_line', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'index']], b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'buffer_get_line_slice', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'include_start'], [b'Boolean', b'include_end']], b'return_type': b'ArrayOf(String)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_buf_get_lines', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'strict_indexing']], b'receives_channel_id': True, b'return_type': b'ArrayOf(String)', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'buffer_set_line_slice', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'include_start'], [b'Boolean', b'include_end'], [b'ArrayOf(String)', b'replacement']], b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_buf_set_lines', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'strict_indexing'], [b'ArrayOf(String)', b'replacement']], b'receives_channel_id': True, b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_get_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_set_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_del_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'buffer_set_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'buffer_del_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_buf_get_option', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_set_option', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_get_number', b'parameters': [[b'Buffer', b'buffer']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_get_name', b'parameters': [[b'Buffer', b'buffer']], b'return_type': b'String', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_set_name', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'return_type': b'Boolean', b'name': b'nvim_buf_is_valid', b'parameters': [[b'Buffer', b'buffer']], b'async': False, b'method': True}, {b'name': b'buffer_insert', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'lnum'], [b'ArrayOf(String)', b'lines']], b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_buf_get_mark', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'ArrayOf(Integer, 2)', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_add_highlight', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'src_id'], [b'String', b'hl_group'], [b'Integer', b'line'], [b'Integer', b'col_start'], [b'Integer', b'col_end']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_clear_highlight', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'src_id'], [b'Integer', b'line_start'], [b'Integer', b'line_end']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_tabpage_list_wins', b'parameters': [[b'Tabpage', b'tabpage']], b'return_type': b'ArrayOf(Window)', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_tabpage_get_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_tabpage_set_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_tabpage_del_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'tabpage_set_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'tabpage_del_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_tabpage_get_win', b'parameters': [[b'Tabpage', b'tabpage']], b'return_type': b'Window', b'can_fail': True, b'async': False, b'method': True}, {b'return_type': b'Boolean', b'name': b'nvim_tabpage_is_valid', b'parameters': [[b'Tabpage', b'tabpage']], b'async': False, b'method': True}, {b'name': b'nvim_ui_attach', b'parameters': [[b'Integer', b'width'], [b'Integer', b'height'], [b'Dictionary', b'options']], b'receives_channel_id': True, b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'ui_attach', b'parameters': [[b'Integer', b'width'], [b'Integer', b'height'], [b'Boolean', b'enable_rgb']], b'receives_channel_id': True, b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_ui_detach', b'parameters': [], b'receives_channel_id': True, b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_ui_try_resize', b'parameters': [[b'Integer', b'width'], [b'Integer', b'height']], b'receives_channel_id': True, b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_ui_set_option', b'parameters': [[b'String', b'name'], [b'Object', b'value']], b'receives_channel_id': True, b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_command', b'parameters': [[b'String', b'str']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'return_type': b'void', b'name': b'nvim_feedkeys', b'parameters': [[b'String', b'keys'], [b'String', b'mode'], [b'Boolean', b'escape_csi']], b'async': False, b'method': False}, {b'return_type': b'Integer', b'name': b'nvim_input', b'parameters': [[b'String', b'keys']], b'async': True, b'method': False}, {b'return_type': b'String', b'name': b'nvim_replace_termcodes', b'parameters': [[b'String', b'str'], [b'Boolean', b'from_part'], [b'Boolean', b'do_lt'], [b'Boolean', b'special']], b'async': False, b'method': False}, {b'name': b'nvim_command_output', b'parameters': [[b'String', b'str']], b'return_type': b'String', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_eval', b'parameters': [[b'String', b'str']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_call_function', b'parameters': [[b'String', b'fname'], [b'Array', b'args']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_strwidth', b'parameters': [[b'String', b'str']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': False}, {b'return_type': b'ArrayOf(String)', b'name': b'nvim_list_runtime_paths', b'parameters': [], b'async': False, b'method': False}, {b'name': b'nvim_set_current_dir', b'parameters': [[b'String', b'dir']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_get_current_line', b'parameters': [], b'return_type': b'String', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_set_current_line', b'parameters': [[b'String', b'line']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_del_current_line', b'parameters': [], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_get_var', b'parameters': [[b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_set_var', b'parameters': [[b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_del_var', b'parameters': [[b'String', b'name']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'vim_set_var', b'parameters': [[b'String', b'name'], [b'Object', b'value']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_del_var', b'parameters': [[b'String', b'name']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_get_vvar', b'parameters': [[b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_get_option', b'parameters': [[b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_set_option', b'parameters': [[b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'return_type': b'void', b'name': b'nvim_out_write', b'parameters': [[b'String', b'str']], b'async': False, b'method': False}, {b'return_type': b'void', b'name': b'nvim_err_write', b'parameters': [[b'String', b'str']], b'async': False, b'method': False}, {b'return_type': b'void', b'name': b'nvim_err_writeln', b'parameters': [[b'String', b'str']], b'async': False, b'method': False}, {b'return_type': b'ArrayOf(Buffer)', b'name': b'nvim_list_bufs', b'parameters': [], b'async': False, b'method': False}, {b'return_type': b'Buffer', b'name': b'nvim_get_current_buf', b'parameters': [], b'async': False, b'method': False}, {b'name': b'nvim_set_current_buf', b'parameters': [[b'Buffer', b'buffer']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'return_type': b'ArrayOf(Window)', b'name': b'nvim_list_wins', b'parameters': [], b'async': False, b'method': False}, {b'return_type': b'Window', b'name': b'nvim_get_current_win', b'parameters': [], b'async': False, b'method': False}, {b'name': b'nvim_set_current_win', b'parameters': [[b'Window', b'window']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'return_type': b'ArrayOf(Tabpage)', b'name': b'nvim_list_tabpages', b'parameters': [], b'async': False, b'method': False}, {b'return_type': b'Tabpage', b'name': b'nvim_get_current_tabpage', b'parameters': [], b'async': False, b'method': False}, {b'name': b'nvim_set_current_tabpage', b'parameters': [[b'Tabpage', b'tabpage']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_subscribe', b'parameters': [[b'String', b'event']], b'receives_channel_id': True, b'return_type': b'void', b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_unsubscribe', b'parameters': [[b'String', b'event']], b'receives_channel_id': True, b'return_type': b'void', b'async': False, b'method': False, b'noeval': True}, {b'return_type': b'Integer', b'name': b'nvim_get_color_by_name', b'parameters': [[b'String', b'name']], b'async': False, b'method': False}, {b'return_type': b'Dictionary', b'name': b'nvim_get_color_map', b'parameters': [], b'async': False, b'method': False}, {b'name': b'nvim_get_api_info', b'parameters': [], b'receives_channel_id': True, b'return_type': b'Array', b'async': True, b'method': False, b'noeval': True}, {b'name': b'nvim_win_get_buf', b'parameters': [[b'Window', b'window']], b'return_type': b'Buffer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_cursor', b'parameters': [[b'Window', b'window']], b'return_type': b'ArrayOf(Integer, 2)', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_set_cursor', b'parameters': [[b'Window', b'window'], [b'ArrayOf(Integer, 2)', b'pos']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_height', b'parameters': [[b'Window', b'window']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_set_height', b'parameters': [[b'Window', b'window'], [b'Integer', b'height']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_width', b'parameters': [[b'Window', b'window']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_set_width', b'parameters': [[b'Window', b'window'], [b'Integer', b'width']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_var', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_set_var', b'parameters': [[b'Window', b'window'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_del_var', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'window_set_var', b'parameters': [[b'Window', b'window'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'window_del_var', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_win_get_option', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_set_option', b'parameters': [[b'Window', b'window'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_position', b'parameters': [[b'Window', b'window']], b'return_type': b'ArrayOf(Integer, 2)', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_tabpage', b'parameters': [[b'Window', b'window']], b'return_type': b'Tabpage', b'can_fail': True, b'async': False, b'method': True}, {b'return_type': b'Boolean', b'name': b'nvim_win_is_valid', b'parameters': [[b'Window', b'window']], b'async': False, b'method': True}, {b'name': b'buffer_line_count', b'parameters': [[b'Buffer', b'buffer']], b'impl_name': b'nvim_buf_line_count', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_lines', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'strict_indexing']], b'receives_channel_id': True, b'impl_name': b'nvim_buf_get_lines', b'return_type': b'ArrayOf(String)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_set_lines', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'strict_indexing'], [b'ArrayOf(String)', b'replacement']], b'receives_channel_id': True, b'impl_name': b'nvim_buf_set_lines', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'impl_name': b'nvim_buf_get_var', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_option', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'impl_name': b'nvim_buf_get_option', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_set_option', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name'], [b'Object', b'value']], b'impl_name': b'nvim_buf_set_option', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_number', b'parameters': [[b'Buffer', b'buffer']], b'impl_name': b'nvim_buf_get_number', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_name', b'parameters': [[b'Buffer', b'buffer']], b'impl_name': b'nvim_buf_get_name', b'return_type': b'String', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_set_name', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'impl_name': b'nvim_buf_set_name', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_is_valid', b'parameters': [[b'Buffer', b'buffer']], b'impl_name': b'nvim_buf_is_valid', b'return_type': b'Boolean', b'deprecated_since': 1, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_mark', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'impl_name': b'nvim_buf_get_mark', b'return_type': b'ArrayOf(Integer, 2)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_add_highlight', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'src_id'], [b'String', b'hl_group'], [b'Integer', b'line'], [b'Integer', b'col_start'], [b'Integer', b'col_end']], b'impl_name': b'nvim_buf_add_highlight', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_clear_highlight', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'src_id'], [b'Integer', b'line_start'], [b'Integer', b'line_end']], b'impl_name': b'nvim_buf_clear_highlight', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'tabpage_get_windows', b'parameters': [[b'Tabpage', b'tabpage']], b'impl_name': b'nvim_tabpage_list_wins', b'return_type': b'ArrayOf(Window)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'tabpage_get_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name']], b'impl_name': b'nvim_tabpage_get_var', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'tabpage_get_window', b'parameters': [[b'Tabpage', b'tabpage']], b'impl_name': b'nvim_tabpage_get_win', b'return_type': b'Window', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'tabpage_is_valid', b'parameters': [[b'Tabpage', b'tabpage']], b'impl_name': b'nvim_tabpage_is_valid', b'return_type': b'Boolean', b'deprecated_since': 1, b'async': False, b'method': True, b'noeval': True}, {b'name': b'ui_detach', b'parameters': [], b'receives_channel_id': True, b'impl_name': b'nvim_ui_detach', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'ui_try_resize', b'parameters': [[b'Integer', b'width'], [b'Integer', b'height']], b'receives_channel_id': True, b'impl_name': b'nvim_ui_try_resize', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_command', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_command', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_feedkeys', b'parameters': [[b'String', b'keys'], [b'String', b'mode'], [b'Boolean', b'escape_csi']], b'impl_name': b'nvim_feedkeys', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_input', b'parameters': [[b'String', b'keys']], b'impl_name': b'nvim_input', b'return_type': b'Integer', b'deprecated_since': 1, b'async': True, b'method': False, b'noeval': True}, {b'name': b'vim_replace_termcodes', b'parameters': [[b'String', b'str'], [b'Boolean', b'from_part'], [b'Boolean', b'do_lt'], [b'Boolean', b'special']], b'impl_name': b'nvim_replace_termcodes', b'return_type': b'String', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_command_output', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_command_output', b'return_type': b'String', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_eval', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_eval', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_call_function', b'parameters': [[b'String', b'fname'], [b'Array', b'args']], b'impl_name': b'nvim_call_function', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_strwidth', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_strwidth', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_list_runtime_paths', b'parameters': [], b'impl_name': b'nvim_list_runtime_paths', b'return_type': b'ArrayOf(String)', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_change_directory', b'parameters': [[b'String', b'dir']], b'impl_name': b'nvim_set_current_dir', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_current_line', b'parameters': [], b'impl_name': b'nvim_get_current_line', b'return_type': b'String', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_set_current_line', b'parameters': [[b'String', b'line']], b'impl_name': b'nvim_set_current_line', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_del_current_line', b'parameters': [], b'impl_name': b'nvim_del_current_line', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_var', b'parameters': [[b'String', b'name']], b'impl_name': b'nvim_get_var', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_vvar', b'parameters': [[b'String', b'name']], b'impl_name': b'nvim_get_vvar', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_option', b'parameters': [[b'String', b'name']], b'impl_name': b'nvim_get_option', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_set_option', b'parameters': [[b'String', b'name'], [b'Object', b'value']], b'impl_name': b'nvim_set_option', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_out_write', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_out_write', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_err_write', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_err_write', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_report_error', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_err_writeln', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_buffers', b'parameters': [], b'impl_name': b'nvim_list_bufs', b'return_type': b'ArrayOf(Buffer)', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_current_buffer', b'parameters': [], b'impl_name': b'nvim_get_current_buf', b'return_type': b'Buffer', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_set_current_buffer', b'parameters': [[b'Buffer', b'buffer']], b'impl_name': b'nvim_set_current_buf', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_windows', b'parameters': [], b'impl_name': b'nvim_list_wins', b'return_type': b'ArrayOf(Window)', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_current_window', b'parameters': [], b'impl_name': b'nvim_get_current_win', b'return_type': b'Window', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_set_current_window', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_set_current_win', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_tabpages', b'parameters': [], b'impl_name': b'nvim_list_tabpages', b'return_type': b'ArrayOf(Tabpage)', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_current_tabpage', b'parameters': [], b'impl_name': b'nvim_get_current_tabpage', b'return_type': b'Tabpage', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_set_current_tabpage', b'parameters': [[b'Tabpage', b'tabpage']], b'impl_name': b'nvim_set_current_tabpage', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_subscribe', b'parameters': [[b'String', b'event']], b'receives_channel_id': True, b'impl_name': b'nvim_subscribe', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_unsubscribe', b'parameters': [[b'String', b'event']], b'receives_channel_id': True, b'impl_name': b'nvim_unsubscribe', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_name_to_color', b'parameters': [[b'String', b'name']], b'impl_name': b'nvim_get_color_by_name', b'return_type': b'Integer', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_color_map', b'parameters': [], b'impl_name': b'nvim_get_color_map', b'return_type': b'Dictionary', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_api_info', b'parameters': [], b'receives_channel_id': True, b'impl_name': b'nvim_get_api_info', b'return_type': b'Array', b'deprecated_since': 1, b'async': True, b'method': False, b'noeval': True}, {b'name': b'window_get_buffer', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_buf', b'return_type': b'Buffer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_cursor', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_cursor', b'return_type': b'ArrayOf(Integer, 2)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_set_cursor', b'parameters': [[b'Window', b'window'], [b'ArrayOf(Integer, 2)', b'pos']], b'impl_name': b'nvim_win_set_cursor', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_height', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_height', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_set_height', b'parameters': [[b'Window', b'window'], [b'Integer', b'height']], b'impl_name': b'nvim_win_set_height', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_width', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_width', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_set_width', b'parameters': [[b'Window', b'window'], [b'Integer', b'width']], b'impl_name': b'nvim_win_set_width', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_var', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'impl_name': b'nvim_win_get_var', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_option', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'impl_name': b'nvim_win_get_option', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_set_option', b'parameters': [[b'Window', b'window'], [b'String', b'name'], [b'Object', b'value']], b'impl_name': b'nvim_win_set_option', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_position', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_position', b'return_type': b'ArrayOf(Integer, 2)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_tabpage', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_tabpage', b'return_type': b'Tabpage', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_is_valid', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_is_valid', b'return_type': b'Boolean', b'deprecated_since': 1, b'async': False, b'method': True, b'noeval': True}], b'error_types': {b'Validation': {b'id': 1}, b'Exception': {b'id': 0}}, b'types': {b'Tabpage': {b'id': 2, b'prefix': b'nvim_tabpage_'}, b'Buffer': {b'id': 0, b'prefix': b'nvim_buf_'}, b'Window': {b'id': 1, b'prefix': b'nvim_win_'}}}]]
2016-09-21 09:26:00,934 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, [1, {b'functions': [{b'name': b'nvim_buf_line_count', b'parameters': [[b'Buffer', b'buffer']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'buffer_get_line', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'index']], b'return_type': b'String', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'buffer_set_line', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'index'], [b'String', b'line']], b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'buffer_del_line', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'index']], b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'buffer_get_line_slice', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'include_start'], [b'Boolean', b'include_end']], b'return_type': b'ArrayOf(String)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_buf_get_lines', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'strict_indexing']], b'receives_channel_id': True, b'return_type': b'ArrayOf(String)', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'buffer_set_line_slice', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'include_start'], [b'Boolean', b'include_end'], [b'ArrayOf(String)', b'replacement']], b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_buf_set_lines', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'strict_indexing'], [b'ArrayOf(String)', b'replacement']], b'receives_channel_id': True, b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_get_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_set_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_del_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'buffer_set_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'buffer_del_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_buf_get_option', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_set_option', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_get_number', b'parameters': [[b'Buffer', b'buffer']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_get_name', b'parameters': [[b'Buffer', b'buffer']], b'return_type': b'String', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_set_name', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'return_type': b'Boolean', b'name': b'nvim_buf_is_valid', b'parameters': [[b'Buffer', b'buffer']], b'async': False, b'method': True}, {b'name': b'buffer_insert', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'lnum'], [b'ArrayOf(String)', b'lines']], b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_buf_get_mark', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'return_type': b'ArrayOf(Integer, 2)', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_add_highlight', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'src_id'], [b'String', b'hl_group'], [b'Integer', b'line'], [b'Integer', b'col_start'], [b'Integer', b'col_end']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_buf_clear_highlight', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'src_id'], [b'Integer', b'line_start'], [b'Integer', b'line_end']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_tabpage_list_wins', b'parameters': [[b'Tabpage', b'tabpage']], b'return_type': b'ArrayOf(Window)', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_tabpage_get_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_tabpage_set_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_tabpage_del_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'tabpage_set_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'tabpage_del_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_tabpage_get_win', b'parameters': [[b'Tabpage', b'tabpage']], b'return_type': b'Window', b'can_fail': True, b'async': False, b'method': True}, {b'return_type': b'Boolean', b'name': b'nvim_tabpage_is_valid', b'parameters': [[b'Tabpage', b'tabpage']], b'async': False, b'method': True}, {b'name': b'nvim_ui_attach', b'parameters': [[b'Integer', b'width'], [b'Integer', b'height'], [b'Dictionary', b'options']], b'receives_channel_id': True, b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'ui_attach', b'parameters': [[b'Integer', b'width'], [b'Integer', b'height'], [b'Boolean', b'enable_rgb']], b'receives_channel_id': True, b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_ui_detach', b'parameters': [], b'receives_channel_id': True, b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_ui_try_resize', b'parameters': [[b'Integer', b'width'], [b'Integer', b'height']], b'receives_channel_id': True, b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_ui_set_option', b'parameters': [[b'String', b'name'], [b'Object', b'value']], b'receives_channel_id': True, b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_command', b'parameters': [[b'String', b'str']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'return_type': b'void', b'name': b'nvim_feedkeys', b'parameters': [[b'String', b'keys'], [b'String', b'mode'], [b'Boolean', b'escape_csi']], b'async': False, b'method': False}, {b'return_type': b'Integer', b'name': b'nvim_input', b'parameters': [[b'String', b'keys']], b'async': True, b'method': False}, {b'return_type': b'String', b'name': b'nvim_replace_termcodes', b'parameters': [[b'String', b'str'], [b'Boolean', b'from_part'], [b'Boolean', b'do_lt'], [b'Boolean', b'special']], b'async': False, b'method': False}, {b'name': b'nvim_command_output', b'parameters': [[b'String', b'str']], b'return_type': b'String', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_eval', b'parameters': [[b'String', b'str']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_call_function', b'parameters': [[b'String', b'fname'], [b'Array', b'args']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_strwidth', b'parameters': [[b'String', b'str']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': False}, {b'return_type': b'ArrayOf(String)', b'name': b'nvim_list_runtime_paths', b'parameters': [], b'async': False, b'method': False}, {b'name': b'nvim_set_current_dir', b'parameters': [[b'String', b'dir']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_get_current_line', b'parameters': [], b'return_type': b'String', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_set_current_line', b'parameters': [[b'String', b'line']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_del_current_line', b'parameters': [], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_get_var', b'parameters': [[b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_set_var', b'parameters': [[b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_del_var', b'parameters': [[b'String', b'name']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'vim_set_var', b'parameters': [[b'String', b'name'], [b'Object', b'value']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_del_var', b'parameters': [[b'String', b'name']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_get_vvar', b'parameters': [[b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_get_option', b'parameters': [[b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_set_option', b'parameters': [[b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'return_type': b'void', b'name': b'nvim_out_write', b'parameters': [[b'String', b'str']], b'async': False, b'method': False}, {b'return_type': b'void', b'name': b'nvim_err_write', b'parameters': [[b'String', b'str']], b'async': False, b'method': False}, {b'return_type': b'void', b'name': b'nvim_err_writeln', b'parameters': [[b'String', b'str']], b'async': False, b'method': False}, {b'return_type': b'ArrayOf(Buffer)', b'name': b'nvim_list_bufs', b'parameters': [], b'async': False, b'method': False}, {b'return_type': b'Buffer', b'name': b'nvim_get_current_buf', b'parameters': [], b'async': False, b'method': False}, {b'name': b'nvim_set_current_buf', b'parameters': [[b'Buffer', b'buffer']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'return_type': b'ArrayOf(Window)', b'name': b'nvim_list_wins', b'parameters': [], b'async': False, b'method': False}, {b'return_type': b'Window', b'name': b'nvim_get_current_win', b'parameters': [], b'async': False, b'method': False}, {b'name': b'nvim_set_current_win', b'parameters': [[b'Window', b'window']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'return_type': b'ArrayOf(Tabpage)', b'name': b'nvim_list_tabpages', b'parameters': [], b'async': False, b'method': False}, {b'return_type': b'Tabpage', b'name': b'nvim_get_current_tabpage', b'parameters': [], b'async': False, b'method': False}, {b'name': b'nvim_set_current_tabpage', b'parameters': [[b'Tabpage', b'tabpage']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': False}, {b'name': b'nvim_subscribe', b'parameters': [[b'String', b'event']], b'receives_channel_id': True, b'return_type': b'void', b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_unsubscribe', b'parameters': [[b'String', b'event']], b'receives_channel_id': True, b'return_type': b'void', b'async': False, b'method': False, b'noeval': True}, {b'return_type': b'Integer', b'name': b'nvim_get_color_by_name', b'parameters': [[b'String', b'name']], b'async': False, b'method': False}, {b'return_type': b'Dictionary', b'name': b'nvim_get_color_map', b'parameters': [], b'async': False, b'method': False}, {b'name': b'nvim_get_api_info', b'parameters': [], b'receives_channel_id': True, b'return_type': b'Array', b'async': True, b'method': False, b'noeval': True}, {b'name': b'nvim_win_get_buf', b'parameters': [[b'Window', b'window']], b'return_type': b'Buffer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_cursor', b'parameters': [[b'Window', b'window']], b'return_type': b'ArrayOf(Integer, 2)', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_set_cursor', b'parameters': [[b'Window', b'window'], [b'ArrayOf(Integer, 2)', b'pos']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_height', b'parameters': [[b'Window', b'window']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_set_height', b'parameters': [[b'Window', b'window'], [b'Integer', b'height']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_width', b'parameters': [[b'Window', b'window']], b'return_type': b'Integer', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_set_width', b'parameters': [[b'Window', b'window'], [b'Integer', b'width']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_var', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_set_var', b'parameters': [[b'Window', b'window'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_del_var', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'window_set_var', b'parameters': [[b'Window', b'window'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'window_del_var', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'nvim_win_get_option', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'return_type': b'Object', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_set_option', b'parameters': [[b'Window', b'window'], [b'String', b'name'], [b'Object', b'value']], b'return_type': b'void', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_position', b'parameters': [[b'Window', b'window']], b'return_type': b'ArrayOf(Integer, 2)', b'can_fail': True, b'async': False, b'method': True}, {b'name': b'nvim_win_get_tabpage', b'parameters': [[b'Window', b'window']], b'return_type': b'Tabpage', b'can_fail': True, b'async': False, b'method': True}, {b'return_type': b'Boolean', b'name': b'nvim_win_is_valid', b'parameters': [[b'Window', b'window']], b'async': False, b'method': True}, {b'name': b'buffer_line_count', b'parameters': [[b'Buffer', b'buffer']], b'impl_name': b'nvim_buf_line_count', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_lines', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'strict_indexing']], b'receives_channel_id': True, b'impl_name': b'nvim_buf_get_lines', b'return_type': b'ArrayOf(String)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_set_lines', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'start'], [b'Integer', b'end'], [b'Boolean', b'strict_indexing'], [b'ArrayOf(String)', b'replacement']], b'receives_channel_id': True, b'impl_name': b'nvim_buf_set_lines', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_var', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'impl_name': b'nvim_buf_get_var', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_option', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'impl_name': b'nvim_buf_get_option', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_set_option', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name'], [b'Object', b'value']], b'impl_name': b'nvim_buf_set_option', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_number', b'parameters': [[b'Buffer', b'buffer']], b'impl_name': b'nvim_buf_get_number', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_name', b'parameters': [[b'Buffer', b'buffer']], b'impl_name': b'nvim_buf_get_name', b'return_type': b'String', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_set_name', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'impl_name': b'nvim_buf_set_name', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_is_valid', b'parameters': [[b'Buffer', b'buffer']], b'impl_name': b'nvim_buf_is_valid', b'return_type': b'Boolean', b'deprecated_since': 1, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_get_mark', b'parameters': [[b'Buffer', b'buffer'], [b'String', b'name']], b'impl_name': b'nvim_buf_get_mark', b'return_type': b'ArrayOf(Integer, 2)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_add_highlight', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'src_id'], [b'String', b'hl_group'], [b'Integer', b'line'], [b'Integer', b'col_start'], [b'Integer', b'col_end']], b'impl_name': b'nvim_buf_add_highlight', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'buffer_clear_highlight', b'parameters': [[b'Buffer', b'buffer'], [b'Integer', b'src_id'], [b'Integer', b'line_start'], [b'Integer', b'line_end']], b'impl_name': b'nvim_buf_clear_highlight', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'tabpage_get_windows', b'parameters': [[b'Tabpage', b'tabpage']], b'impl_name': b'nvim_tabpage_list_wins', b'return_type': b'ArrayOf(Window)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'tabpage_get_var', b'parameters': [[b'Tabpage', b'tabpage'], [b'String', b'name']], b'impl_name': b'nvim_tabpage_get_var', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'tabpage_get_window', b'parameters': [[b'Tabpage', b'tabpage']], b'impl_name': b'nvim_tabpage_get_win', b'return_type': b'Window', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'tabpage_is_valid', b'parameters': [[b'Tabpage', b'tabpage']], b'impl_name': b'nvim_tabpage_is_valid', b'return_type': b'Boolean', b'deprecated_since': 1, b'async': False, b'method': True, b'noeval': True}, {b'name': b'ui_detach', b'parameters': [], b'receives_channel_id': True, b'impl_name': b'nvim_ui_detach', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'ui_try_resize', b'parameters': [[b'Integer', b'width'], [b'Integer', b'height']], b'receives_channel_id': True, b'impl_name': b'nvim_ui_try_resize', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_command', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_command', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_feedkeys', b'parameters': [[b'String', b'keys'], [b'String', b'mode'], [b'Boolean', b'escape_csi']], b'impl_name': b'nvim_feedkeys', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_input', b'parameters': [[b'String', b'keys']], b'impl_name': b'nvim_input', b'return_type': b'Integer', b'deprecated_since': 1, b'async': True, b'method': False, b'noeval': True}, {b'name': b'vim_replace_termcodes', b'parameters': [[b'String', b'str'], [b'Boolean', b'from_part'], [b'Boolean', b'do_lt'], [b'Boolean', b'special']], b'impl_name': b'nvim_replace_termcodes', b'return_type': b'String', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_command_output', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_command_output', b'return_type': b'String', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_eval', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_eval', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_call_function', b'parameters': [[b'String', b'fname'], [b'Array', b'args']], b'impl_name': b'nvim_call_function', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_strwidth', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_strwidth', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_list_runtime_paths', b'parameters': [], b'impl_name': b'nvim_list_runtime_paths', b'return_type': b'ArrayOf(String)', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_change_directory', b'parameters': [[b'String', b'dir']], b'impl_name': b'nvim_set_current_dir', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_current_line', b'parameters': [], b'impl_name': b'nvim_get_current_line', b'return_type': b'String', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_set_current_line', b'parameters': [[b'String', b'line']], b'impl_name': b'nvim_set_current_line', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_del_current_line', b'parameters': [], b'impl_name': b'nvim_del_current_line', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_var', b'parameters': [[b'String', b'name']], b'impl_name': b'nvim_get_var', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_vvar', b'parameters': [[b'String', b'name']], b'impl_name': b'nvim_get_vvar', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_option', b'parameters': [[b'String', b'name']], b'impl_name': b'nvim_get_option', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_set_option', b'parameters': [[b'String', b'name'], [b'Object', b'value']], b'impl_name': b'nvim_set_option', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_out_write', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_out_write', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_err_write', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_err_write', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_report_error', b'parameters': [[b'String', b'str']], b'impl_name': b'nvim_err_writeln', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_buffers', b'parameters': [], b'impl_name': b'nvim_list_bufs', b'return_type': b'ArrayOf(Buffer)', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_current_buffer', b'parameters': [], b'impl_name': b'nvim_get_current_buf', b'return_type': b'Buffer', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_set_current_buffer', b'parameters': [[b'Buffer', b'buffer']], b'impl_name': b'nvim_set_current_buf', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_windows', b'parameters': [], b'impl_name': b'nvim_list_wins', b'return_type': b'ArrayOf(Window)', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_current_window', b'parameters': [], b'impl_name': b'nvim_get_current_win', b'return_type': b'Window', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_set_current_window', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_set_current_win', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_tabpages', b'parameters': [], b'impl_name': b'nvim_list_tabpages', b'return_type': b'ArrayOf(Tabpage)', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_current_tabpage', b'parameters': [], b'impl_name': b'nvim_get_current_tabpage', b'return_type': b'Tabpage', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_set_current_tabpage', b'parameters': [[b'Tabpage', b'tabpage']], b'impl_name': b'nvim_set_current_tabpage', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_subscribe', b'parameters': [[b'String', b'event']], b'receives_channel_id': True, b'impl_name': b'nvim_subscribe', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_unsubscribe', b'parameters': [[b'String', b'event']], b'receives_channel_id': True, b'impl_name': b'nvim_unsubscribe', b'return_type': b'void', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_name_to_color', b'parameters': [[b'String', b'name']], b'impl_name': b'nvim_get_color_by_name', b'return_type': b'Integer', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_color_map', b'parameters': [], b'impl_name': b'nvim_get_color_map', b'return_type': b'Dictionary', b'deprecated_since': 1, b'async': False, b'method': False, b'noeval': True}, {b'name': b'vim_get_api_info', b'parameters': [], b'receives_channel_id': True, b'impl_name': b'nvim_get_api_info', b'return_type': b'Array', b'deprecated_since': 1, b'async': True, b'method': False, b'noeval': True}, {b'name': b'window_get_buffer', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_buf', b'return_type': b'Buffer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_cursor', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_cursor', b'return_type': b'ArrayOf(Integer, 2)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_set_cursor', b'parameters': [[b'Window', b'window'], [b'ArrayOf(Integer, 2)', b'pos']], b'impl_name': b'nvim_win_set_cursor', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_height', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_height', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_set_height', b'parameters': [[b'Window', b'window'], [b'Integer', b'height']], b'impl_name': b'nvim_win_set_height', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_width', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_width', b'return_type': b'Integer', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_set_width', b'parameters': [[b'Window', b'window'], [b'Integer', b'width']], b'impl_name': b'nvim_win_set_width', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_var', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'impl_name': b'nvim_win_get_var', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_option', b'parameters': [[b'Window', b'window'], [b'String', b'name']], b'impl_name': b'nvim_win_get_option', b'return_type': b'Object', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_set_option', b'parameters': [[b'Window', b'window'], [b'String', b'name'], [b'Object', b'value']], b'impl_name': b'nvim_win_set_option', b'return_type': b'void', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_position', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_position', b'return_type': b'ArrayOf(Integer, 2)', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_get_tabpage', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_get_tabpage', b'return_type': b'Tabpage', b'deprecated_since': 1, b'can_fail': True, b'async': False, b'method': True, b'noeval': True}, {b'name': b'window_is_valid', b'parameters': [[b'Window', b'window']], b'impl_name': b'nvim_win_is_valid', b'return_type': b'Boolean', b'deprecated_since': 1, b'async': False, b'method': True, b'noeval': True}], b'error_types': {b'Validation': {b'id': 1}, b'Exception': {b'id': 0}}, b'types': {b'Tabpage': {b'id': 2, b'prefix': b'nvim_tabpage_'}, b'Buffer': {b'id': 0, b'prefix': b'nvim_buf_'}, b'Window': {b'id': 1, b'prefix': b'nvim_win_'}}}]
2016-09-21 09:26:00,936 [DEBUG @ base.py:stop:149] 11791 - Stopped event loop
2016-09-21 09:26:00,937 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:00,938 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:00,939 [DEBUG @ base.py:run:140] 11791 - Exited event loop
2016-09-21 09:26:00,974 [DEBUG @ session.py:_on_request:201] 11791 - received rpc request, greenlet <greenlet.greenlet object at 0x7fc92b0462a8> will handle it
2016-09-21 09:26:00,974 [DEBUG @ host.py:_on_request:93] 11791 - calling request handler for "poll", args: "[]"
2016-09-21 09:26:00,975 [DEBUG @ host.py:_on_request:95] 11791 - request handler for 'poll []' returns: ok
2016-09-21 09:26:00,975 [DEBUG @ session.py:handler:187] 11791 - greenlet <greenlet.greenlet object at 0x7fc92b0462a8> finished executing, sending ok as response
2016-09-21 09:26:00,975 [DEBUG @ async_session.py:send:133] 11791 - sending response to request 1: [1, 1, None, 'ok']
2016-09-21 09:26:00,975 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [1, 1, None, 'ok']
2016-09-21 09:26:00,976 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x01\x01\xc0\xa2ok''
2016-09-21 09:26:00,976 [DEBUG @ session.py:handler:197] 11791 - greenlet <greenlet.greenlet object at 0x7fc92b0462a8> is now dying...
2016-09-21 09:26:00,976 [DEBUG @ base.py:run:138] 11791 - Entering event loop
2016-09-21 09:26:00,977 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:00,977 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [0, 2, b'/home/user/.vim/neobundles/deoplete/rplugin/python3/deoplete:function:_deoplete', [[]]]
2016-09-21 09:26:00,977 [DEBUG @ async_session.py:_on_request:86] 11791 - received request: b'/home/user/.vim/neobundles/deoplete/rplugin/python3/deoplete:function:_deoplete', [[]]
2016-09-21 09:26:00,977 [DEBUG @ session.py:_on_request:201] 11791 - received rpc request, greenlet <greenlet.greenlet object at 0x7fc92b0462a8> will handle it
2016-09-21 09:26:00,977 [DEBUG @ host.py:_on_request:93] 11791 - calling request handler for "/home/user/.vim/neobundles/deoplete/rplugin/python3/deoplete:function:_deoplete", args: "[[]]"
2016-09-21 09:26:00,977 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 2, 'vim_set_var', ('deoplete#_channel_id', 1)]
2016-09-21 09:26:00,978 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x02\xabvim_set_var\x92\xb4deoplete#_channel_id\x01''
2016-09-21 09:26:00,978 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc92b0462a8> to wait for response
2016-09-21 09:26:00,978 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:00,978 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:00,979 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:00,979 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 2, None, None]
2016-09-21 09:26:00,980 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, None
2016-09-21 09:26:00,981 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc92b0462a8>, switching back
2016-09-21 09:26:01,728 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 3, 'vim_set_var', ('deoplete#_neovim_python_version', ['0.1.9'])]
2016-09-21 09:26:01,730 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x03\xabvim_set_var\x92\xbfdeoplete#_neovim_python_version\x91\xa50.1.9''
2016-09-21 09:26:01,733 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc92b0462a8> to wait for response
2016-09-21 09:26:01,734 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:01,734 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:01,736 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:01,737 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 3, None, None]
2016-09-21 09:26:01,737 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, None
2016-09-21 09:26:01,738 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc92b0462a8>, switching back
2016-09-21 09:26:01,739 [DEBUG @ host.py:_on_request:95] 11791 - request handler for '/home/user/.vim/neobundles/deoplete/rplugin/python3/deoplete:function:_deoplete [[]]' returns: None
2016-09-21 09:26:01,739 [DEBUG @ session.py:handler:187] 11791 - greenlet <greenlet.greenlet object at 0x7fc92b0462a8> finished executing, sending None as response
2016-09-21 09:26:01,739 [DEBUG @ async_session.py:send:133] 11791 - sending response to request 2: [1, 2, None, None]
2016-09-21 09:26:01,739 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [1, 2, None, None]
2016-09-21 09:26:01,739 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x01\x02\xc0\xc0''
2016-09-21 09:26:01,739 [DEBUG @ session.py:handler:197] 11791 - greenlet <greenlet.greenlet object at 0x7fc92b0462a8> is now dying...
2016-09-21 09:26:01,740 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:01,740 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:01,740 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:01,740 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [0, 3, b'deoplete_enable_logging', [b'DEBUG', b'/tmp/deoplete.log']]
2016-09-21 09:26:01,740 [DEBUG @ async_session.py:_on_request:86] 11791 - received request: b'deoplete_enable_logging', [b'DEBUG', b'/tmp/deoplete.log']
2016-09-21 09:26:01,740 [DEBUG @ session.py:_on_request:201] 11791 - received rpc request, greenlet <greenlet.greenlet object at 0x7fc929b6b470> will handle it
2016-09-21 09:26:01,740 [DEBUG @ host.py:_on_request:93] 11791 - calling request handler for "deoplete_enable_logging", args: "[b'DEBUG', b'/tmp/deoplete.log']"
2016-09-21 09:26:01,742 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 4, 'vim_call_function', ('deoplete#util#neovim_version', [])]
2016-09-21 09:26:01,742 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x04\xb1vim_call_function\x92\xbcdeoplete#util#neovim_version\x90''
2016-09-21 09:26:01,743 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:01,743 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:01,743 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:01,744 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:01,745 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 4, None, b'NVIM v0.1.6-122-gefe8311']
2016-09-21 09:26:01,745 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, b'NVIM v0.1.6-122-gefe8311'
2016-09-21 09:26:01,745 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:01,748 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 5, 'vim_call_function', ('deoplete#util#print_warning', ['Logging to /tmp/deoplete.log'])]
2016-09-21 09:26:01,749 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x05\xb1vim_call_function\x92\xbbdeoplete#util#print_warning\x91\xbcLogging to /tmp/deoplete.log''
2016-09-21 09:26:01,751 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:01,753 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:01,755 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:01,757 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:01,757 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 5, None, 0]
2016-09-21 09:26:01,757 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, 0
2016-09-21 09:26:01,757 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:01,758 [DEBUG @ host.py:_on_request:95] 11791 - request handler for 'deoplete_enable_logging [b'DEBUG', b'/tmp/deoplete.log']' returns: None
2016-09-21 09:26:01,758 [DEBUG @ session.py:handler:187] 11791 - greenlet <greenlet.greenlet object at 0x7fc929b6b470> finished executing, sending None as response
2016-09-21 09:26:01,758 [DEBUG @ async_session.py:send:133] 11791 - sending response to request 3: [1, 3, None, None]
2016-09-21 09:26:01,758 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [1, 3, None, None]
2016-09-21 09:26:01,758 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x01\x03\xc0\xc0''
2016-09-21 09:26:01,760 [DEBUG @ session.py:handler:197] 11791 - greenlet <greenlet.greenlet object at 0x7fc929b6b470> is now dying...
2016-09-21 09:26:01,765 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:01,767 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:23,194 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:23,195 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [0, 4, b'/home/user/.vim/neobundles/deoplete/rplugin/python3/deoplete:function:_deoplete', [[]]]
2016-09-21 09:26:23,195 [DEBUG @ async_session.py:_on_request:86] 11791 - received request: b'/home/user/.vim/neobundles/deoplete/rplugin/python3/deoplete:function:_deoplete', [[]]
2016-09-21 09:26:23,195 [DEBUG @ session.py:_on_request:201] 11791 - received rpc request, greenlet <greenlet.greenlet object at 0x7fc929b6b470> will handle it
2016-09-21 09:26:23,195 [DEBUG @ host.py:_on_request:93] 11791 - calling request handler for "/home/user/.vim/neobundles/deoplete/rplugin/python3/deoplete:function:_deoplete", args: "[[]]"
2016-09-21 09:26:23,195 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 6, 'vim_set_var', ('deoplete#_channel_id', 1)]
2016-09-21 09:26:23,195 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x06\xabvim_set_var\x92\xb4deoplete#_channel_id\x01''
2016-09-21 09:26:23,195 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:23,196 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:23,196 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:23,196 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:23,196 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 6, None, 1]
2016-09-21 09:26:23,196 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, 1
2016-09-21 09:26:23,196 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:23,197 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 7, 'vim_set_var', ('deoplete#_neovim_python_version', ['0.1.9'])]
2016-09-21 09:26:23,197 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x07\xabvim_set_var\x92\xbfdeoplete#_neovim_python_version\x91\xa50.1.9''
2016-09-21 09:26:23,197 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:23,198 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:23,198 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:23,198 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:23,198 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 7, None, [b'0.1.9']]
2016-09-21 09:26:23,198 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, [b'0.1.9']
2016-09-21 09:26:23,198 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:23,198 [DEBUG @ host.py:_on_request:95] 11791 - request handler for '/home/user/.vim/neobundles/deoplete/rplugin/python3/deoplete:function:_deoplete [[]]' returns: None
2016-09-21 09:26:23,198 [DEBUG @ session.py:handler:187] 11791 - greenlet <greenlet.greenlet object at 0x7fc929b6b470> finished executing, sending None as response
2016-09-21 09:26:23,199 [DEBUG @ async_session.py:send:133] 11791 - sending response to request 4: [1, 4, None, None]
2016-09-21 09:26:23,199 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [1, 4, None, None]
2016-09-21 09:26:23,199 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x01\x04\xc0\xc0''
2016-09-21 09:26:23,199 [DEBUG @ session.py:handler:197] 11791 - greenlet <greenlet.greenlet object at 0x7fc929b6b470> is now dying...
2016-09-21 09:26:23,199 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:23,199 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:23,202 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:23,203 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [2, b'deoplete_on_event', [{b'filetype': b'nothing', b'bufvars': {}, b'event': b'', b'complete_str': b'', b'camelcase': 0, b'smartcase': 0, b'changedtick': 2, b'start_complete': b'\x80\xfdR(deoplete_start_complete)', b'position': [0, 1, 1, 0], b'max_menu_width': 62, b'bufname': b'', b'omni__omnifunc': b'', b'sources': [], b'input': b'', b'delay': 100, b'runtimepath': b'/home/user/.config/nvim,/etc/xdg/nvim,/home/user/.local/share/nvim/site,/usr/local/share/nvim/site,/usr/share/nvim/site,/usr/share/nvim/runtime,/usr/share/nvim/site/after,/usr/local/share/nvim/site/after,/home/user/.local/share/nvim/site/after,/etc/xdg/nvim/after,/home/user/.config/nvim/after,/home/user/.vim/neobundles/deoplete,/home/user/.vim/neobundles/deoplete-jedi', b'next_input': b'', b'ignorecase': 0, b'custom': {b'jedi': {b'debug_enabled': 1}, b'_': {}}, b'vars': {b'deoplete#max_abbr_width': 80, b'deoplete#keyword_patterns': {}, b'deoplete#enable_smart_case': 0, b'deoplete#enable_at_startup': 0, b'deoplete#auto_refresh_delay': 50, b'deoplete#omni_patterns': {}, b'deoplete#member#prefix_patterns': {}, b'deoplete#auto_complete_delay': 100, b'deoplete#_context': {}, b'deoplete#disable_auto_complete': 0, b'deoplete#max_menu_width': 40, b'deoplete#_rank': {}, b'deoplete#_omni_patterns': {b'mkd': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'html': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'xhtml': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'xml': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'markdown': [b'<', b'<[^>]*\\s[[:alnum:]-]*']}, b'deoplete#_neovim_python_version': [b'0.1.9'], b'deoplete#enable_camel_case': 0, b'deoplete#ignore_sources': {}, b'deoplete#enable_refresh_always': 0, b'deoplete#omni#functions': {}, b'deoplete#enable_profile': 0, b'deoplete#omni#input_patterns': {}, b'deoplete#delimiters': [b'/', b'.', b'::', b':', b'#'], b'deoplete#_channel_id': 1, b'deoplete#auto_complete_start_length': 2, b'deoplete#max_list': 100, b'deoplete#enable_ignore_case': 0, b'deoplete#_keyword_patterns': {b'_': b'[a-zA-Z_]\\k*'}, b'deoplete#sources': {}}, b'max_abbr_width': 62, b'cwd': b'/home/user/.dotfiles/vim/neobundles/deoplete', b'bufnr': 1, b'keyword_patterns': b'[a-zA-Z_][a-zA-Z@0-9_\xc3\x80-\xc3\xbf]*', b'filetypes': [b'nothing'], b'dict__dictionary': b'', b'encoding': b'utf-8'}]]
2016-09-21 09:26:23,203 [DEBUG @ async_session.py:_on_notification:102] 11791 - received notification: b'deoplete_on_event', [{b'filetype': b'nothing', b'bufvars': {}, b'event': b'', b'complete_str': b'', b'camelcase': 0, b'smartcase': 0, b'changedtick': 2, b'start_complete': b'\x80\xfdR(deoplete_start_complete)', b'position': [0, 1, 1, 0], b'max_menu_width': 62, b'bufname': b'', b'omni__omnifunc': b'', b'sources': [], b'input': b'', b'delay': 100, b'runtimepath': b'/home/user/.config/nvim,/etc/xdg/nvim,/home/user/.local/share/nvim/site,/usr/local/share/nvim/site,/usr/share/nvim/site,/usr/share/nvim/runtime,/usr/share/nvim/site/after,/usr/local/share/nvim/site/after,/home/user/.local/share/nvim/site/after,/etc/xdg/nvim/after,/home/user/.config/nvim/after,/home/user/.vim/neobundles/deoplete,/home/user/.vim/neobundles/deoplete-jedi', b'next_input': b'', b'ignorecase': 0, b'custom': {b'jedi': {b'debug_enabled': 1}, b'_': {}}, b'vars': {b'deoplete#max_abbr_width': 80, b'deoplete#keyword_patterns': {}, b'deoplete#enable_smart_case': 0, b'deoplete#enable_at_startup': 0, b'deoplete#auto_refresh_delay': 50, b'deoplete#omni_patterns': {}, b'deoplete#member#prefix_patterns': {}, b'deoplete#auto_complete_delay': 100, b'deoplete#_context': {}, b'deoplete#disable_auto_complete': 0, b'deoplete#max_menu_width': 40, b'deoplete#_rank': {}, b'deoplete#_omni_patterns': {b'mkd': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'html': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'xhtml': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'xml': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'markdown': [b'<', b'<[^>]*\\s[[:alnum:]-]*']}, b'deoplete#_neovim_python_version': [b'0.1.9'], b'deoplete#enable_camel_case': 0, b'deoplete#ignore_sources': {}, b'deoplete#enable_refresh_always': 0, b'deoplete#omni#functions': {}, b'deoplete#enable_profile': 0, b'deoplete#omni#input_patterns': {}, b'deoplete#delimiters': [b'/', b'.', b'::', b':', b'#'], b'deoplete#_channel_id': 1, b'deoplete#auto_complete_start_length': 2, b'deoplete#max_list': 100, b'deoplete#enable_ignore_case': 0, b'deoplete#_keyword_patterns': {b'_': b'[a-zA-Z_]\\k*'}, b'deoplete#sources': {}}, b'max_abbr_width': 62, b'cwd': b'/home/user/.dotfiles/vim/neobundles/deoplete', b'bufnr': 1, b'keyword_patterns': b'[a-zA-Z_][a-zA-Z@0-9_\xc3\x80-\xc3\xbf]*', b'filetypes': [b'nothing'], b'dict__dictionary': b'', b'encoding': b'utf-8'}]
2016-09-21 09:26:23,203 [DEBUG @ session.py:_on_notification:216] 11791 - received rpc notification, greenlet <greenlet.greenlet object at 0x7fc929b6b470> will handle it
2016-09-21 09:26:23,204 [DEBUG @ host.py:_on_notification:109] 11791 - calling notification handler for "deoplete_on_event", args: "[{b'filetype': b'nothing', b'bufvars': {}, b'event': b'', b'complete_str': b'', b'camelcase': 0, b'smartcase': 0, b'changedtick': 2, b'start_complete': b'\x80\xfdR(deoplete_start_complete)', b'position': [0, 1, 1, 0], b'max_menu_width': 62, b'bufname': b'', b'runtimepath': b'/home/user/.config/nvim,/etc/xdg/nvim,/home/user/.local/share/nvim/site,/usr/local/share/nvim/site,/usr/share/nvim/site,/usr/share/nvim/runtime,/usr/share/nvim/site/after,/usr/local/share/nvim/site/after,/home/user/.local/share/nvim/site/after,/etc/xdg/nvim/after,/home/user/.config/nvim/after,/home/user/.vim/neobundles/deoplete,/home/user/.vim/neobundles/deoplete-jedi', b'sources': [], b'input': b'', b'delay': 100, b'next_input': b'', b'ignorecase': 0, b'custom': {b'jedi': {b'debug_enabled': 1}, b'_': {}}, b'vars': {b'deoplete#auto_refresh_delay': 50, b'deoplete#keyword_patterns': {}, b'deoplete#enable_smart_case': 0, b'deoplete#enable_at_startup': 0, b'deoplete#max_abbr_width': 80, b'deoplete#omni_patterns': {}, b'deoplete#member#prefix_patterns': {}, b'deoplete#auto_complete_delay': 100, b'deoplete#_keyword_patterns': {b'_': b'[a-zA-Z_]\\k*'}, b'deoplete#delimiters': [b'/', b'.', b'::', b':', b'#'], b'deoplete#max_menu_width': 40, b'deoplete#_rank': {}, b'deoplete#_omni_patterns': {b'mkd': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'html': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'xhtml': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'xml': [b'<', b'<[^>]*\\s[[:alnum:]-]*'], b'markdown': [b'<', b'<[^>]*\\s[[:alnum:]-]*']}, b'deoplete#_neovim_python_version': [b'0.1.9'], b'deoplete#enable_camel_case': 0, b'deoplete#ignore_sources': {}, b'deoplete#enable_refresh_always': 0, b'deoplete#omni#functions': {}, b'deoplete#enable_profile': 0, b'deoplete#omni#input_patterns': {}, b'deoplete#disable_auto_complete': 0, b'deoplete#_channel_id': 1, b'deoplete#auto_complete_start_length': 2, b'deoplete#max_list': 100, b'deoplete#enable_ignore_case': 0, b'deoplete#_context': {}, b'deoplete#sources': {}}, b'omni__omnifunc': b'', b'max_abbr_width': 62, b'cwd': b'/home/user/.dotfiles/vim/neobundles/deoplete', b'bufnr': 1, b'keyword_patterns': b'[a-zA-Z_][a-zA-Z@0-9_\xc3\x80-\xc3\xbf]*', b'filetypes': [b'nothing'], b'dict__dictionary': b'', b'encoding': b'utf-8'}]"
2016-09-21 09:26:24,995 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 8, 'vim_get_option', ('isfname',)]
2016-09-21 09:26:24,995 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x08\xaevim_get_option\x91\xa7isfname''
2016-09-21 09:26:24,995 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:24,996 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:24,996 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:24,996 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:24,997 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 8, None, b'@,48-57,/,.,-,_,+,,,#,$,%,~,=']
2016-09-21 09:26:24,997 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, b'@,48-57,/,.,-,_,+,,,#,$,%,~,='
2016-09-21 09:26:24,997 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:24,998 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 9, 'vim_call_function', ('deoplete#util#vimoption2python_not', ['@,48-57,/,.,-,_,+,,,#,$,%,~,='])]
2016-09-21 09:26:24,998 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\t\xb1vim_call_function\x92\xda\x00"deoplete#util#vimoption2python_not\x91\xbd@,48-57,/,.,-,_,+,,,#,$,%,~,=''
2016-09-21 09:26:24,999 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:25,003 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,005 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:25,007 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,007 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 9, None, b'[^a-zA-Z@0-9/._+,#$%~=-]']
2016-09-21 09:26:25,009 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, b'[^a-zA-Z@0-9/._+,#$%~=-]'
2016-09-21 09:26:25,010 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:25,011 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 10, 'vim_get_current_buffer', ()]
2016-09-21 09:26:25,011 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\n\xb6vim_get_current_buffer\x90''
2016-09-21 09:26:25,011 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:25,012 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,012 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:25,012 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,012 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 10, None, ExtType(code=0, data=b'\x01')]
2016-09-21 09:26:25,012 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, ExtType(code=0, data=b'\x01')
2016-09-21 09:26:25,013 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:25,013 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 11, 'buffer_get_line_slice', (ExtType(code=0, data=b'\x01'), 0, -1, True, True)]
2016-09-21 09:26:25,020 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x0b\xb5buffer_get_line_slice\x95\xd4\x00\x01\x00\xff\xc3\xc3''
2016-09-21 09:26:25,024 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:25,025 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,025 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:25,026 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,026 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 11, None, [b'']]
2016-09-21 09:26:25,027 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, [b'']
2016-09-21 09:26:25,028 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:25,030 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 12, 'vim_call_function', ('exists', ['*neoinclude#include#get_tag_files'])]
2016-09-21 09:26:25,033 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x0c\xb1vim_call_function\x92\xa6exists\x91\xda\x00!*neoinclude#include#get_tag_files''
2016-09-21 09:26:25,035 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:25,037 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,038 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:25,039 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,039 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 12, None, 0]
2016-09-21 09:26:25,039 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, 0
2016-09-21 09:26:25,039 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:25,039 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 13, 'vim_call_function', ('tagfiles', [])]
2016-09-21 09:26:25,039 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\r\xb1vim_call_function\x92\xa8tagfiles\x90''
2016-09-21 09:26:25,040 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:25,041 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,041 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:25,043 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,043 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 13, None, [b'tags', b'/home/user/.dotfiles/tags']]
2016-09-21 09:26:25,044 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, [b'tags', b'/home/user/.dotfiles/tags']
2016-09-21 09:26:25,046 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:25,048 [DEBUG @ msgpack_stream.py:send:33] 11791 - sent [0, 14, 'vim_call_function', ('map', [['tags', '/home/user/.dotfiles/tags'], 'fnamemodify(v:val, ":p")'])]
2016-09-21 09:26:25,048 [DEBUG @ base.py:send:113] 11791 - Sending 'b'\x94\x00\x0e\xb1vim_call_function\x92\xa3map\x92\x92\xa4tags\xbb/home/user/.dotfiles/tags\xb8fnamemodify(v:val, ":p")''
2016-09-21 09:26:25,050 [DEBUG @ session.py:_yielding_request:153] 11791 - yielding from greenlet <greenlet.greenlet object at 0x7fc929b6b470> to wait for response
2016-09-21 09:26:25,052 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,054 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:25,055 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,055 [DEBUG @ msgpack_stream.py:_on_data:56] 11791 - received message: [1, 14, None, [b'/home/user/.dotfiles/vim/neobundles/deoplete/tags', b'/home/user/.dotfiles/tags']]
2016-09-21 09:26:25,055 [DEBUG @ async_session.py:_on_response:95] 11791 - received response: None, [b'/home/user/.dotfiles/vim/neobundles/deoplete/tags', b'/home/user/.dotfiles/tags']
2016-09-21 09:26:25,055 [DEBUG @ session.py:response_cb:149] 11791 - response is available for greenlet <greenlet.greenlet object at 0x7fc929b6b470>, switching back
2016-09-21 09:26:25,058 [DEBUG @ session.py:handler:208] 11791 - greenlet <greenlet.greenlet object at 0x7fc929b6b470> finished executing
2016-09-21 09:26:25,058 [DEBUG @ session.py:handler:213] 11791 - greenlet <greenlet.greenlet object at 0x7fc929b6b470> is now dying...
2016-09-21 09:26:25,058 [DEBUG @ msgpack_stream.py:_on_data:54] 11791 - waiting for message...
2016-09-21 09:26:25,058 [DEBUG @ msgpack_stream.py:_on_data:59] 11791 - unpacker needs more data...
2016-09-21 09:26:41,865 [DEBUG @ base.py:_on_error:166] 11791 - EOF
2016-09-21 09:26:41,866 [DEBUG @ base.py:stop:149] 11791 - Stopped event loop
2016-09-21 09:26:41,870 [DEBUG @ base.py:run:140] 11791 - Exited event loop

Error when loading source jedi: Failed to start server; No module named jedi

Problem summary

If I try to use deoplete-jedi in a python project with or without a virtualenv activated I get the following error:

[deoplete] Error when loading source jedi: Failed to start server (/home/arjen/Projects/snippets/.venv/bin/python -u /home/arjen/.config/nvim/bundle/jedi/rplugin/python3/deoplete/sources/deoplete_jedi/server.py --desc-length 0 --debug --
debug-level 10): Server exited with b'Traceback (most recent call last):\n File "/home/arjen/.config/nvim/bundle/jedi/rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 565, in \n s = Server(args.desc_length, args
.short_types, args.docstrings)\n File "/home/arjen/.config/nvim/bundle/jedi/rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 149, in init\n from jedi import settings\nImportError: No module named jedi\n': error: 1.
Ignoring.

If I install deoplete-jedi in the projects virtualenv it works as expected

Expected

It works without installing it to the projects virtualenv

Environment Information

  • OS: Fedora 25
  • Neovim version:
    NVIM v0.2.0-598-g0e44916
    Build type: RelWithDebInfo
    Compilation: /usr/lib64/ccache/cc -Wconversion -O2 -g -DDISABLE_LOG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -DHAVE_CONFIG_H -D_GNU_SOURCE -I/home/arjen/Programms/neovim/build/config -I/home/arjen/Programms/neovim/src -I/home/arjen/Programms/neovim/.deps/usr/include -I/home/arjen/Programms/neovim/.deps/usr/include -I/home/arjen/Programms/neovim/.deps/usr/include -I/home/arjen/Programms/neovim/.deps/usr/include -I/home/arjen/Programms/neovim/.deps/usr/include -I/home/arjen/Programms/neovim/.deps/usr/include -I/usr/include -I/home/arjen/Programms/neovim/build/src/nvim/auto -I/home/arjen/Programms/neovim/build/include
    Compiled by [email protected]

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

" Pathogen - Allows us to organize our vim plugins
" Load pathogen with docs for all plugins
filetype off
" call pathogen#incubate()
call pathogen#infect('bundle/{}')
call pathogen#helptags()
" pathogen#incubate() to pathogen#infect('bundle/{}')

" Basic Settings {{{
syntax on                     " syntax highlighting
filetype on                   " try to detect filetypes

" So neovim will work in a VirtualEnv
let g:python_host_prog='/home/arjen/config/dotfiles/_neovim/ENV2/bin/python'
let g:python3_host_prog='/home/arjen/config/dotfiles/_neovim/ENV/bin/python'

set runtimepath+=~/config/dotfiles/_neovim/bundle/deoplete/
set runtimepath+=~/config/dotfiles/_neovim/bundle/deoplete-jedi/

call deoplete#custom#set('jedi', 'debug_enabled', 1)
call deoplete#enable_logging('DEBUG', '/tmp/deoplete.log')

let g:deoplete#enable_at_startup = 1

Generate logfiles if appropriate

  1. export NVIM_PYTHON_LOG_FILE=/tmp/nvim-log
  2. export NVIM_PYTHON_LOG_LEVEL=DEBUG
  3. nvim -u minimal.vimrc

Then look at and attach the files /tmp/nvim-log_{PID} and
/tmp/deoplete.log here.

Steps to reproduce the issue after starting Neovim (required)

  1. Start neovim
  2. open python file
  3. go into insert mode

checkhealth.txt

deoplete.txt
nvim-log_py2_script.txt

nvim-log_py3_rplugin.txt

The jedi cache gets put './~/.cache' when XDG_CACHE_HOME is unset

...and not $HOME/.cache/

This results in the creation of a directory with the name '~' in the current working directory.

Here's a simple fix:

diff --git a/rplugin/python3/deoplete/sources/jedi.py b/rplugin/python3/deoplete/sources/jedi.py
index 71ee53c..faa449f 100644
--- a/rplugin/python3/deoplete/sources/jedi.py
+++ b/rplugin/python3/deoplete/sources/jedi.py
@@ -95,7 +95,7 @@ class Source(Base):

         cache_home = os.getenv('XDG_CACHE_HOME')
         if cache_home is None:
-            cache_home = '~/.cache'
+            cache_home = os.path.expanduser('~/.cache')
         jedi.settings.cache_directory = os.path.join(cache_home, 'jedi')

         row = self.vim.current.window.cursor[0]

list index out of range

Problems summary

I sometimes get the following error when typing in a python file.

Environment Information

  • OS: OSX 10.11.4
  • Neovim version: latest build from git

Traceback

[deoplete] An error has occurred. Please execute :messages command.
[deoplete] Traceback (most recent call last):
[deoplete]   File "/Users/alokbeniwal/.config/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 47, in completion_begin
[deoplete]     complete_position, candidates = self.gather_candidates(context)
[deoplete]   File "/Users/alokbeniwal/.config/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 85, in gather_candidates
[deoplete]     results = self.gather_results(context)
[deoplete]   File "/Users/alokbeniwal/.config/nvim/bundle/deoplete.nvim/rplugin/python3/deoplete/deoplete.py", line 150, in gather_results
[deoplete]     context['candidates'] = source.gather_candidates(context)
[deoplete]   File "/Users/alokbeniwal/.config/nvim/bundle/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi.py", line 321, in gather_candidates
[deoplete]     name, type_, desc, abbr = self.parse_completion(c, tmp_filecache)
[deoplete]   File "/Users/alokbeniwal/.config/nvim/bundle/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi.py", line 202, in parse_completion
[deoplete]     line = lines[i].lstrip()
[deoplete] IndexError: list index out of range

Conflict Shougo/neco-syntax or Shougo/neoinclude.vim or ['buffer', 'tag'] sources

If using the deoplete-jedi and Shougo/neco-syntax or Shougo/neoinclude.vim, will be insert with characters before current cursor when CompleteDone.

In case of Shougo/neco-syntax

import jedi

jedi.

instert se,

import jedi

jedi.se

and, hit Enter in settings

import jedi

jedi.di.settings

In case of Shougo/neoinclude.vim

import jedi

instert im, select import

import jedi
import 

and, hit Enter in os

import jedi
import port os.

deoplete-jedi doesn't recognize some candidates in large packages as numpy

Problem summary

#89 partially fixes deoplete-jedi candidates recognition compare to other editors, but tested with numpy(even larger package then django and more comlex) and seems like it still cant show some candidates that JEDI(and jedi-vim) can. Tested in atom and vscode too. They both can complete(atom need like 5-10 sec to actually recognize this candidates. Yes numpy is huge), vscode much faster but still delays 2-3 seconds before comletions show up.
I dunno - maybe it's too much for deoplete-jedi and deoplete itself? Because my neovim even freeze for few seconds when im trying to get this completions with jedi-vim. And even when i dont complete with jedi-vim and just type something like np.cos() for the first time per session neovim freezes(i guess because of g:jedi#show_call_signatures = 2). Will test it later.
Some screenshots
deoplete-jedi

jedi-vim

atom

Atom an VScode after they actually detect this candidates, then completion is fast(i suppose because of cache). Jedi-vim too. Deoplete-jedi still cant detect them even when you already have them in your file(deoplete for sure completes them as simple keyword).

As you can see from jedi-vim screenshot actual path for sin is numpy.umath.sin. And as expected deoplete-jedi completes it without a problem

So i dont really know should we try to fix this. Because it's laggy. Just posted for the record.

  • Neovim version:
    0.1.7

Friendlier error message when jedi is not installed

I've just ran neovim in conda env (virtualenv) and there was no jedi pip package installed. I had this in my :messages:

[deoplete] Traceback (most recent call last):
[deoplete] Traceback (most recent call last):
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/deoplete.py", line 272, in load_sources
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/deoplete.py", line 272, in load_sources
[deoplete]     source.on_init(context)
[deoplete]     source.on_init(context)
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi.py", line 66, in on_init
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi.py", line 66, in on_init
[deoplete]     self.debug_enabled, self.python_path)
[deoplete]     self.debug_enabled, self.python_path)
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi/worker.py", line 81, in start
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi/worker.py", line 81, in start
[deoplete]     show_docstring, debug, python_path)
[deoplete]     show_docstring, debug, python_path)
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi/worker.py", line 24, in __init__
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi/worker.py", line 24, in __init__
[deoplete]     python_path)
[deoplete]     python_path)
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 502, in __init__
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 502, in __init__
[deoplete]     self.restart()
[deoplete]     self.restart()
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 518, in restart
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 518, in restart
[deoplete]     self.version = stream_read(self._server.stdout)
[deoplete]     self.version = stream_read(self._server.stdout)
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 83, in stream_read
[deoplete]   File "/home/ybochkarev/.vim/bundle/.dein/rplugin/python3/deoplete/sources/deoplete_jedi/server.py", line 83, in stream_read
[deoplete]     raise StreamEmpty
[deoplete]     raise StreamEmpty
[deoplete] deoplete_jedi.server.StreamEmpty
[deoplete] deoplete_jedi.server.StreamEmpty
[deoplete] Could not load source: deoplete_jedi.  Use :messages for error details.
[deoplete] Could not load source: deoplete_jedi.  Use :messages for error details.
Press ENTER or type command to continue

I'm not sure whether it's a deoplete_jedi or deoplete issue, but besides of messages being printed twice, the error message could be friendlier, say: "Could not import jedi python package. Install it using pip install jedi" or something along these lines.

After I had ran pip install jedi, the messages gone.

Thank you!

Don't block when doing from import expansion

Problem summary

If I would type
from some it will be replaced with
from some import
and then I can type what I want to import.

So the problem is that in large projects and large files if jedi doesn't have cache yet after I would type space after the word some neovim would be blocked and I would experience noticeable delay before neovim can response again to my typing.

I understand that parsing can be slow etc etc, but there's no reason to force me to wait for autocompletion.

From my observation I guess that deoplete-jedi doesn't let me type until it have completions for module that I'm trying to import, but at the same time without cache If I would type
from functools deoplete-jedi allows me to type even if it doesn't have completions yet and they starting to appear later. So I guess that kind of a bug.

Completions don't work for python.django combined filetypes

Problems summary

Seems like completions don't popup in python.django filetypes autocmd BufNewFile,BufRead *.py setlocal filetype=python.django
let g:loaded_deoplete_jedi returns 1, just doesn't complete.

Need confirmation. And don't know is this deoplete itself or deoplete-jedi.

Expected

Competions should work in combined filetypes

Environment Information

  • OS: Arch Linux
  • Neovim version: 0.1.3

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

" Your minimal init.vim
set runtimepath+=~/path/to/deoplete.nvim/
set runtimepath+=~/path/to/deoplete-jedi/
let g:deoplete#enable_at_startup = 1
autocmd BufNewFile,BufRead *.py setlocal filetype=python.django

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.