Closed ehzawad closed 7 years ago
Can you retry with the current jedi dev branch?
Here's a reproducible testcase with Jedi be2a97cd36ce1b7d6f587ef122efc3433b1e8ae2:
import jedi
args = (
'''import asyncio
async def test():
reader, writer = await asyncio.open_connection()
writer.
''',
4,
len(' writer.'),
'example.py'
)
jedi.Script(*args).completions()
Chasing on this issue for #775
I swear, concurrency is always hard.. Can we take advantages from new vim 8.0 packages..? Asynchronous I/O support, channels ~
Vim can now exchange messages with other processes in the background. This makes it possible to have servers do work and send back the results to Vim. See |channel-demo| for an example, this shows communicating with a Python server.
Closely related to channels is JSON support. JSON is widely supported and can easily be used for inter-process communication, allowing for writing a server in any language. The functions to use are |json_encode()| and |json_decode()|.
This makes it possible to build very complex plugins, written in any language and running in a separate process.
Jobs ~
Vim can now start a job, communicate with it and stop it. This is very useful to run a process for completion, syntax checking, etc. Channels are used to communicate with the job. Jobs can also read from or write to a buffer or a file. See |job_start()|.
Timers ~
Also asynchronous are timers. They can fire once or repeatedly and invoke a function to do any work. For example: > let tempTimer = timer_start(4000, 'CheckTemp') This will call the CheckTemp() function four seconds (4000 milli seconds) later. See |timer_start()|.
Ref : :help version8
@ehzShelter WTF are you talking about. This issue has absolutely nothing to do with either async stuff or VIM. :laughing:
No idea.. :D
This is fixed in the dev branch.
Thank you :)