Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Connect with many developers from the small plugin

Connect with many developers from the small plugin

VimConf2019 Lightning talk

A12373843afc54857a845404bdd5f5cb?s=128

Toshikazu Ohashi

November 03, 2019
Tweet

More Decks by Toshikazu Ohashi

Other Decks in Programming

Transcript

  1. Connect with many developers from the small plugin VimConf 2019

    Lightning Talk @lighttiger2505
  2. deoplete-vim-lsp • Completion source for deoplete.nvim • Get a completion

    candidate from language server via vim-lsp
  3. Demo

  4. It's a small plugin • deoplete-vim-lsp is small amount of

    source code • Python: 175 step • Vim script: 32 step
  5. Big developer experience • Suppurt completion all languages • Required

    language server • High performance completion • Heavy processing is executed asynchronously
  6. Why ? I only write a little code

  7. The answer is in the architecture of deoplete-vim-lsp

  8. 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
  9. 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
  10. Meny depends • deoplete-vim-lsp dose not work alone • Completion

    Management • deoplete.nvim • Language Server Client • vim-lsp
  11. 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 !!!
  12. Connections Everything started with Vim Vim

  13. Connections NeoVim Vim NeoVim was created with Vim as the

    fork. NeoVim had a new feature called remote plugin
  14. Connections NeoVim Vim deoplete.nvim deoplete.nvim was created as completion manager

    created by remote plugin
  15. Connections NeoVim Vim deoplete.nvim LSP Langage server protocol(LSP) creates providing

    a high level of support for any programming language in any editor.
  16. Connections NeoVim Vim deoplete.nvim LSP vim-lsp vim-lsp was created as

    Vim language server client
  17. Connections NeoVim Vim deoplete.nvim LSP vim-lsp deoplete-vim-lsp I created deoplete-vim-lsp

    to use vim- lsp completion in deoplete.nvim
  18. 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
  19. Thanks to all Vim developers

  20. About me • @lighttiger2505 (Toshikazu Ohashi) • Server Side Engineer

    (iRidge inc) • Created Many CLI Commands • Created deoplete-vim-lsp