Connect with
many developers
from the small plugin
VimConf 2019 Lightning Talk
@lighttiger2505
Slide 2
Slide 2 text
deoplete-vim-lsp
• Completion source for deoplete.nvim
• Get a completion candidate from language
server via vim-lsp
Slide 3
Slide 3 text
Demo
Slide 4
Slide 4 text
It's a small plugin
• deoplete-vim-lsp is small amount of
source code
• Python: 175 step
• Vim script: 32 step
Slide 5
Slide 5 text
Big developer experience
• Suppurt completion all languages
• Required language server
• High performance completion
• Heavy processing is executed
asynchronously
Slide 6
Slide 6 text
Why ?
I only write a little code
Slide 7
Slide 7 text
The answer is in the
architecture of
deoplete-vim-lsp
Slide 8
Slide 8 text
Archtecture deoplete-vim-lsp
(Request completion)
NeoVim deoplete.nvim deoplete-vim-lsp vim-lsp Language
Server
TextChange
call
getter_candidates()
call
lsp#send_request()
textDocument/
Completion
Slide 9
Slide 9 text
deoplete-vim-lsp
NeoVim deoplete.nvim vim-lsp Language
Server
Archtecture deoplete-vim-lsp
(Receive completion candidate)
call
complete()
call
deoplete#auto_complete()
call
handle_completion()
response
Slide 10
Slide 10 text
Meny depends
• deoplete-vim-lsp dose not work alone
• Completion Management
• deoplete.nvim
• Language Server Client
• vim-lsp
Slide 11
Slide 11 text
Feel so a connection
with the developers
• If any of these are missing deoplete-vim-lsp
does not exist
• I have noticed that you are supported by
many developers
• Everything was connected !!!
Slide 12
Slide 12 text
Connections
Everything started with Vim
Vim
Slide 13
Slide 13 text
Connections
NeoVim
Vim
NeoVim was created with Vim as the
fork. NeoVim had a new feature called
remote plugin
Slide 14
Slide 14 text
Connections
NeoVim
Vim
deoplete.nvim
deoplete.nvim was created as completion
manager created by remote plugin
Slide 15
Slide 15 text
Connections
NeoVim
Vim
deoplete.nvim
LSP
Langage server protocol(LSP) creates
providing a high level of support for any
programming language in any editor.
Slide 16
Slide 16 text
Connections
NeoVim
Vim
deoplete.nvim
LSP
vim-lsp
vim-lsp was created as Vim language
server client
Slide 17
Slide 17 text
Connections
NeoVim
Vim
deoplete.nvim
LSP
vim-lsp
deoplete-vim-lsp
I created deoplete-vim-lsp to use vim-
lsp completion in deoplete.nvim
Slide 18
Slide 18 text
Summry
• deoplete-vim-lsp is small plugin
• Because other plugins already have the
necessary features
• I'm helped by the ecosystem of Vim created
by the developers
Slide 19
Slide 19 text
Thanks to
all Vim developers
Slide 20
Slide 20 text
About me
• @lighttiger2505 (Toshikazu Ohashi)
• Server Side Engineer (iRidge inc)
• Created Many CLI Commands
• Created deoplete-vim-lsp