Git Product home page Git Product logo

asyncomplete-lsp.vim's People

Contributors

hrsh7th avatar keremc avatar kyouryuukunn avatar mattn avatar natronick avatar prabirshrestha avatar snu5mumr1k 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

asyncomplete-lsp.vim's Issues

The popup menu does not open when a buffer is modified soon after the buffer opens

The popup menu does not open when a buffer is modified soon after the buffer opens. Current asyncomplete-lsp.vim seems to require some pauses before buffers are edited.

When I modified a buffer soon after the buffer opens, the popup menu did not open as follows:
A buffer was modified soon after the buffer opens
In the above screencast, I typed <c-space> to execute <Plug>(asyncomplete_force_refresh), but the popup menu did not open, and any item was not completed. After that, I typed <c-x><c-o> to execute omnifunc, and omnifunc worked expectedly.

If I waited a while before modified a buffer, the popup menu expectedly opened as follows:
A buffer was modified in a while after the buffer opens
In the above screencast, I waited a while before I typed any key, and I typed <c-space> to execute <Plug>(asyncomplete_force_refresh), and the popup menu expectedly opened. omnifunc also worked expectedly.

These are logs obtained in the above screencasts:

This is the vimrc that I used in the above screencast:

language C

" for vim-plug
source plug.vim

call plug#begin('plugged')
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/async.vim'
Plug 'prabirshrestha/vim-lsp'
Plug 'prabirshrestha/asyncomplete-lsp.vim'
call plug#end()

let g:lsp_log_verbose = 1
let g:lsp_log_file = './vim-lsp.log'
let g:asyncomplete_log_file = './asyncomplete.log'
imap <c-space> <Plug>(asyncomplete_force_refresh)

if executable('pyls')
    " pip install python-language-server
    au User lsp_setup call lsp#register_server({
        \ 'name': 'pyls',
        \ 'cmd': {server_info->['pyls']},
        \ 'whitelist': ['python'],
        \ })
    au FileType python setlocal omnifunc=lsp#complete
endif

Environment:

  • OS: Windows 10 64bit

  • Vim: 8.1.1142

  • async.vim: f30145

  • asyncomplete.vim: f4a5b8

  • asyncomplete-lsp.vim 05389e

  • vim-lsp: a79fb04

  • Python: 3.7.3

  • python-language-server: 0.26.1

Is fuzzy matching supported?

For example I have a object named actual_result, I'd like to just type ar to matching it. It is supported by ycm and feels very great.

E716: Key not present in Dictionary: kind

Hi. I'm trying to use this together with https://github.com/sourcegraph/javascript-typescript-langserver (and prabirshrestha/asyncomplete.vim) but run into the following error when it wants to complete:

Error detected while processing function <SNR>119_on_stdout[4]..<SNR>118__on_lsp_stdout[50]..<lambda>8[1]..<
SNR>30_handle_completion:
E716: Key not present in Dictionary: kind

And it seems the culprit is this line. It wants to access they key kind, but I guess the LSP server isn't returning that key for some of the items.

let l:matches = map(l:items,'{"word":v:val["label"],"dup":1,"icase":1,"menu": s:get_symbol_text_from_kind(v:val["kind"])}')

Now, I'm not familiar with the LSP spec. So I don't really know if the server is returning incorrect result (i.e. skipping the kind key) or if asyncomplete-lsp.vim is a bit too optimistic if what keys are present.

Clangd completion list offers header identifiers first

When autocompleting words in C, I often get weird completion suggestions. I am not quite sure what plugin is causing this.
Here is the symptom:

In this tiny C file please note that I include the <inttypes.h> header file.
When trying to autocomplete "pr" to "previous" defined on the previous line I get a bunch of other identifiers (from inttypes.h) before the one defined in the current file.

asyncomplete.log: https://gist.github.com/frdeso/b6b4059e8a25e4fb347e373e6e477b7e
vim-lsp.log: https://gist.github.com/frdeso/d49d3e5ad8ac51645c9641d520b0227e
minimal vimrc: https://gist.github.com/frdeso/f2ecebaab856193d1850c3bdc8bafe05

Looking at the vim-lsp.log file at line 305 the clangd reply seems to be in the right ordering.

Is a way to prioritize the matches from the current file/project?

[Help]gvim hangs when trigger a lsp autocompletion

It's a "[Help]" issues, because I'm not sure it's a bug of asyncomplete-lsp.vim.

The gvim's window is frozen while asyncomplete-lsp.vim is doing an autocompletion.
This only happens when the gvim's window maximized.
Other kind of completion work well.
Only certain LSP autocompletion trigger this.

My system environment:

VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 11 2020 23:33:50)
MS-Windows 64-bit GUI version

Microsoft Windows 7  64bit 
6.1.7601 Service Pack 1 Build 7601

Can anyone tell me how to locate the bug?

Python types (PEP 484) support

I'm not sure where to put this issue, please guide me to another repo is needed.
It'd be cool if autocompletion popup showed Python type annotations in function signature.
image

Error with python file and pyls

Hello, getting the following error in neovim, after running LspServerInstall

Error detected while processing function <SNR>183_recompute_pum[42]..<SNR>183_default_preprocessor:
line    6:
E716: Key not present in Dictionary: "asyncomplete_lsp_pyls-all"
Press ENTER or type command to continue

Using

Build type: Release
LuaJIT 2.0.5
Compilation: /usr/bin/clang -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNDEBUG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/tmp/neovim-20201106-6219-1wjz9gj/build/config -I/tmp/neovim-20201106-6219-1wjz9gj/src -I/usr/local/include -I/tmp/neovim-20201106-6219-1wjz9gj/deps-build/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include -I/usr/local/opt/gettext/include -I/tmp/neovim-20201106-6219-1wjz9gj/build/src/nvim/auto -I/tmp/neovim-20201106-6219-1wjz9gj/build/include
Compiled by [email protected]

Features: +acl +iconv +tui
See ":help feature-compile"

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

Run :checkhealth for more info

My respective LSP-related vim config snippets (full config available here) are

Plug 'prabirshrestha/async.vim'
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/asyncomplete-lsp.vim'
Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'

" python
if executable('pyls')
    " pip install python-language-server
    au User lsp_setup call lsp#register_server({
        \ 'name': 'pyls',
        \ 'cmd': {server_info->['pyls']},
        \ 'allowlist': ['python'],
        \ })
else
   echohl ErrorMsg
   echom "\"pyls\" is not installed\n If you'd like autocompletion run :LspInstallServer and optionally \"pip install python-language-server\""
   echohl NONE
endif

" java
let java_version=system("java -version 2>&1 | head -n 1 | cut -d'\"' -f2 | cut -d'.' -f1")
if java_version >=# "13"
    au User lsp_setup call lsp#register_server({
        \'name': 'eclipse.jdt.ls',
        \'cmd': {server_info->[
            \'java',
            \'-Declipse.application=org.eclipse.jdt.ls.core.id1',
            \'-Dosgi.bundles.defaultStartLevel=4',
            \'-Declipse.product=org.eclipse.jdt.ls.core.product',
            \'-Dlog.level=all',
            \'-noverify',
            \'-javaagent:' . expand('/Users/tp/projects/jars/lombok.jar'),
            \'-Xbootclasspath/a:' . expand('/Users/tp/projects/jars/lombok.jar'),
            \'-Xmx1G',
            \'-jar',
            \expand('/Users/tp/projects/jars/jdt-language-server-latest/plugins/org.eclipse.equinox.launcher_*.jar'),
            \'-configuration',
            \expand('/Users/tp/projects/jars/jdt-language-server-latest/config_mac'),
            \'-Djava.formatter.fileName',
            \expand(g:vimroot . "/support/configs/sati.xml"),
            \'-data',
            \expand('/tmp') . getcwd()
            \]},
            \'allowlist': ['java']
    \})
endif


function! s:on_lsp_buffer_enabled() abort
    setlocal omnifunc=lsp#complete
    setlocal signcolumn=yes
    if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif
    nmap <buffer> gd <plug>(lsp-definition)
    nmap <buffer> gr <plug>(lsp-references)
    nmap <buffer> gi <plug>(lsp-implementation)
    nmap <buffer> gt <plug>(lsp-type-definition)
    nmap <buffer> <leader>rn <plug>(lsp-rename)
    nmap <buffer> [g <Plug>(lsp-previous-diagnostic)
    nmap <buffer> ]g <Plug>(lsp-next-diagnostic)
    nmap <buffer> K <plug>(lsp-hover)
    " refer to doc to add more commands
endfunction

augroup lsp_install
    au!
    " call s:on_lsp_buffer_enabled only for languages that have the server registered.
    autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled()
augroup END

let g:asyncomplete_auto_popup = 1
" allow modifying the completeopt variable, or it will
" be overridden all the time
let g:asyncomplete_auto_completeopt = 0

set completeopt=menuone,noinsert,noselect,preview
autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif
inoremap <expr> <Tab>   pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
inoremap <expr> <cr>    pumvisible() ? asyncomplete#close_popup() : "\<cr>"
imap <c-space> <Plug>(asyncomplete_force_refresh)

Completion list not updated correctly

I'm using pyls with setup described in your wiki.

Completion list is not updated correctly. This is how it looks like:

img

Important thing is pyls returns completions correctly: when typing . first time and after typing it again. Similar issue occurs also after some keywords like import and from.

Here is log from asyncomplete:

["core","python_cm_insert_enter"]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":3,"bufnr":1,"col":1,"changedtick":6,"typed":"","filetype":"python","curpos":[0,3,1,0,1],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":3,"bufnr":1,"col":1,"changedtick":6,"typed":"","filetype":"python","curpos":[0,3,1,0,1],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":3,"bufnr":1,"col":1,"changedtick":6,"typed":"","filetype":"python","curpos":[0,3,1,0,1],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["i",0,1],{"lnum":3,"bufnr":1,"col":2,"changedtick":7,"typed":"i","filetype":"python","curpos":[0,3,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["i",0,1],{"lnum":3,"bufnr":1,"col":2,"changedtick":7,"typed":"i","filetype":"python","curpos":[0,3,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["i",0,1],{"lnum":3,"bufnr":1,"col":2,"changedtick":7,"typed":"i","filetype":"python","curpos":[0,3,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","completor()","asyncomplete_lsp_pyls",{"lnum":3,"bufnr":1,"col":2,"changedtick":7,"typed":"i","filetype":"python","curpos":[0,3,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","completor()","buffer",{"lnum":3,"bufnr":1,"col":2,"changedtick":7,"typed":"i","filetype":"python","curpos":[0,3,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_complete","buffer",{"lnum":3,"bufnr":1,"col":2,"changedtick":7,"typed":"i","filetype":"python","curpos":[0,3,2,0,2],"filepath":"/tmp/test/test.py"},1,0,0]
["core","completor()","ultisnips",{"lnum":3,"bufnr":1,"col":2,"changedtick":7,"typed":"i","filetype":"python","curpos":[0,3,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_complete","ultisnips",{"lnum":3,"bufnr":1,"col":2,"changedtick":7,"typed":"i","filetype":"python","curpos":[0,3,2,0,2],"filepath":"/tmp/test/test.py"},1,0,0]
["core","s:python_cm_complete","asyncomplete_lsp_pyls",{"lnum":3,"bufnr":1,"col":2,"changedtick":7,"typed":"i","filetype":"python","curpos":[0,3,2,0,2],"filepath":"/tmp/test/test.py"},1,false,0]
["core","s:python_cm_refresh",["im",0,2],{"lnum":3,"bufnr":1,"col":3,"changedtick":12,"typed":"im","filetype":"python","curpos":[0,3,3,0,3],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["im",0,2],{"lnum":3,"bufnr":1,"col":3,"changedtick":12,"typed":"im","filetype":"python","curpos":[0,3,3,0,3],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["im",0,2],{"lnum":3,"bufnr":1,"col":3,"changedtick":12,"typed":"im","filetype":"python","curpos":[0,3,3,0,3],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["imp",0,3],{"lnum":3,"bufnr":1,"col":4,"changedtick":19,"typed":"imp","filetype":"python","curpos":[0,3,4,0,4],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["imp",0,3],{"lnum":3,"bufnr":1,"col":4,"changedtick":19,"typed":"imp","filetype":"python","curpos":[0,3,4,0,4],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["imp",0,3],{"lnum":3,"bufnr":1,"col":4,"changedtick":19,"typed":"imp","filetype":"python","curpos":[0,3,4,0,4],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["impo",0,4],{"lnum":3,"bufnr":1,"col":5,"changedtick":28,"typed":"impo","filetype":"python","curpos":[0,3,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["impo",0,4],{"lnum":3,"bufnr":1,"col":5,"changedtick":28,"typed":"impo","filetype":"python","curpos":[0,3,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["impo",0,4],{"lnum":3,"bufnr":1,"col":5,"changedtick":28,"typed":"impo","filetype":"python","curpos":[0,3,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["impor",0,5],{"lnum":3,"bufnr":1,"col":6,"changedtick":39,"typed":"impor","filetype":"python","curpos":[0,3,6,0,6],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["impor",0,5],{"lnum":3,"bufnr":1,"col":6,"changedtick":39,"typed":"impor","filetype":"python","curpos":[0,3,6,0,6],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["impor",0,5],{"lnum":3,"bufnr":1,"col":6,"changedtick":39,"typed":"impor","filetype":"python","curpos":[0,3,6,0,6],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["import",0,6],{"lnum":3,"bufnr":1,"col":7,"changedtick":52,"typed":"import","filetype":"python","curpos":[0,3,7,0,7],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["import",0,6],{"lnum":3,"bufnr":1,"col":7,"changedtick":52,"typed":"import","filetype":"python","curpos":[0,3,7,0,7],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["import",0,6],{"lnum":3,"bufnr":1,"col":7,"changedtick":52,"typed":"import","filetype":"python","curpos":[0,3,7,0,7],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":3,"bufnr":1,"col":8,"changedtick":53,"typed":"import ","filetype":"python","curpos":[0,3,8,0,8],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":3,"bufnr":1,"col":8,"changedtick":53,"typed":"import ","filetype":"python","curpos":[0,3,8,0,8],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":3,"bufnr":1,"col":8,"changedtick":53,"typed":"import ","filetype":"python","curpos":[0,3,8,0,8],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["s",7,8],{"lnum":3,"bufnr":1,"col":9,"changedtick":54,"typed":"import s","filetype":"python","curpos":[0,3,9,0,9],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["s",7,8],{"lnum":3,"bufnr":1,"col":9,"changedtick":54,"typed":"import s","filetype":"python","curpos":[0,3,9,0,9],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["s",7,8],{"lnum":3,"bufnr":1,"col":9,"changedtick":54,"typed":"import s","filetype":"python","curpos":[0,3,9,0,9],"filepath":"/tmp/test/test.py"}]
["core","completor()","asyncomplete_lsp_pyls",{"lnum":3,"bufnr":1,"col":9,"changedtick":54,"typed":"import s","filetype":"python","curpos":[0,3,9,0,9],"filepath":"/tmp/test/test.py"}]
["core","completor()","buffer",{"lnum":3,"bufnr":1,"col":9,"changedtick":54,"typed":"import s","filetype":"python","curpos":[0,3,9,0,9],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_complete","buffer",{"lnum":3,"bufnr":1,"col":9,"changedtick":54,"typed":"import s","filetype":"python","curpos":[0,3,9,0,9],"filepath":"/tmp/test/test.py"},8,0,0]
["core","completor()","ultisnips",{"lnum":3,"bufnr":1,"col":9,"changedtick":54,"typed":"import s","filetype":"python","curpos":[0,3,9,0,9],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_complete","ultisnips",{"lnum":3,"bufnr":1,"col":9,"changedtick":54,"typed":"import s","filetype":"python","curpos":[0,3,9,0,9],"filepath":"/tmp/test/test.py"},8,0,0]
["core","s:python_cm_complete","asyncomplete_lsp_pyls",{"lnum":3,"bufnr":1,"col":9,"changedtick":54,"typed":"import s","filetype":"python","curpos":[0,3,9,0,9],"filepath":"/tmp/test/test.py"},8,false,0]
["core","s:python_cm_refresh",["sy",7,9],{"lnum":3,"bufnr":1,"col":10,"changedtick":59,"typed":"import sy","filetype":"python","curpos":[0,3,10,0,10],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sy",7,9],{"lnum":3,"bufnr":1,"col":10,"changedtick":59,"typed":"import sy","filetype":"python","curpos":[0,3,10,0,10],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sy",7,9],{"lnum":3,"bufnr":1,"col":10,"changedtick":59,"typed":"import sy","filetype":"python","curpos":[0,3,10,0,10],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sys",7,10],{"lnum":3,"bufnr":1,"col":11,"changedtick":66,"typed":"import sys","filetype":"python","curpos":[0,3,11,0,11],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sys",7,10],{"lnum":3,"bufnr":1,"col":11,"changedtick":66,"typed":"import sys","filetype":"python","curpos":[0,3,11,0,11],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sys",7,10],{"lnum":3,"bufnr":1,"col":11,"changedtick":66,"typed":"import sys","filetype":"python","curpos":[0,3,11,0,11],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":4,"bufnr":1,"col":1,"changedtick":67,"typed":"","filetype":"python","curpos":[0,4,1,0,1],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":4,"bufnr":1,"col":1,"changedtick":67,"typed":"","filetype":"python","curpos":[0,4,1,0,1],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":4,"bufnr":1,"col":1,"changedtick":67,"typed":"","filetype":"python","curpos":[0,4,1,0,1],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":5,"bufnr":1,"col":1,"changedtick":68,"typed":"","filetype":"python","curpos":[0,5,1,0,1],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":5,"bufnr":1,"col":1,"changedtick":68,"typed":"","filetype":"python","curpos":[0,5,1,0,1],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":5,"bufnr":1,"col":1,"changedtick":68,"typed":"","filetype":"python","curpos":[0,5,1,0,1],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["s",0,1],{"lnum":5,"bufnr":1,"col":2,"changedtick":69,"typed":"s","filetype":"python","curpos":[0,5,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["s",0,1],{"lnum":5,"bufnr":1,"col":2,"changedtick":69,"typed":"s","filetype":"python","curpos":[0,5,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["s",0,1],{"lnum":5,"bufnr":1,"col":2,"changedtick":69,"typed":"s","filetype":"python","curpos":[0,5,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","completor()","asyncomplete_lsp_pyls",{"lnum":5,"bufnr":1,"col":2,"changedtick":69,"typed":"s","filetype":"python","curpos":[0,5,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","completor()","buffer",{"lnum":5,"bufnr":1,"col":2,"changedtick":69,"typed":"s","filetype":"python","curpos":[0,5,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_complete","buffer",{"lnum":5,"bufnr":1,"col":2,"changedtick":69,"typed":"s","filetype":"python","curpos":[0,5,2,0,2],"filepath":"/tmp/test/test.py"},1,0,0]
["core","completor()","ultisnips",{"lnum":5,"bufnr":1,"col":2,"changedtick":69,"typed":"s","filetype":"python","curpos":[0,5,2,0,2],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_complete","ultisnips",{"lnum":5,"bufnr":1,"col":2,"changedtick":69,"typed":"s","filetype":"python","curpos":[0,5,2,0,2],"filepath":"/tmp/test/test.py"},1,0,0]
["core","s:python_cm_complete","asyncomplete_lsp_pyls",{"lnum":5,"bufnr":1,"col":2,"changedtick":69,"typed":"s","filetype":"python","curpos":[0,5,2,0,2],"filepath":"/tmp/test/test.py"},1,false,0]
["core","s:python_cm_refresh",["sy",0,2],{"lnum":5,"bufnr":1,"col":3,"changedtick":74,"typed":"sy","filetype":"python","curpos":[0,5,3,0,3],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sy",0,2],{"lnum":5,"bufnr":1,"col":3,"changedtick":74,"typed":"sy","filetype":"python","curpos":[0,5,3,0,3],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sy",0,2],{"lnum":5,"bufnr":1,"col":3,"changedtick":74,"typed":"sy","filetype":"python","curpos":[0,5,3,0,3],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sys",0,3],{"lnum":5,"bufnr":1,"col":4,"changedtick":81,"typed":"sys","filetype":"python","curpos":[0,5,4,0,4],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sys",0,3],{"lnum":5,"bufnr":1,"col":4,"changedtick":81,"typed":"sys","filetype":"python","curpos":[0,5,4,0,4],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sys",0,3],{"lnum":5,"bufnr":1,"col":4,"changedtick":81,"typed":"sys","filetype":"python","curpos":[0,5,4,0,4],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",[".",3,4],{"lnum":5,"bufnr":1,"col":5,"changedtick":82,"typed":"sys.","filetype":"python","curpos":[0,5,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":5,"bufnr":1,"col":5,"changedtick":82,"typed":"sys.","filetype":"python","curpos":[0,5,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":5,"bufnr":1,"col":5,"changedtick":82,"typed":"sys.","filetype":"python","curpos":[0,5,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","completor()","asyncomplete_lsp_pyls",{"lnum":5,"bufnr":1,"col":5,"changedtick":82,"typed":"sys.","filetype":"python","curpos":[0,5,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_complete","asyncomplete_lsp_pyls",{"lnum":5,"bufnr":1,"col":5,"changedtick":82,"typed":"sys.","filetype":"python","curpos":[0,5,5,0,5],"filepath":"/tmp/test/test.py"},5,false,0]
["core","python_cm_insert_enter"]
["core","s:python_cm_refresh",["sys",0,3],{"lnum":5,"bufnr":1,"col":4,"changedtick":83,"typed":"sys","filetype":"python","curpos":[0,5,4,0,4],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sys",0,3],{"lnum":5,"bufnr":1,"col":4,"changedtick":83,"typed":"sys","filetype":"python","curpos":[0,5,4,0,4],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["sys",0,3],{"lnum":5,"bufnr":1,"col":4,"changedtick":83,"typed":"sys","filetype":"python","curpos":[0,5,4,0,4],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",[".",3,4],{"lnum":5,"bufnr":1,"col":5,"changedtick":84,"typed":"sys.","filetype":"python","curpos":[0,5,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":5,"bufnr":1,"col":5,"changedtick":84,"typed":"sys.","filetype":"python","curpos":[0,5,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_refresh",["",-1,-1],{"lnum":5,"bufnr":1,"col":5,"changedtick":84,"typed":"sys.","filetype":"python","curpos":[0,5,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","completor()","asyncomplete_lsp_pyls",{"lnum":5,"bufnr":1,"col":5,"changedtick":84,"typed":"sys.","filetype":"python","curpos":[0,5,5,0,5],"filepath":"/tmp/test/test.py"}]
["core","s:python_cm_complete","asyncomplete_lsp_pyls",{"lnum":5,"bufnr":1,"col":5,"changedtick":84,"typed":"sys.","filetype":"python","curpos":[0,5,5,0,5],"filepath":"/tmp/test/test.py"},5,false,0]

Log from vim-lsp:

sob, 25 lis 2017, 13:48:31:["s:on_text_document_did_change()",3]
sob, 25 lis 2017, 13:48:41:["s:on_text_document_did_save()",1]
sob, 25 lis 2017, 13:48:41:[{"response":{"data":{"__data__":"vim-lsp","server_name":"pyls"},"message":"server already started"}}]
sob, 25 lis 2017, 13:48:41:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"result":{"capabilities":{"codeLensProvider":{"resolveProvider":false},"executeCommandProvider":{"commands":[]},"textDocumentSync":2,"hoverProvider":true,"documentFormattingProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":true,"codeActionProvider":true,"completionProvider":{"resolveProvider":false,"triggerCharacters":["."]},"documentRangeFormattingProvider":true,"referencesProvider":true}},"jsonrpc":"2.0"},"server_name":"pyls"},"message":"lsp server already initialized"}}]
sob, 25 lis 2017, 13:48:41:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"already opened"}}]
sob, 25 lis 2017, 13:48:41:["--->",1,"pyls",{"method":"textDocument/didChange","params":{"contentChanges":[{"text":"#!/usr/bin/env python"}],"textDocument":{"uri":"file:///tmp/test/test.py","version":2}}}]
sob, 25 lis 2017, 13:48:41:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"textDocument/didChange sent"}}]
sob, 25 lis 2017, 13:48:41:["--->",1,"pyls",{"method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///tmp/test/test.py","version":2}}}]
sob, 25 lis 2017, 13:48:41:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"textDocument/didSave sent"}}]
sob, 25 lis 2017, 13:48:42:["<---",1,"pyls",{"response":{"method":"textDocument/publishDiagnostics","jsonrpc":"2.0","params":{"uri":"file:///tmp/test/test.py","diagnostics":[{"source":"pycodestyle","code":"W292","message":"W292 no newline at end of file","severity":2,"range":{"end":{"character":21,"line":0},"start":{"character":21,"line":0}}}]}}}]
sob, 25 lis 2017, 13:48:47:[{"response":{"data":{"__data__":"vim-lsp","server_name":"pyls"},"message":"server already started"}}]
sob, 25 lis 2017, 13:48:47:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"result":{"capabilities":{"codeLensProvider":{"resolveProvider":false},"executeCommandProvider":{"commands":[]},"textDocumentSync":2,"hoverProvider":true,"documentFormattingProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":true,"codeActionProvider":true,"completionProvider":{"resolveProvider":false,"triggerCharacters":["."]},"documentRangeFormattingProvider":true,"referencesProvider":true}},"jsonrpc":"2.0"},"server_name":"pyls"},"message":"lsp server already initialized"}}]
sob, 25 lis 2017, 13:48:47:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"already opened"}}]
sob, 25 lis 2017, 13:48:47:["--->",1,"pyls",{"method":"textDocument/didChange","params":{"contentChanges":[{"text":"#!/usr/bin/env python\n\ni"}],"textDocument":{"uri":"file:///tmp/test/test.py","version":3}}}]
sob, 25 lis 2017, 13:48:47:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"textDocument/didChange sent"}}]
sob, 25 lis 2017, 13:48:47:["--->",1,"pyls",{"method":"textDocument/completion","on_notification":"---funcref---","params":{"textDocument":{"uri":"file:///tmp/test/test.py"},"position":{"character":1,"line":2}}}]
sob, 25 lis 2017, 13:48:47:["<---",1,"pyls",{"response":{"id":2,"result":{"isIncomplete":false,"items":[{"label":"int","sortText":"zint","kind":7,"documentation":"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given.  If x is a number, return x.__int__().  For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base.  The literal can be preceded by '+' or '-' and be surrounded\nby whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4","detail":"builtin int"},{"label":"id","sortText":"zid","kind":3,"documentation":"Return the identity of an object.\n\nThis is guaranteed to be unique among simultaneously existing objects.\n(CPython uses the object's memory address.)","detail":"builtin id"},{"label":"input","sortText":"zinput","kind":3,"documentation":"Read a string from standard input.  The trailing newline is stripped.\n\nThe prompt string, if given, is printed to standard output without a\ntrailing newline before reading input.\n\nIf the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.\nOn *nix systems, readline is used if available.","detail":"builtin input"},{"label":"isinstance","sortText":"zisinstance","kind":3,"documentation":"Return whether an object is an instance of a class or of a subclass thereof.\n\nA tuple, as in ``isinstance(x, (A, B, ...))``, may be given as the target to\ncheck against. This is equivalent to ``isinstance(x, A) or isinstance(x, B)\nor ...`` etc.","detail":"builtin isinstance"},{"label":"issubclass","sortText":"zissubclass","kind":3,"documentation":"Return whether 'cls' is a derived from another class or is the same class.\n\nA tuple, as in ``issubclass(x, (A, B, ...))``, may be given as the target to\ncheck against. This is equivalent to ``issubclass(x, A) or issubclass(x, B)\nor ...`` etc.","detail":"builtin issubclass"},{"label":"iter","sortText":"ziter","kind":3,"documentation":"iter(iterable) -> iterator\niter(callable, sentinel) -> iterator\n\nGet an iterator from an object.  In the first form, the argument must\nsupply its own iterator, or be a sequence.\nIn the second form, the callable is called until it returns the sentinel.","detail":"builtin iter"},{"label":"if","sortText":"aif","kind":18,"documentation":"","detail":"keyword if"},{"label":"import","sortText":"aimport","kind":18,"documentation":"","detail":"keyword import"},{"label":"in","sortText":"ain","kind":18,"documentation":"","detail":"keyword in"},{"label":"is","sortText":"ais","kind":18,"documentation":"","detail":"keyword is"}]},"jsonrpc":"2.0"},"request":{"method":"textDocument/completion","jsonrpc":"2.0","id":2,"params":{"textDocument":{"uri":"file:///tmp/test/test.py"},"position":{"character":1,"line":2}}}}]
sob, 25 lis 2017, 13:48:48:["<---",1,"pyls",{"response":{"method":"textDocument/publishDiagnostics","jsonrpc":"2.0","params":{"uri":"file:///tmp/test/test.py","diagnostics":[{"source":"pyflakes","message":"undefined name 'i'","severity":2,"range":{"end":{"character":1,"line":2},"start":{"character":0,"line":2}}},{"source":"pycodestyle","code":"W292","message":"W292 no newline at end of file","severity":2,"range":{"end":{"character":1,"line":2},"start":{"character":1,"line":2}}}]}}}]
sob, 25 lis 2017, 13:48:50:[{"response":{"data":{"__data__":"vim-lsp","server_name":"pyls"},"message":"server already started"}}]
sob, 25 lis 2017, 13:48:50:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"result":{"capabilities":{"codeLensProvider":{"resolveProvider":false},"executeCommandProvider":{"commands":[]},"textDocumentSync":2,"hoverProvider":true,"documentFormattingProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":true,"codeActionProvider":true,"completionProvider":{"resolveProvider":false,"triggerCharacters":["."]},"documentRangeFormattingProvider":true,"referencesProvider":true}},"jsonrpc":"2.0"},"server_name":"pyls"},"message":"lsp server already initialized"}}]
sob, 25 lis 2017, 13:48:50:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"already opened"}}]
sob, 25 lis 2017, 13:48:50:["--->",1,"pyls",{"method":"textDocument/didChange","params":{"contentChanges":[{"text":"#!/usr/bin/env python\n\nimport s"}],"textDocument":{"uri":"file:///tmp/test/test.py","version":4}}}]
sob, 25 lis 2017, 13:48:50:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"textDocument/didChange sent"}}]
sob, 25 lis 2017, 13:48:50:["--->",1,"pyls",{"method":"textDocument/completion","on_notification":"---funcref---","params":{"textDocument":{"uri":"file:///tmp/test/test.py"},"position":{"character":8,"line":2}}}]
sob, 25 lis 2017, 13:48:50:["<---",1,"pyls",{"response":{"id":3,"result":{"isIncomplete":false,"items":[{"label":"s","sortText":"as","kind":9,"documentation":"","detail":"imported s"},{"label":"set","sortText":"zset","kind":7,"documentation":"set() -> new empty set object\nset(iterable) -> new set object\n\nBuild an unordered collection of unique elements.","detail":"builtin set"},{"label":"slice","sortText":"zslice","kind":7,"documentation":"slice(stop)\nslice(start, stop[, step])\n\nCreate a slice object.  This is used for extended slicing (e.g. a[0:10:2]).","detail":"builtin slice"},{"label":"staticmethod","sortText":"zstaticmethod","kind":7,"documentation":"staticmethod(function) -> method\n\nConvert a function to be a static method.\n\nA static method does not receive an implicit first argument.\nTo declare a static method, use this idiom:\n\n     class C:\n         @staticmethod\n         def f(arg1, arg2, ...):\n             ...\n\nIt can be called either on the class (e.g. C.f()) or on an instance\n(e.g. C().f()).  The instance is ignored except for its class.\n\nStatic methods in Python are similar to those found in Java or C++.\nFor a more advanced concept, see the classmethod builtin.","detail":"builtin staticmethod"},{"label":"str","sortText":"zstr","kind":7,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin str"},{"label":"setattr","sortText":"zsetattr","kind":3,"documentation":"Sets the named attribute on the given object to the specified value.\n\nsetattr(x, 'y', v) is equivalent to ``x.y = v''","detail":"builtin setattr"},{"label":"sorted","sortText":"zsorted","kind":3,"documentation":"Return a new list containing all items from the iterable in ascending order.\n\nA custom key function can be supplied to customize the sort order, and the\nreverse flag can be set to request the result in descending order.","detail":"builtin sorted"},{"label":"sum","sortText":"zsum","kind":3,"documentation":"Return the sum of a 'start' value (default: 0) plus an iterable of numbers\n\nWhen the iterable is empty, return the start value.\nThis function is intended specifically for use with numeric values and may\nreject non-numeric types.","detail":"builtin sum"},{"label":"super","sortText":"zsuper","kind":3,"documentation":"super() -> same as super(__class__, <first argument>)\nsuper(type) -> unbound super object\nsuper(type, obj) -> bound super object; requires isinstance(obj, type)\nsuper(type, type2) -> bound super object; requires issubclass(type2, type)\nTypical use to call a cooperative superclass method:\nclass C(B):\n    def meth(self, arg):\n        super().meth(arg)\nThis works for class methods too:\nclass C(B):\n    @classmethod\n    def cmeth(cls, arg):\n        super().cmeth(arg)\n","detail":"builtin super"}]},"jsonrpc":"2.0"},"request":{"method":"textDocument/completion","jsonrpc":"2.0","id":3,"params":{"textDocument":{"uri":"file:///tmp/test/test.py"},"position":{"character":8,"line":2}}}}]
sob, 25 lis 2017, 13:48:50:["<---",1,"pyls",{"response":{"method":"textDocument/publishDiagnostics","jsonrpc":"2.0","params":{"uri":"file:///tmp/test/test.py","diagnostics":[{"source":"pyflakes","message":"'s' imported but unused","severity":2,"range":{"end":{"character":8,"line":2},"start":{"character":0,"line":2}}},{"source":"pycodestyle","code":"W292","message":"W292 no newline at end of file","severity":2,"range":{"end":{"character":8,"line":2},"start":{"character":8,"line":2}}}]}}}]
sob, 25 lis 2017, 13:48:52:[{"response":{"data":{"__data__":"vim-lsp","server_name":"pyls"},"message":"server already started"}}]
sob, 25 lis 2017, 13:48:52:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"result":{"capabilities":{"codeLensProvider":{"resolveProvider":false},"executeCommandProvider":{"commands":[]},"textDocumentSync":2,"hoverProvider":true,"documentFormattingProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":true,"codeActionProvider":true,"completionProvider":{"resolveProvider":false,"triggerCharacters":["."]},"documentRangeFormattingProvider":true,"referencesProvider":true}},"jsonrpc":"2.0"},"server_name":"pyls"},"message":"lsp server already initialized"}}]
sob, 25 lis 2017, 13:48:52:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"already opened"}}]
sob, 25 lis 2017, 13:48:52:["--->",1,"pyls",{"method":"textDocument/didChange","params":{"contentChanges":[{"text":"#!/usr/bin/env python\n\nimport sys\n\ns"}],"textDocument":{"uri":"file:///tmp/test/test.py","version":5}}}]
sob, 25 lis 2017, 13:48:52:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"textDocument/didChange sent"}}]
sob, 25 lis 2017, 13:48:52:["--->",1,"pyls",{"method":"textDocument/completion","on_notification":"---funcref---","params":{"textDocument":{"uri":"file:///tmp/test/test.py"},"position":{"character":1,"line":4}}}]
sob, 25 lis 2017, 13:48:52:["<---",1,"pyls",{"response":{"id":4,"result":{"isIncomplete":false,"items":[{"label":"sys","sortText":"asys","kind":9,"documentation":"This module provides access to some objects used or maintained by the\ninterpreter and to functions that interact strongly with the interpreter.\n\nDynamic objects:\n\nargv -- command line arguments; argv[0] is the script pathname if known\npath -- module search path; path[0] is the script directory, else ''\nmodules -- dictionary of loaded modules\n\ndisplayhook -- called to show results in an interactive session\nexcepthook -- called to handle any uncaught exception other than SystemExit\n  To customize printing in an interactive session or to install a custom\n  top-level exception handler, assign other functions to replace these.\n\nstdin -- standard input file object; used by input()\nstdout -- standard output file object; used by print()\nstderr -- standard error object; used for error messages\n  By assigning other file objects (or objects that behave like files)\n  to these, it is possible to redirect all of the interpreter's I/O.\n\nlast_type -- type of last uncaught exception\nlast_value -- value of last uncaught exception\nlast_traceback -- traceback of last uncaught exception\n  These three are only available in an interactive session after a\n  traceback has been printed.\n\nStatic objects:\n\nbuiltin_module_names -- tuple of module names built into this interpreter\ncopyright -- copyright notice pertaining to this interpreter\nexec_prefix -- prefix used to find the machine-specific Python library\nexecutable -- absolute path of the executable binary of the Python interpreter\nfloat_info -- a struct sequence with information about the float implementation.\nfloat_repr_style -- string indicating the style of repr() output for floats\nhash_info -- a struct sequence with information about the hash algorithm.\nhexversion -- version information encoded as a single integer\nimplementation -- Python implementation information.\nint_info -- a struct sequence with information about the int implementation.\nmaxsize -- the largest supported length of containers.\nmaxunicode -- the value of the largest Unicode code point\nplatform -- platform identifier\nprefix -- prefix used to find the Python library\nthread_info -- a struct sequence with information about the thread implementation.\nversion -- the version of this interpreter as a string\nversion_info -- version information as a named tuple\n__stdin__ -- the original stdin; don't touch!\n__stdout__ -- the original stdout; don't touch!\n__stderr__ -- the original stderr; don't touch!\n__displayhook__ -- the original displayhook; don't touch!\n__excepthook__ -- the original excepthook; don't touch!\n\nFunctions:\n\ndisplayhook() -- print an object to the screen, and save it in builtins._\nexcepthook() -- print an exception and its traceback to sys.stderr\nexc_info() -- return thread-safe information about the current exception\nexit() -- exit the interpreter by raising SystemExit\ngetdlopenflags() -- returns flags to be used for dlopen() calls\ngetprofile() -- get the global profiling function\ngetrefcount() -- return the reference count for an object (plus one :-)\ngetrecursionlimit() -- return the max recursion depth for the interpreter\ngetsizeof() -- return the size of an object in bytes\ngettrace() -- get the global debug tracing function\nsetcheckinterval() -- control how often the interpreter checks for events\nsetdlopenflags() -- set the flags to be used for dlopen() calls\nsetprofile() -- set the global profiling function\nsetrecursionlimit() -- set the max recursion depth for the interpreter\nsettrace() -- set the global debug tracing function\n","detail":"imported sys"},{"label":"set","sortText":"zset","kind":7,"documentation":"set() -> new empty set object\nset(iterable) -> new set object\n\nBuild an unordered collection of unique elements.","detail":"builtin set"},{"label":"slice","sortText":"zslice","kind":7,"documentation":"slice(stop)\nslice(start, stop[, step])\n\nCreate a slice object.  This is used for extended slicing (e.g. a[0:10:2]).","detail":"builtin slice"},{"label":"staticmethod","sortText":"zstaticmethod","kind":7,"documentation":"staticmethod(function) -> method\n\nConvert a function to be a static method.\n\nA static method does not receive an implicit first argument.\nTo declare a static method, use this idiom:\n\n     class C:\n         @staticmethod\n         def f(arg1, arg2, ...):\n             ...\n\nIt can be called either on the class (e.g. C.f()) or on an instance\n(e.g. C().f()).  The instance is ignored except for its class.\n\nStatic methods in Python are similar to those found in Java or C++.\nFor a more advanced concept, see the classmethod builtin.","detail":"builtin staticmethod"},{"label":"str","sortText":"zstr","kind":7,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin str"},{"label":"setattr","sortText":"zsetattr","kind":3,"documentation":"Sets the named attribute on the given object to the specified value.\n\nsetattr(x, 'y', v) is equivalent to ``x.y = v''","detail":"builtin setattr"},{"label":"sorted","sortText":"zsorted","kind":3,"documentation":"Return a new list containing all items from the iterable in ascending order.\n\nA custom key function can be supplied to customize the sort order, and the\nreverse flag can be set to request the result in descending order.","detail":"builtin sorted"},{"label":"sum","sortText":"zsum","kind":3,"documentation":"Return the sum of a 'start' value (default: 0) plus an iterable of numbers\n\nWhen the iterable is empty, return the start value.\nThis function is intended specifically for use with numeric values and may\nreject non-numeric types.","detail":"builtin sum"},{"label":"super","sortText":"zsuper","kind":3,"documentation":"super() -> same as super(__class__, <first argument>)\nsuper(type) -> unbound super object\nsuper(type, obj) -> bound super object; requires isinstance(obj, type)\nsuper(type, type2) -> bound super object; requires issubclass(type2, type)\nTypical use to call a cooperative superclass method:\nclass C(B):\n    def meth(self, arg):\n        super().meth(arg)\nThis works for class methods too:\nclass C(B):\n    @classmethod\n    def cmeth(cls, arg):\n        super().cmeth(arg)\n","detail":"builtin super"}]},"jsonrpc":"2.0"},"request":{"method":"textDocument/completion","jsonrpc":"2.0","id":4,"params":{"textDocument":{"uri":"file:///tmp/test/test.py"},"position":{"character":1,"line":4}}}}]
sob, 25 lis 2017, 13:48:52:["<---",1,"pyls",{"response":{"method":"textDocument/publishDiagnostics","jsonrpc":"2.0","params":{"uri":"file:///tmp/test/test.py","diagnostics":[{"source":"pyflakes","message":"'sys' imported but unused","severity":2,"range":{"end":{"character":11,"line":2},"start":{"character":0,"line":2}}},{"source":"pyflakes","message":"undefined name 's'","severity":2,"range":{"end":{"character":1,"line":4},"start":{"character":0,"line":4}}},{"source":"pycodestyle","code":"W292","message":"W292 no newline at end of file","severity":2,"range":{"end":{"character":1,"line":4},"start":{"character":1,"line":4}}}]}}}]
sob, 25 lis 2017, 13:48:54:[{"response":{"data":{"__data__":"vim-lsp","server_name":"pyls"},"message":"server already started"}}]
sob, 25 lis 2017, 13:48:54:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"result":{"capabilities":{"codeLensProvider":{"resolveProvider":false},"executeCommandProvider":{"commands":[]},"textDocumentSync":2,"hoverProvider":true,"documentFormattingProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":true,"codeActionProvider":true,"completionProvider":{"resolveProvider":false,"triggerCharacters":["."]},"documentRangeFormattingProvider":true,"referencesProvider":true}},"jsonrpc":"2.0"},"server_name":"pyls"},"message":"lsp server already initialized"}}]
sob, 25 lis 2017, 13:48:54:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"already opened"}}]
sob, 25 lis 2017, 13:48:54:["--->",1,"pyls",{"method":"textDocument/didChange","params":{"contentChanges":[{"text":"#!/usr/bin/env python\n\nimport sys\n\nsys."}],"textDocument":{"uri":"file:///tmp/test/test.py","version":6}}}]
sob, 25 lis 2017, 13:48:54:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"textDocument/didChange sent"}}]
sob, 25 lis 2017, 13:48:54:["--->",1,"pyls",{"method":"textDocument/completion","on_notification":"---funcref---","params":{"textDocument":{"uri":"file:///tmp/test/test.py"},"position":{"character":4,"line":4}}}]
sob, 25 lis 2017, 13:48:54:["<---",1,"pyls",{"response":{"id":5,"result":{"isIncomplete":false,"items":[{"label":"__loader__","sortText":"z__loader__","kind":7,"documentation":"Meta path import for built-in modules.\n\n    All methods are either class or static methods to avoid the need to\n    instantiate the class.\n\n    ","detail":"builtin __loader__"},{"label":"callstats","sortText":"zcallstats","kind":3,"documentation":"callstats() -> tuple of integers\n\nReturn a tuple of function call statistics, if CALL_PROFILE was defined\nwhen Python was built.  Otherwise, return None.\n\nWhen enabled, this function returns detailed, implementation-specific\ndetails about the number of function calls executed. The return value is\na 11-tuple where the entries in the tuple are counts of:\n0. all function calls\n1. calls to PyFunction_Type objects\n2. PyFunction calls that do not create an argument tuple\n3. PyFunction calls that do not create an argument tuple\n   and bypass PyEval_EvalCodeEx()\n4. PyMethod calls\n5. PyMethod calls on bound methods\n6. PyType calls\n7. PyCFunction calls\n8. generator calls\n9. All other calls\n10. Number of stack pops performed by call_function()","detail":"builtin callstats"},{"label":"displayhook","sortText":"zdisplayhook","kind":3,"documentation":"displayhook(object) -> None\n\nPrint an object to sys.stdout and also save it in builtins._\n","detail":"builtin displayhook"},{"label":"excepthook","sortText":"zexcepthook","kind":3,"documentation":"excepthook(exctype, value, traceback) -> None\n\nHandle an exception by displaying it with a traceback on sys.stderr.\n","detail":"builtin excepthook"},{"label":"exit","sortText":"zexit","kind":3,"documentation":"exit([status])\n\nExit the interpreter by raising SystemExit(status).\nIf the status is omitted or None, it defaults to zero (i.e., success).\nIf the status is an integer, it will be used as the system exit status.\nIf it is another kind of object, it will be printed and the system\nexit status will be one (i.e., failure).","detail":"builtin exit"},{"label":"getallocatedblocks","sortText":"zgetallocatedblocks","kind":3,"documentation":"getallocatedblocks() -> integer\n\nReturn the number of memory blocks currently allocated, regardless of their\nsize.","detail":"builtin getallocatedblocks"},{"label":"getcheckinterval","sortText":"zgetcheckinterval","kind":3,"documentation":"getcheckinterval() -> current check interval; see setcheckinterval().","detail":"builtin getcheckinterval"},{"label":"getdefaultencoding","sortText":"zgetdefaultencoding","kind":3,"documentation":"getdefaultencoding() -> string\n\nReturn the current default string encoding used by the Unicode \nimplementation.","detail":"builtin getdefaultencoding"},{"label":"getdlopenflags","sortText":"zgetdlopenflags","kind":3,"documentation":"getdlopenflags() -> int\n\nReturn the current value of the flags that are used for dlopen calls.\nThe flag constants are defined in the os module.","detail":"builtin getdlopenflags"},{"label":"getfilesystemencodeerrors","sortText":"zgetfilesystemencodeerrors","kind":3,"documentation":"getfilesystemencodeerrors() -> string\n\nReturn the error mode used to convert Unicode filenames in\noperating system filenames.","detail":"builtin getfilesystemencodeerrors"},{"label":"getfilesystemencoding","sortText":"zgetfilesystemencoding","kind":3,"documentation":"getfilesystemencoding() -> string\n\nReturn the encoding used to convert Unicode filenames in\noperating system filenames.","detail":"builtin getfilesystemencoding"},{"label":"getprofile","sortText":"zgetprofile","kind":3,"documentation":"getprofile()\n\nReturn the profiling function set with sys.setprofile.\nSee the profiler chapter in the library manual.","detail":"builtin getprofile"},{"label":"getrecursionlimit","sortText":"zgetrecursionlimit","kind":3,"documentation":"getrecursionlimit()\n\nReturn the current value of the recursion limit, the maximum depth\nof the Python interpreter stack.  This limit prevents infinite\nrecursion from causing an overflow of the C stack and crashing Python.","detail":"builtin getrecursionlimit"},{"label":"getrefcount","sortText":"zgetrefcount","kind":3,"documentation":"getrefcount(object) -> integer\n\nReturn the reference count of object.  The count returned is generally\none higher than you might expect, because it includes the (temporary)\nreference as an argument to getrefcount().","detail":"builtin getrefcount"},{"label":"getsizeof","sortText":"zgetsizeof","kind":3,"documentation":"getsizeof(object, default) -> int\n\nReturn the size of object in bytes.","detail":"builtin getsizeof"},{"label":"getswitchinterval","sortText":"zgetswitchinterval","kind":3,"documentation":"getswitchinterval() -> current thread switch interval; see setswitchinterval().","detail":"builtin getswitchinterval"},{"label":"gettrace","sortText":"zgettrace","kind":3,"documentation":"gettrace()\n\nReturn the global debug tracing function set with sys.settrace.\nSee the debugger chapter in the library manual.","detail":"builtin gettrace"},{"label":"intern","sortText":"zintern","kind":3,"documentation":"intern(string) -> string\n\n``Intern'' the given string.  This enters the string in the (global)\ntable of interned strings whose purpose is to speed up dictionary lookups.\nReturn the string itself or the previously interned string object with the\nsame value.","detail":"builtin intern"},{"label":"setcheckinterval","sortText":"zsetcheckinterval","kind":3,"documentation":"setcheckinterval(n)\n\nTell the Python interpreter to check for asynchronous events every\nn instructions.  This also affects how often thread switches occur.","detail":"builtin setcheckinterval"},{"label":"setdlopenflags","sortText":"zsetdlopenflags","kind":3,"documentation":"setdlopenflags(n) -> None\n\nSet the flags used by the interpreter for dlopen calls, such as when the\ninterpreter loads extension modules.  Among other things, this will enable\na lazy resolving of symbols when importing a module, if called as\nsys.setdlopenflags(0).  To share symbols across extension modules, call as\nsys.setdlopenflags(os.RTLD_GLOBAL).  Symbolic names for the flag modules\ncan be found in the os module (RTLD_xxx constants, e.g. os.RTLD_LAZY).","detail":"builtin setdlopenflags"},{"label":"setprofile","sortText":"zsetprofile","kind":3,"documentation":"setprofile(function)\n\nSet the profiling function.  It will be called on each function call\nand return.  See the profiler chapter in the library manual.","detail":"builtin setprofile"},{"label":"setrecursionlimit","sortText":"zsetrecursionlimit","kind":3,"documentation":"setrecursionlimit(n)\n\nSet the maximum depth of the Python interpreter stack to n.  This\nlimit prevents infinite recursion from causing an overflow of the C\nstack and crashing Python.  The highest possible limit is platform-\ndependent.","detail":"builtin setrecursionlimit"},{"label":"setswitchinterval","sortText":"zsetswitchinterval","kind":3,"documentation":"setswitchinterval(n)\n\nSet the ideal thread switching delay inside the Python interpreter\nThe actual frequency of switching threads can be lower if the\ninterpreter executes long sequences of uninterruptible code\n(this is implementation-specific and workload-dependent).\n\nThe parameter must represent the desired switching delay in seconds\nA typical value is 0.005 (5 milliseconds).","detail":"builtin setswitchinterval"},{"label":"settrace","sortText":"zsettrace","kind":3,"documentation":"settrace(function)\n\nSet the global debug tracing function.  It will be called on each\nfunction call.  See the debugger chapter in the library manual.","detail":"builtin settrace"},{"label":"_debugmallocstats","sortText":"z_debugmallocstats","kind":3,"documentation":"_debugmallocstats()\n\nPrint summary info to stderr about the state of\npymalloc's structures.\n\nIn Py_DEBUG mode, also perform some expensive internal consistency\nchecks.\n","detail":"builtin _debugmallocstats"},{"label":"_getframe","sortText":"z_getframe","kind":3,"documentation":"_getframe([depth]) -> frameobject\n\nReturn a frame object from the call stack.  If optional integer depth is\ngiven, return the frame object that many calls below the top of the stack.\nIf that is deeper than the call stack, ValueError is raised.  The default\nfor depth is zero, returning the frame at the top of the call stack.\n\nThis function should be used for internal and specialized\npurposes only.","detail":"builtin _getframe"},{"label":"call_tracing","sortText":"zcall_tracing","kind":3,"documentation":"call_tracing(func, args) -> object\n\nCall func(*args), while tracing is enabled.  The tracing state is\nsaved, and restored afterwards.  This is intended to be called from\na debugger from a checkpoint, to recursively debug some other code.","detail":"builtin call_tracing"},{"label":"exc_info","sortText":"zexc_info","kind":3,"documentation":"exc_info() -> (type, value, traceback)\n\nReturn information about the most recent exception caught by an except\nclause in the current stack frame or in an older stack frame.","detail":"builtin exc_info"},{"label":"is_finalizing","sortText":"zis_finalizing","kind":3,"documentation":"is_finalizing()\nReturn True if Python is exiting.","detail":"builtin is_finalizing"},{"label":"_current_frames","sortText":"z_current_frames","kind":3,"documentation":"_current_frames() -> dictionary\n\nReturn a dictionary mapping each current thread T's thread id to T's\ncurrent stack frame.\n\nThis function should be used for specialized purposes only.","detail":"builtin _current_frames"},{"label":"get_asyncgen_hooks","sortText":"zget_asyncgen_hooks","kind":3,"documentation":"get_asyncgen_hooks()\n\nReturn a namedtuple of installed asynchronous generators hooks (firstiter, finalizer).","detail":"builtin get_asyncgen_hooks"},{"label":"get_coroutine_wrapper","sortText":"zget_coroutine_wrapper","kind":3,"documentation":"get_coroutine_wrapper()\n\nReturn the wrapper for coroutine objects set by sys.set_coroutine_wrapper.","detail":"builtin get_coroutine_wrapper"},{"label":"set_asyncgen_hooks","sortText":"zset_asyncgen_hooks","kind":3,"documentation":"set_asyncgen_hooks(*, firstiter=None, finalizer=None)\n\nSet a finalizer for async generators objects.","detail":"builtin set_asyncgen_hooks"},{"label":"set_coroutine_wrapper","sortText":"zset_coroutine_wrapper","kind":3,"documentation":"set_coroutine_wrapper(wrapper)\n\nSet a wrapper for coroutine objects.","detail":"builtin set_coroutine_wrapper"},{"label":"_clear_type_cache","sortText":"z_clear_type_cache","kind":3,"documentation":"_clear_type_cache() -> None\nClear the internal type lookup cache.","detail":"builtin _clear_type_cache"},{"label":"__displayhook__","sortText":"z__displayhook__","kind":3,"documentation":"displayhook(object) -> None\n\nPrint an object to sys.stdout and also save it in builtins._\n","detail":"builtin __displayhook__"},{"label":"__excepthook__","sortText":"z__excepthook__","kind":3,"documentation":"excepthook(exctype, value, traceback) -> None\n\nHandle an exception by displaying it with a traceback on sys.stderr.\n","detail":"builtin __excepthook__"},{"label":"__interactivehook__","sortText":"z__interactivehook__","kind":3,"documentation":"","detail":"builtin __interactivehook__"},{"label":"abiflags","sortText":"zabiflags","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin abiflags"},{"label":"argv","sortText":"zargv","kind":18,"documentation":"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items","detail":"builtin argv"},{"label":"byteorder","sortText":"zbyteorder","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin byteorder"},{"label":"copyright","sortText":"zcopyright","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin copyright"},{"label":"executable","sortText":"zexecutable","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin executable"},{"label":"flags","sortText":"zflags","kind":18,"documentation":"sys.flags\n\nFlags provided through command line arguments or environment vars.","detail":"builtin flags"},{"label":"hexversion","sortText":"zhexversion","kind":18,"documentation":"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given.  If x is a number, return x.__int__().  For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base.  The literal can be preceded by '+' or '-' and be surrounded\nby whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4","detail":"builtin hexversion"},{"label":"implementation","sortText":"zimplementation","kind":18,"documentation":"A simple attribute-based namespace.\n\nSimpleNamespace(**kwargs)","detail":"builtin implementation"},{"label":"maxsize","sortText":"zmaxsize","kind":18,"documentation":"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given.  If x is a number, return x.__int__().  For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base.  The literal can be preceded by '+' or '-' and be surrounded\nby whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4","detail":"builtin maxsize"},{"label":"maxunicode","sortText":"zmaxunicode","kind":18,"documentation":"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given.  If x is a number, return x.__int__().  For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base.  The literal can be preceded by '+' or '-' and be surrounded\nby whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4","detail":"builtin maxunicode"},{"label":"modules","sortText":"zmodules","kind":18,"documentation":"dict() -> new empty dictionary\ndict(mapping) -> new dictionary initialized from a mapping object's\n    (key, value) pairs\ndict(iterable) -> new dictionary initialized as if via:\n    d = {}\n    for k, v in iterable:\n        d[k] = v\ndict(**kwargs) -> new dictionary initialized with the name=value pairs\n    in the keyword argument list.  For example:  dict(one=1, two=2)","detail":"builtin modules"},{"label":"path","sortText":"zpath","kind":18,"documentation":"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items","detail":"builtin path"},{"label":"platform","sortText":"zplatform","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin platform"},{"label":"prefix","sortText":"zprefix","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin prefix"},{"label":"stderr","sortText":"zstderr","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin stderr"},{"label":"stdin","sortText":"zstdin","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin stdin"},{"label":"stdout","sortText":"zstdout","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin stdout"},{"label":"version","sortText":"zversion","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin version"},{"label":"warnoptions","sortText":"zwarnoptions","kind":18,"documentation":"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items","detail":"builtin warnoptions"},{"label":"_git","sortText":"z_git","kind":18,"documentation":"tuple() -> empty tuple\ntuple(iterable) -> tuple initialized from iterable's items\n\nIf the argument is a tuple, the return value is the same object.","detail":"builtin _git"},{"label":"_home","sortText":"z_home","kind":18,"documentation":"","detail":"builtin _home"},{"label":"_xoptions","sortText":"z_xoptions","kind":18,"documentation":"","detail":"builtin _xoptions"},{"label":"api_version","sortText":"zapi_version","kind":18,"documentation":"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given.  If x is a number, return x.__int__().  For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base.  The literal can be preceded by '+' or '-' and be surrounded\nby whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4","detail":"builtin api_version"},{"label":"base_prefix","sortText":"zbase_prefix","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin base_prefix"},{"label":"exec_prefix","sortText":"zexec_prefix","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin exec_prefix"},{"label":"float_info","sortText":"zfloat_info","kind":18,"documentation":"sys.float_info\n\nA structseq holding information about the float type. It contains low level\ninformation about the precision and internal representation. Please study\nyour system's :file:`float.h` for more information.","detail":"builtin float_info"},{"label":"hash_info","sortText":"zhash_info","kind":18,"documentation":"hash_info\n\nA struct sequence providing parameters used for computing\nhashes. The attributes are read only.","detail":"builtin hash_info"},{"label":"int_info","sortText":"zint_info","kind":18,"documentation":"sys.int_info\n\nA struct sequence that holds information about Python's\ninternal representation of integers.  The attributes are read only.","detail":"builtin int_info"},{"label":"meta_path","sortText":"zmeta_path","kind":18,"documentation":"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items","detail":"builtin meta_path"},{"label":"path_hooks","sortText":"zpath_hooks","kind":18,"documentation":"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items","detail":"builtin path_hooks"},{"label":"py2_modules","sortText":"zpy2_modules","kind":18,"documentation":"","detail":"builtin py2_modules"},{"label":"thread_info","sortText":"zthread_info","kind":18,"documentation":"sys.thread_info\n\nA struct sequence holding information about the thread implementation.","detail":"builtin thread_info"},{"label":"version_info","sortText":"zversion_info","kind":18,"documentation":"sys.version_info\n\nVersion information as a named tuple.","detail":"builtin version_info"},{"label":"base_exec_prefix","sortText":"zbase_exec_prefix","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin base_exec_prefix"},{"label":"builtin_module_names","sortText":"zbuiltin_module_names","kind":18,"documentation":"tuple() -> empty tuple\ntuple(iterable) -> tuple initialized from iterable's items\n\nIf the argument is a tuple, the return value is the same object.","detail":"builtin builtin_module_names"},{"label":"dont_write_bytecode","sortText":"zdont_write_bytecode","kind":18,"documentation":"","detail":"builtin dont_write_bytecode"},{"label":"float_repr_style","sortText":"zfloat_repr_style","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin float_repr_style"},{"label":"path_importer_cache","sortText":"zpath_importer_cache","kind":18,"documentation":"dict() -> new empty dictionary\ndict(mapping) -> new dictionary initialized from a mapping object's\n    (key, value) pairs\ndict(iterable) -> new dictionary initialized as if via:\n    d = {}\n    for k, v in iterable:\n        d[k] = v\ndict(**kwargs) -> new dictionary initialized with the name=value pairs\n    in the keyword argument list.  For example:  dict(one=1, two=2)","detail":"builtin path_importer_cache"},{"label":"__doc__","sortText":"z__doc__","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin __doc__"},{"label":"__name__","sortText":"z__name__","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin __name__"},{"label":"__package__","sortText":"z__package__","kind":18,"documentation":"","detail":"builtin __package__"},{"label":"__spec__","sortText":"z__spec__","kind":18,"documentation":"The specification for a module, used for loading.\n\n    A module's spec is the source for information about the module.  For\n    data associated with the module, including source, use the spec's\n    loader.\n\n    `name` is the absolute name of the module.  `loader` is the loader\n    to use when loading the module.  `parent` is the name of the\n    package the module is in.  The parent is derived from the name.\n\n    `is_package` determines if the module is considered a package or\n    not.  On modules this is reflected by the `__path__` attribute.\n\n    `origin` is the specific location used by the loader from which to\n    load the module, if that information is available.  When filename is\n    set, origin will match.\n\n    `has_location` indicates that a spec's \"origin\" reflects a location.\n    When this is True, `__file__` attribute of the module is set.\n\n    `cached` is the location of the cached bytecode file, if any.  It\n    corresponds to the `__cached__` attribute.\n\n    `submodule_search_locations` is the sequence of path entries to\n    search when importing submodules.  If set, is_package should be\n    True--and False otherwise.\n\n    Packages are simply modules that (may) have submodules.  If a spec\n    has a non-None value in `submodule_search_locations`, the import\n    system will consider modules loaded from the spec as packages.\n\n    Only finders (see importlib.abc.MetaPathFinder and\n    importlib.abc.PathEntryFinder) should modify ModuleSpec instances.\n\n    ","detail":"builtin __spec__"},{"label":"__stderr__","sortText":"z__stderr__","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin __stderr__"},{"label":"__stdin__","sortText":"z__stdin__","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin __stdin__"},{"label":"__stdout__","sortText":"z__stdout__","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin __stdout__"}]},"jsonrpc":"2.0"},"request":{"method":"textDocument/completion","jsonrpc":"2.0","id":5,"params":{"textDocument":{"uri":"file:///tmp/test/test.py"},"position":{"character":4,"line":4}}}}]
sob, 25 lis 2017, 13:48:55:["<---",1,"pyls",{"response":{"method":"textDocument/publishDiagnostics","jsonrpc":"2.0","params":{"uri":"file:///tmp/test/test.py","diagnostics":[{"source":"pyflakes","message":"invalid syntax","severity":1,"range":{"end":{"character":10,"line":4},"start":{"character":5,"line":4}}},{"source":"pycodestyle","code":"W292","message":"W292 no newline at end of file","severity":2,"range":{"end":{"character":4,"line":4},"start":{"character":4,"line":4}}}]}}}]
sob, 25 lis 2017, 13:48:56:["s:on_text_document_did_change()",1]
sob, 25 lis 2017, 13:48:56:[{"response":{"data":{"__data__":"vim-lsp","server_name":"pyls"},"message":"server already started"}}]
sob, 25 lis 2017, 13:48:56:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"result":{"capabilities":{"codeLensProvider":{"resolveProvider":false},"executeCommandProvider":{"commands":[]},"textDocumentSync":2,"hoverProvider":true,"documentFormattingProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":true,"codeActionProvider":true,"completionProvider":{"resolveProvider":false,"triggerCharacters":["."]},"documentRangeFormattingProvider":true,"referencesProvider":true}},"jsonrpc":"2.0"},"server_name":"pyls"},"message":"lsp server already initialized"}}]
sob, 25 lis 2017, 13:48:56:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"already opened"}}]
sob, 25 lis 2017, 13:48:56:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"not dirty"}}]
sob, 25 lis 2017, 13:48:58:[{"response":{"data":{"__data__":"vim-lsp","server_name":"pyls"},"message":"server already started"}}]
sob, 25 lis 2017, 13:48:58:[{"response":{"data":{"__data__":"vim-lsp","init_result":{"id":1,"result":{"capabilities":{"codeLensProvider":{"resolveProvider":false},"executeCommandProvider":{"commands":[]},"textDocumentSync":2,"hoverProvider":true,"documentFormattingProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":true,"codeActionProvider":true,"completionProvider":{"resolveProvider":false,"triggerCharacters":["."]},"documentRangeFormattingProvider":true,"referencesProvider":true}},"jsonrpc":"2.0"},"server_name":"pyls"},"message":"lsp server already initialized"}}]
sob, 25 lis 2017, 13:48:58:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"already opened"}}]
sob, 25 lis 2017, 13:48:58:["--->",1,"pyls",{"method":"textDocument/didChange","params":{"contentChanges":[{"text":"#!/usr/bin/env python\n\nimport sys\n\nsys."}],"textDocument":{"uri":"file:///tmp/test/test.py","version":7}}}]
sob, 25 lis 2017, 13:48:58:[{"response":{"data":{"path":"file:///tmp/test/test.py","__data__":"vim-lsp","server_name":"pyls"},"message":"textDocument/didChange sent"}}]
sob, 25 lis 2017, 13:48:58:["--->",1,"pyls",{"method":"textDocument/completion","on_notification":"---funcref---","params":{"textDocument":{"uri":"file:///tmp/test/test.py"},"position":{"character":4,"line":4}}}]
sob, 25 lis 2017, 13:48:58:["<---",1,"pyls",{"response":{"id":6,"result":{"isIncomplete":false,"items":[{"label":"__loader__","sortText":"z__loader__","kind":7,"documentation":"Meta path import for built-in modules.\n\n    All methods are either class or static methods to avoid the need to\n    instantiate the class.\n\n    ","detail":"builtin __loader__"},{"label":"callstats","sortText":"zcallstats","kind":3,"documentation":"callstats() -> tuple of integers\n\nReturn a tuple of function call statistics, if CALL_PROFILE was defined\nwhen Python was built.  Otherwise, return None.\n\nWhen enabled, this function returns detailed, implementation-specific\ndetails about the number of function calls executed. The return value is\na 11-tuple where the entries in the tuple are counts of:\n0. all function calls\n1. calls to PyFunction_Type objects\n2. PyFunction calls that do not create an argument tuple\n3. PyFunction calls that do not create an argument tuple\n   and bypass PyEval_EvalCodeEx()\n4. PyMethod calls\n5. PyMethod calls on bound methods\n6. PyType calls\n7. PyCFunction calls\n8. generator calls\n9. All other calls\n10. Number of stack pops performed by call_function()","detail":"builtin callstats"},{"label":"displayhook","sortText":"zdisplayhook","kind":3,"documentation":"displayhook(object) -> None\n\nPrint an object to sys.stdout and also save it in builtins._\n","detail":"builtin displayhook"},{"label":"excepthook","sortText":"zexcepthook","kind":3,"documentation":"excepthook(exctype, value, traceback) -> None\n\nHandle an exception by displaying it with a traceback on sys.stderr.\n","detail":"builtin excepthook"},{"label":"exit","sortText":"zexit","kind":3,"documentation":"exit([status])\n\nExit the interpreter by raising SystemExit(status).\nIf the status is omitted or None, it defaults to zero (i.e., success).\nIf the status is an integer, it will be used as the system exit status.\nIf it is another kind of object, it will be printed and the system\nexit status will be one (i.e., failure).","detail":"builtin exit"},{"label":"getallocatedblocks","sortText":"zgetallocatedblocks","kind":3,"documentation":"getallocatedblocks() -> integer\n\nReturn the number of memory blocks currently allocated, regardless of their\nsize.","detail":"builtin getallocatedblocks"},{"label":"getcheckinterval","sortText":"zgetcheckinterval","kind":3,"documentation":"getcheckinterval() -> current check interval; see setcheckinterval().","detail":"builtin getcheckinterval"},{"label":"getdefaultencoding","sortText":"zgetdefaultencoding","kind":3,"documentation":"getdefaultencoding() -> string\n\nReturn the current default string encoding used by the Unicode \nimplementation.","detail":"builtin getdefaultencoding"},{"label":"getdlopenflags","sortText":"zgetdlopenflags","kind":3,"documentation":"getdlopenflags() -> int\n\nReturn the current value of the flags that are used for dlopen calls.\nThe flag constants are defined in the os module.","detail":"builtin getdlopenflags"},{"label":"getfilesystemencodeerrors","sortText":"zgetfilesystemencodeerrors","kind":3,"documentation":"getfilesystemencodeerrors() -> string\n\nReturn the error mode used to convert Unicode filenames in\noperating system filenames.","detail":"builtin getfilesystemencodeerrors"},{"label":"getfilesystemencoding","sortText":"zgetfilesystemencoding","kind":3,"documentation":"getfilesystemencoding() -> string\n\nReturn the encoding used to convert Unicode filenames in\noperating system filenames.","detail":"builtin getfilesystemencoding"},{"label":"getprofile","sortText":"zgetprofile","kind":3,"documentation":"getprofile()\n\nReturn the profiling function set with sys.setprofile.\nSee the profiler chapter in the library manual.","detail":"builtin getprofile"},{"label":"getrecursionlimit","sortText":"zgetrecursionlimit","kind":3,"documentation":"getrecursionlimit()\n\nReturn the current value of the recursion limit, the maximum depth\nof the Python interpreter stack.  This limit prevents infinite\nrecursion from causing an overflow of the C stack and crashing Python.","detail":"builtin getrecursionlimit"},{"label":"getrefcount","sortText":"zgetrefcount","kind":3,"documentation":"getrefcount(object) -> integer\n\nReturn the reference count of object.  The count returned is generally\none higher than you might expect, because it includes the (temporary)\nreference as an argument to getrefcount().","detail":"builtin getrefcount"},{"label":"getsizeof","sortText":"zgetsizeof","kind":3,"documentation":"getsizeof(object, default) -> int\n\nReturn the size of object in bytes.","detail":"builtin getsizeof"},{"label":"getswitchinterval","sortText":"zgetswitchinterval","kind":3,"documentation":"getswitchinterval() -> current thread switch interval; see setswitchinterval().","detail":"builtin getswitchinterval"},{"label":"gettrace","sortText":"zgettrace","kind":3,"documentation":"gettrace()\n\nReturn the global debug tracing function set with sys.settrace.\nSee the debugger chapter in the library manual.","detail":"builtin gettrace"},{"label":"intern","sortText":"zintern","kind":3,"documentation":"intern(string) -> string\n\n``Intern'' the given string.  This enters the string in the (global)\ntable of interned strings whose purpose is to speed up dictionary lookups.\nReturn the string itself or the previously interned string object with the\nsame value.","detail":"builtin intern"},{"label":"setcheckinterval","sortText":"zsetcheckinterval","kind":3,"documentation":"setcheckinterval(n)\n\nTell the Python interpreter to check for asynchronous events every\nn instructions.  This also affects how often thread switches occur.","detail":"builtin setcheckinterval"},{"label":"setdlopenflags","sortText":"zsetdlopenflags","kind":3,"documentation":"setdlopenflags(n) -> None\n\nSet the flags used by the interpreter for dlopen calls, such as when the\ninterpreter loads extension modules.  Among other things, this will enable\na lazy resolving of symbols when importing a module, if called as\nsys.setdlopenflags(0).  To share symbols across extension modules, call as\nsys.setdlopenflags(os.RTLD_GLOBAL).  Symbolic names for the flag modules\ncan be found in the os module (RTLD_xxx constants, e.g. os.RTLD_LAZY).","detail":"builtin setdlopenflags"},{"label":"setprofile","sortText":"zsetprofile","kind":3,"documentation":"setprofile(function)\n\nSet the profiling function.  It will be called on each function call\nand return.  See the profiler chapter in the library manual.","detail":"builtin setprofile"},{"label":"setrecursionlimit","sortText":"zsetrecursionlimit","kind":3,"documentation":"setrecursionlimit(n)\n\nSet the maximum depth of the Python interpreter stack to n.  This\nlimit prevents infinite recursion from causing an overflow of the C\nstack and crashing Python.  The highest possible limit is platform-\ndependent.","detail":"builtin setrecursionlimit"},{"label":"setswitchinterval","sortText":"zsetswitchinterval","kind":3,"documentation":"setswitchinterval(n)\n\nSet the ideal thread switching delay inside the Python interpreter\nThe actual frequency of switching threads can be lower if the\ninterpreter executes long sequences of uninterruptible code\n(this is implementation-specific and workload-dependent).\n\nThe parameter must represent the desired switching delay in seconds\nA typical value is 0.005 (5 milliseconds).","detail":"builtin setswitchinterval"},{"label":"settrace","sortText":"zsettrace","kind":3,"documentation":"settrace(function)\n\nSet the global debug tracing function.  It will be called on each\nfunction call.  See the debugger chapter in the library manual.","detail":"builtin settrace"},{"label":"_debugmallocstats","sortText":"z_debugmallocstats","kind":3,"documentation":"_debugmallocstats()\n\nPrint summary info to stderr about the state of\npymalloc's structures.\n\nIn Py_DEBUG mode, also perform some expensive internal consistency\nchecks.\n","detail":"builtin _debugmallocstats"},{"label":"_getframe","sortText":"z_getframe","kind":3,"documentation":"_getframe([depth]) -> frameobject\n\nReturn a frame object from the call stack.  If optional integer depth is\ngiven, return the frame object that many calls below the top of the stack.\nIf that is deeper than the call stack, ValueError is raised.  The default\nfor depth is zero, returning the frame at the top of the call stack.\n\nThis function should be used for internal and specialized\npurposes only.","detail":"builtin _getframe"},{"label":"call_tracing","sortText":"zcall_tracing","kind":3,"documentation":"call_tracing(func, args) -> object\n\nCall func(*args), while tracing is enabled.  The tracing state is\nsaved, and restored afterwards.  This is intended to be called from\na debugger from a checkpoint, to recursively debug some other code.","detail":"builtin call_tracing"},{"label":"exc_info","sortText":"zexc_info","kind":3,"documentation":"exc_info() -> (type, value, traceback)\n\nReturn information about the most recent exception caught by an except\nclause in the current stack frame or in an older stack frame.","detail":"builtin exc_info"},{"label":"is_finalizing","sortText":"zis_finalizing","kind":3,"documentation":"is_finalizing()\nReturn True if Python is exiting.","detail":"builtin is_finalizing"},{"label":"_current_frames","sortText":"z_current_frames","kind":3,"documentation":"_current_frames() -> dictionary\n\nReturn a dictionary mapping each current thread T's thread id to T's\ncurrent stack frame.\n\nThis function should be used for specialized purposes only.","detail":"builtin _current_frames"},{"label":"get_asyncgen_hooks","sortText":"zget_asyncgen_hooks","kind":3,"documentation":"get_asyncgen_hooks()\n\nReturn a namedtuple of installed asynchronous generators hooks (firstiter, finalizer).","detail":"builtin get_asyncgen_hooks"},{"label":"get_coroutine_wrapper","sortText":"zget_coroutine_wrapper","kind":3,"documentation":"get_coroutine_wrapper()\n\nReturn the wrapper for coroutine objects set by sys.set_coroutine_wrapper.","detail":"builtin get_coroutine_wrapper"},{"label":"set_asyncgen_hooks","sortText":"zset_asyncgen_hooks","kind":3,"documentation":"set_asyncgen_hooks(*, firstiter=None, finalizer=None)\n\nSet a finalizer for async generators objects.","detail":"builtin set_asyncgen_hooks"},{"label":"set_coroutine_wrapper","sortText":"zset_coroutine_wrapper","kind":3,"documentation":"set_coroutine_wrapper(wrapper)\n\nSet a wrapper for coroutine objects.","detail":"builtin set_coroutine_wrapper"},{"label":"_clear_type_cache","sortText":"z_clear_type_cache","kind":3,"documentation":"_clear_type_cache() -> None\nClear the internal type lookup cache.","detail":"builtin _clear_type_cache"},{"label":"__displayhook__","sortText":"z__displayhook__","kind":3,"documentation":"displayhook(object) -> None\n\nPrint an object to sys.stdout and also save it in builtins._\n","detail":"builtin __displayhook__"},{"label":"__excepthook__","sortText":"z__excepthook__","kind":3,"documentation":"excepthook(exctype, value, traceback) -> None\n\nHandle an exception by displaying it with a traceback on sys.stderr.\n","detail":"builtin __excepthook__"},{"label":"__interactivehook__","sortText":"z__interactivehook__","kind":3,"documentation":"","detail":"builtin __interactivehook__"},{"label":"abiflags","sortText":"zabiflags","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin abiflags"},{"label":"argv","sortText":"zargv","kind":18,"documentation":"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items","detail":"builtin argv"},{"label":"byteorder","sortText":"zbyteorder","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin byteorder"},{"label":"copyright","sortText":"zcopyright","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin copyright"},{"label":"executable","sortText":"zexecutable","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin executable"},{"label":"flags","sortText":"zflags","kind":18,"documentation":"sys.flags\n\nFlags provided through command line arguments or environment vars.","detail":"builtin flags"},{"label":"hexversion","sortText":"zhexversion","kind":18,"documentation":"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given.  If x is a number, return x.__int__().  For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base.  The literal can be preceded by '+' or '-' and be surrounded\nby whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4","detail":"builtin hexversion"},{"label":"implementation","sortText":"zimplementation","kind":18,"documentation":"A simple attribute-based namespace.\n\nSimpleNamespace(**kwargs)","detail":"builtin implementation"},{"label":"maxsize","sortText":"zmaxsize","kind":18,"documentation":"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given.  If x is a number, return x.__int__().  For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base.  The literal can be preceded by '+' or '-' and be surrounded\nby whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4","detail":"builtin maxsize"},{"label":"maxunicode","sortText":"zmaxunicode","kind":18,"documentation":"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given.  If x is a number, return x.__int__().  For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base.  The literal can be preceded by '+' or '-' and be surrounded\nby whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4","detail":"builtin maxunicode"},{"label":"modules","sortText":"zmodules","kind":18,"documentation":"dict() -> new empty dictionary\ndict(mapping) -> new dictionary initialized from a mapping object's\n    (key, value) pairs\ndict(iterable) -> new dictionary initialized as if via:\n    d = {}\n    for k, v in iterable:\n        d[k] = v\ndict(**kwargs) -> new dictionary initialized with the name=value pairs\n    in the keyword argument list.  For example:  dict(one=1, two=2)","detail":"builtin modules"},{"label":"path","sortText":"zpath","kind":18,"documentation":"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items","detail":"builtin path"},{"label":"platform","sortText":"zplatform","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin platform"},{"label":"prefix","sortText":"zprefix","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin prefix"},{"label":"stderr","sortText":"zstderr","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin stderr"},{"label":"stdin","sortText":"zstdin","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin stdin"},{"label":"stdout","sortText":"zstdout","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin stdout"},{"label":"version","sortText":"zversion","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin version"},{"label":"warnoptions","sortText":"zwarnoptions","kind":18,"documentation":"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items","detail":"builtin warnoptions"},{"label":"_git","sortText":"z_git","kind":18,"documentation":"tuple() -> empty tuple\ntuple(iterable) -> tuple initialized from iterable's items\n\nIf the argument is a tuple, the return value is the same object.","detail":"builtin _git"},{"label":"_home","sortText":"z_home","kind":18,"documentation":"","detail":"builtin _home"},{"label":"_xoptions","sortText":"z_xoptions","kind":18,"documentation":"","detail":"builtin _xoptions"},{"label":"api_version","sortText":"zapi_version","kind":18,"documentation":"int(x=0) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given.  If x is a number, return x.__int__().  For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base.  The literal can be preceded by '+' or '-' and be surrounded\nby whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4","detail":"builtin api_version"},{"label":"base_prefix","sortText":"zbase_prefix","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin base_prefix"},{"label":"exec_prefix","sortText":"zexec_prefix","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin exec_prefix"},{"label":"float_info","sortText":"zfloat_info","kind":18,"documentation":"sys.float_info\n\nA structseq holding information about the float type. It contains low level\ninformation about the precision and internal representation. Please study\nyour system's :file:`float.h` for more information.","detail":"builtin float_info"},{"label":"hash_info","sortText":"zhash_info","kind":18,"documentation":"hash_info\n\nA struct sequence providing parameters used for computing\nhashes. The attributes are read only.","detail":"builtin hash_info"},{"label":"int_info","sortText":"zint_info","kind":18,"documentation":"sys.int_info\n\nA struct sequence that holds information about Python's\ninternal representation of integers.  The attributes are read only.","detail":"builtin int_info"},{"label":"meta_path","sortText":"zmeta_path","kind":18,"documentation":"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items","detail":"builtin meta_path"},{"label":"path_hooks","sortText":"zpath_hooks","kind":18,"documentation":"list() -> new empty list\nlist(iterable) -> new list initialized from iterable's items","detail":"builtin path_hooks"},{"label":"py2_modules","sortText":"zpy2_modules","kind":18,"documentation":"","detail":"builtin py2_modules"},{"label":"thread_info","sortText":"zthread_info","kind":18,"documentation":"sys.thread_info\n\nA struct sequence holding information about the thread implementation.","detail":"builtin thread_info"},{"label":"version_info","sortText":"zversion_info","kind":18,"documentation":"sys.version_info\n\nVersion information as a named tuple.","detail":"builtin version_info"},{"label":"base_exec_prefix","sortText":"zbase_exec_prefix","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin base_exec_prefix"},{"label":"builtin_module_names","sortText":"zbuiltin_module_names","kind":18,"documentation":"tuple() -> empty tuple\ntuple(iterable) -> tuple initialized from iterable's items\n\nIf the argument is a tuple, the return value is the same object.","detail":"builtin builtin_module_names"},{"label":"dont_write_bytecode","sortText":"zdont_write_bytecode","kind":18,"documentation":"","detail":"builtin dont_write_bytecode"},{"label":"float_repr_style","sortText":"zfloat_repr_style","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin float_repr_style"},{"label":"path_importer_cache","sortText":"zpath_importer_cache","kind":18,"documentation":"dict() -> new empty dictionary\ndict(mapping) -> new dictionary initialized from a mapping object's\n    (key, value) pairs\ndict(iterable) -> new dictionary initialized as if via:\n    d = {}\n    for k, v in iterable:\n        d[k] = v\ndict(**kwargs) -> new dictionary initialized with the name=value pairs\n    in the keyword argument list.  For example:  dict(one=1, two=2)","detail":"builtin path_importer_cache"},{"label":"__doc__","sortText":"z__doc__","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin __doc__"},{"label":"__name__","sortText":"z__name__","kind":18,"documentation":"str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to sys.getdefaultencoding().\nerrors defaults to 'strict'.","detail":"builtin __name__"},{"label":"__package__","sortText":"z__package__","kind":18,"documentation":"","detail":"builtin __package__"},{"label":"__spec__","sortText":"z__spec__","kind":18,"documentation":"The specification for a module, used for loading.\n\n    A module's spec is the source for information about the module.  For\n    data associated with the module, including source, use the spec's\n    loader.\n\n    `name` is the absolute name of the module.  `loader` is the loader\n    to use when loading the module.  `parent` is the name of the\n    package the module is in.  The parent is derived from the name.\n\n    `is_package` determines if the module is considered a package or\n    not.  On modules this is reflected by the `__path__` attribute.\n\n    `origin` is the specific location used by the loader from which to\n    load the module, if that information is available.  When filename is\n    set, origin will match.\n\n    `has_location` indicates that a spec's \"origin\" reflects a location.\n    When this is True, `__file__` attribute of the module is set.\n\n    `cached` is the location of the cached bytecode file, if any.  It\n    corresponds to the `__cached__` attribute.\n\n    `submodule_search_locations` is the sequence of path entries to\n    search when importing submodules.  If set, is_package should be\n    True--and False otherwise.\n\n    Packages are simply modules that (may) have submodules.  If a spec\n    has a non-None value in `submodule_search_locations`, the import\n    system will consider modules loaded from the spec as packages.\n\n    Only finders (see importlib.abc.MetaPathFinder and\n    importlib.abc.PathEntryFinder) should modify ModuleSpec instances.\n\n    ","detail":"builtin __spec__"},{"label":"__stderr__","sortText":"z__stderr__","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin __stderr__"},{"label":"__stdin__","sortText":"z__stdin__","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin __stdin__"},{"label":"__stdout__","sortText":"z__stdout__","kind":18,"documentation":"Character and line based layer over a BufferedIOBase object, buffer.\n\nencoding gives the name of the encoding that the stream will be\ndecoded or encoded with. It defaults to locale.getpreferredencoding(False).\n\nerrors determines the strictness of encoding and decoding (see\nhelp(codecs.Codec) or the documentation for codecs.register) and\ndefaults to \"strict\".\n\nnewline controls how line endings are handled. It can be None, '',\n'\\n', '\\r', and '\\r\\n'.  It works as follows:\n\n* On input, if newline is None, universal newlines mode is\n  enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n  these are translated into '\\n' before being returned to the\n  caller. If it is '', universal newline mode is enabled, but line\n  endings are returned to the caller untranslated. If it has any of\n  the other legal values, input lines are only terminated by the given\n  string, and the line ending is returned to the caller untranslated.\n\n* On output, if newline is None, any '\\n' characters written are\n  translated to the system default line separator, os.linesep. If\n  newline is '' or '\\n', no translation takes place. If newline is any\n  of the other legal values, any '\\n' characters written are translated\n  to the given string.\n\nIf line_buffering is True, a call to flush is implied when a call to\nwrite contains a newline character.","detail":"builtin __stdout__"}]},"jsonrpc":"2.0"},"request":{"method":"textDocument/completion","jsonrpc":"2.0","id":6,"params":{"textDocument":{"uri":"file:///tmp/test/test.py"},"position":{"character":4,"line":4}}}}]
sob, 25 lis 2017, 13:48:59:["<---",1,"pyls",{"response":{"method":"textDocument/publishDiagnostics","jsonrpc":"2.0","params":{"uri":"file:///tmp/test/test.py","diagnostics":[{"source":"pyflakes","message":"invalid syntax","severity":1,"range":{"end":{"character":10,"line":4},"start":{"character":5,"line":4}}},{"source":"pycodestyle","code":"W292","message":"W292 no newline at end of file","severity":2,"range":{"end":{"character":4,"line":4},"start":{"character":4,"line":4}}}]}}}]
sob, 25 lis 2017, 13:49:11:["s:on_text_document_did_close()",1]

OS: Arch Linux
vim: 8.0.1297
pyls: 0.11.1
plugins:

~/etc $ git submodule status | grep -E '(async|lsp)'
 25abd1215a8e3189d9296126c16e203eabf68348 vim/vim/pack/bundle/start/async (heads/master)
 49c7ad3d2cf1fc5813428778cd0b33ec8f17cd8a vim/vim/pack/bundle/start/asyncomplete (heads/master)
 68fdc6e2b82faea914ec24c1780145d8be62bf9c vim/vim/pack/bundle/start/asyncomplete-buffer (heads/master)
 175adcdc05090066e9fd00bbd5c4591b7d7c3bb5 vim/vim/pack/bundle/start/asyncomplete-lsp (heads/master)
 f589160dfda71b8e707261bc2a1200a041c03c04 vim/vim/pack/bundle/start/asyncomplete-racer (heads/master)
 7ed5c98c241c9fa59b3869dc92fa1011f4e02edb vim/vim/pack/bundle/start/asyncomplete-tags (heads/master)
 c5322f12deceecea9af688ac97fb107bde4d6e81 vim/vim/pack/bundle/start/asyncomplete-ultisnips (heads/master)
 e7ab592beb460cec5dd286ec3a9d088115bd38ba vim/vim/pack/bundle/start/lsp (v0.1.0-81-ge7ab592)

Does the completion work on multiple different filetypes?

I wanted to use multiple language servers for multipe filetypes, but asyncomplete-lsp completed items of only one filetype where the asyncomplete-lsp was called at first. For example, if some items are completed on a go buffer at first, any items are not completed on a python buffer, and vice versa.

Does the completion of asyncomplete-lsp work on only a single filetype in one Vim process?

In the following screencast, I demostrated the above example. Items were completed on a go buffer at first, and then I tried to complete items on a python buffer, but any items were completed.
screencast
(I confirmed that omnifunc ofvim-lsp worked on the both filetypes.)

The vimrc used in the above screencast:

set nocompatible hidden laststatus=2
set splitbelow
set previewheight=2
language C

if !filereadable('plug.vim')
  silent !curl --insecure -fLo plug.vim
    \  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
endif

source plug.vim

call plug#begin('plugged')
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/async.vim'
Plug 'prabirshrestha/vim-lsp'
Plug 'prabirshrestha/asyncomplete-lsp.vim'
call plug#end()

let g:lsp_log_verbose = 1
let g:lsp_log_file = './vim-lsp.log'
let g:asyncomplete_log_file = './asyncomplete.log'
imap <c-space> <Plug>(asyncomplete_force_refresh)

if executable('go-langserver')
    " go get -u sourcegraph/go-langserver
    au User lsp_setup call lsp#register_server({
        \ 'name': 'go-langserver',
        \ 'cmd': {server_info->['go-langserver', '-gocodecompletion']},
        \ 'whitelist': ['go'],
        \ })
    au FileType go setlocal omnifunc=lsp#complete
endif
if executable('pyls')
    " pip install python-language-server
    au User lsp_setup call lsp#register_server({
        \ 'name': 'pyls',
        \ 'cmd': {server_info->['pyls']},
        \ 'whitelist': ['python'],
        \ })
    au FileType python setlocal omnifunc=lsp#complete
endif

The logs obtained in the above screencast are below.

Environment:

  • OS: Windows 10 64bit
  • Vim: 8.1.606
  • Python: 3.7.0
  • python-language-server: 0.21.4
  • go-langserver: v3-dev

Problem with the items starting with non-alphabetical characters

Hi. First, thank you for your great works. I was helped a lot.

Recently, I found the first non-alphabetical character is duplicated if the item starts with.

asyncomplete-lsp

I found this problem with using a language server for julialang; it has a kind of important syntactic parts start with @ like @macroname. In this case, what I expect is @printf but what I got is @@printf I think the same problem potentially happens for $var of php.

I think it would be nice if a user can customize the pattern to determine startcol, but I'm not very sure.

let l:kw = matchstr(l:typed, '\w\+$')

[feature-request]Customize completion list abbr

Hi @prabirshrestha , I'm testing the asyncomplete & asyncomplete-lsp as replacements for each language plugins.

In completion, It works nicely with pyls under filetype=python.

pyls

But with go-langserver under filetype=go, It does not show function signatures.

go-langserver

go-langserver set function sigunatures to detail key in an lsp response.
asyncomplete-lsp uses lsp#omni#get_vim_completion_item(v:val) for converting lsp response items to vim completion items.

Since lsp#omni#get_vim_completion_item(v:val) does not use the detail at all, function signatures does not displayed.

It will be nice to have a way for customizing how to display items.

Auto-completion does not work in vim 8.1

Same configuration works fine in neovim v0.2.2 but getting Pattern not found all the time in vim 8.1, Fedora 27, cquery compiled from master.

config:

Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/async.vim'
Plug 'prabirshrestha/vim-lsp'
Plug 'prabirshrestha/asyncomplete-lsp.vim'

if executable('cquery')
   au User lsp_setup call lsp#register_server({
      \ 'name': 'cquery',
      \ 'cmd': {server_info->['cquery']},
      \ 'initialization_options': { 'cacheDirectory': '/tmp/cquery/cache' },
      \ 'whitelist': ['c', 'cpp', 'objc', 'objcpp', 'cc'],
      \ })
endif

Debug log in vim-lsp shows correct list of suggestion for auto-completion.

Popup menu closed unexpectedly

Here is the screen shot:
popup2

What did I do:
press "j" and then press the arrow down.

What I want:
when I press the arrow down, it should select between items, but it close the popup window unexpectedly.

my minimal vimrc:

"Start (neo)vim with command: `vim -u min.vim`
set pyx=3
set langmenu=none
let $LANG = 'en'
syntax on
set nocompatible              " be iMproved, required
filetype off                  " required
let $VIM_DIR = 'D:/programs/vim'
" set runtimepath^=D:/programs/vim/vimfiles/bundle/vim-clap
" set runtimepath^=D:/programs/vim/vimfiles/bundle/defx.nvim
" =================================================================
call plug#begin('$VIM_DIR/vimfiles/bundle')
filetype plugin indent on

Plug 'prabirshrestha/async.vim'
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/asyncomplete-lsp.vim'
Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'
let g:lsp_ignorecase = 1
let g:lsp_settings_root_markers = [
            \ 'compile_commands.json',
            \ '.git',
            \ '.git/',
            \ '.svn/',
            \ '.hg/',
            \ '.bzr/'
            \ ]
"=================================================
call plug#end()
filetype plugin indent on    " required

Duplicate functions are being returned in React

Doesn't seem to happen when you first start typing something; only after going into insert mode, then back into normal mode, then back into insert mode again.

Minimal .vimrc:

set nocompatible
filetype indent on
filetype plugin on
syntax on
set runtimepath=~/.vim/bundle/asyncomplete.vim,~/.vim/bundle/asyncomplete-lsp.vim,~/.vim/bundle/vim-lsp,$VIMRUNTIME

set completeopt+=menuone

if exists("asyncomplete#enable_for_buffer()") 
  autocmd BufEnter * call asyncomplete#enable_for_buffer()
endif

if executable('typescript-language-server')
	au User lsp_setup call lsp#register_server({
				\ 'name': 'javascript support using typescript-language-server',
				\ 'cmd': { server_info->[&shell, &shellcmdflag, 'typescript-language-server --stdio']},
				\ 'root_uri': { server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_directory(lsp#utils#get_buffer_path(), '.git/..'))},
				\ 'allowlist': ['javascript', 'javascript.jsx', 'javascriptreact']
				\ })
endif

Screen Shot 2020-08-26 at 3 51 00 PM

Replaces prabirshrestha/vim-lsp#894

LSP completion breaks after first error in flow

Hopefully you can help me debug this. I'm using a vim config that worked on a previous Arch system, so I think the problem lies in the version of something that changed when I switched Arch systems.

If I open a JS file with flow enabled, initially completion includes LSP candidates (everything works well).
Then I create an error of some kind, e.g. reference a variable that does not exist. Then I remove the error.
After that, asyncomplete does not show any LSP candidates until I restart vim.

asyncomplete.log
vim-lsp.log

These log files show the process of first checking LSP completion works, then typing a variable 'xxx' to cause a flow error, then removing it, and checking that LSP completion stops working.

As mentioned this used to work fine with the same vim config, so I have not created a minimal vim config to reproduce it (unless you think it's necessary). Anything jump out from the log files?

This shows my lsp config.
This shows my asyncomplete config.

BTW - thank you so much for this set of plugins you have created. I want to donate...

get_vim_completion_items is slow on TypeScript project

I'm editing a TypeScript codebase, and every once in a while Neovim will become completely unresponsive. I found this rather long-running function from running profile. Disabling asyncomplete-lsp.vim fixes this unrespsoniveness.

count  total (s)   self (s)
    2   3.354896   0.004723     let l:completion_result = lsp#omni#get_vim_completion_items(l:options)

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.