deoplete: the dark powered auto completion plugin for neovim
TRANSCRIPT
![Page 1: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/1.jpg)
deoplete
~ The dark powered auto completion plugin for neovim ~
Presented by Shougo
![Page 2: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/2.jpg)
Introduction
● This slide is English for the foreign people● But the talk is Japanese for the Japanese
people● The slide may contain spiritual topic or
Chuunibyou( 厨二病 )● These are feature
![Page 3: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/3.jpg)
Self-introduction
● Shougo● I am called as “ 暗黒美夢王” . ● Pronounces it “Uncock Vim Awe”.● Some people call me as “the sith lord of Vim
plugins”.● Text editor is all of my life● My previous works: neocomplete,
neobundle, neosnippet, unite, vimfiler, vimshell, etc...
![Page 4: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/4.jpg)
Today's topic
● Deoplete plugin
https://github.com/Shougo/deoplete.nvim
● It is the first asynchronous completion plugin for neovim
● You don't have to be annoying the completion blocks!
● If you don't know about neovim, please read my previous presentation.
http://www.slideshare.net/Shougo/lets-talk-about-neovim
![Page 5: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/5.jpg)
Why deoplete is created?
● My most concern is to block Vim in the completion
● if_lua is faster than VimL. But it also blocks● Tarruda(neovim founder) said
Wow!!Note: It is free translation
![Page 6: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/6.jpg)
But
● The hell has been started from here...
![Page 7: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/7.jpg)
Needed works (1/4)
● Python3 support– No if_lua support in neovim yet– I don't want to create new
Python2 plugin in 2015– I have added if_python3 feature
based on if_python2 in neovim– Thanks the neovim reviewers!
![Page 8: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/8.jpg)
Needed works (2/4)
● complete() bug fix– It is needed for deoplete, but it is
not tested well– Thanks the vim-jp and neovim
reviewers!
![Page 9: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/9.jpg)
Needed works (3/4)
● v:completed_item and completeopt patches– It is needed for auto completion
plugins– Thanks the vim-jp and neovim
reviewers!
![Page 10: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/10.jpg)
Needed works (4/4)
● Understand remote plugin features– Less documentation– Less examples– Hard to debug
![Page 11: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/11.jpg)
Deoplete original features (1/3)
● Asynchronous call omnifunc– But the omnifunc which move
cursors(side effect) is not supported
– For example: htmlcomplete– Synchronous call omnifunc is
also available like neocomplete
![Page 12: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/12.jpg)
Deoplete original features (2/3)
● Python3 sources instead of VimL– You don't have to write VimL– You can wrap VimL functions in
the source
![Page 13: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/13.jpg)
Deoplete original features (3/3)
● Better buffer source– You don't have to know the line is
cached if it is not large files– The lines are analyzed like built-in
buffer completion– You must wait to complete in
editing large files, but it is non blocking!
![Page 14: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/14.jpg)
Sources
● Built-in– buffer, tag, file, omni, member,
dictionary● External
– Neco-ghc, neosnippet, neco-look, neco-vim, neco-syntax, vim-racer, vimshell
![Page 15: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/15.jpg)
Installation
1.Clone Deoplete source$ git clone https://github.com/Shougo/deoplete.nvim
2.Install neovim$ git clone https://github.com/neovim/neovim
3.Install neovim-python3$ (sudo) pip3 install neovim
![Page 16: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/16.jpg)
Demo
● Edit eval.c (22000 lines) with deoplete + neovim
● Edit eval.c (22000 lines) with neocomplete + Vim
● “Behold Vimmers, this is THE real asynchronous!”
![Page 17: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/17.jpg)
FAQ (1)
● Is Deoplete is faster than neocomplete?● I think neocomplete is faster because of
if_lua power● The asynchronous is to skip the completion
if your input is too fast ● So, you should use deoplete in newer
machine
![Page 18: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/18.jpg)
FAQ (2)
● Deoplete does support any of languages?● Deoplete can call omnifunc automatically● Or you can create the source for it● Why don't you create the source?● :help deoplete-create-source
![Page 19: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/19.jpg)
In the future
● Deoplete version 1.0 will be released after the presentation!
● After version 1.0:– More customization– Improve file source behavior– Implement more features in neocomplete
● Rewrite unite.vim for neovim(VimConf2016 presentation)
![Page 20: deoplete: The dark powered auto completion plugin for neovim](https://reader036.vdocuments.site/reader036/viewer/2022082123/58f081d51a28abd2548b4621/html5/thumbnails/20.jpg)
Fin
● If you think “Deoplete is nice!”, please support neovim project by money or code.
https://salt.bountysource.com/teams/neovim https://github.com/neovim/neovim/issues
● Deoplete depends on the neovim's features!