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

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

    View Slide

  2. deoplete-vim-lsp
    • Completion source for deoplete.nvim
    • Get a completion candidate from language
    server via vim-lsp

    View Slide

  3. Demo

    View Slide

  4. It's a small plugin
    • deoplete-vim-lsp is small amount of
    source code
    • Python: 175 step
    • Vim script: 32 step

    View Slide

  5. Big developer experience
    • Suppurt completion all languages
    • Required language server
    • High performance completion
    • Heavy processing is executed
    asynchronously

    View Slide

  6. Why ?
    I only write a little code

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  10. Meny depends
    • deoplete-vim-lsp dose not work alone
    • Completion Management
    • deoplete.nvim
    • Language Server Client
    • vim-lsp

    View Slide

  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 !!!

    View Slide

  12. Connections
    Everything started with Vim
    Vim

    View Slide

  13. Connections
    NeoVim
    Vim
    NeoVim was created with Vim as the
    fork. NeoVim had a new feature called
    remote plugin

    View Slide

  14. Connections
    NeoVim
    Vim
    deoplete.nvim
    deoplete.nvim was created as completion
    manager created by remote plugin

    View Slide

  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.

    View Slide

  16. Connections
    NeoVim
    Vim
    deoplete.nvim
    LSP
    vim-lsp
    vim-lsp was created as Vim language
    server client

    View Slide

  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

    View Slide

  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

    View Slide

  19. Thanks to
    all Vim developers

    View Slide

  20. About me
    • @lighttiger2505 (Toshikazu Ohashi)
    • Server Side Engineer (iRidge inc)
    • Created Many CLI Commands
    • Created deoplete-vim-lsp

    View Slide