Successfully reported this slideshow.
Your SlideShare is downloading. ×

Neosnippet.vim + Deoppet.nvim in Vim conf 2017

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 23 Ad
Advertisement

More Related Content

Slideshows for you (20)

Similar to Neosnippet.vim + Deoppet.nvim in Vim conf 2017 (20)

Advertisement

Recently uploaded (20)

Advertisement

Neosnippet.vim + Deoppet.nvim in Vim conf 2017

  1. 1. Neosnippet.vim + Deoppet.nvim VimConf 2017 Shougo @ShougoMatsu
  2. 2. Profile ● Shougo ● The dark powered Vim user 暗黒美無王 (Uncock Vim Awe, The dark Vim maestro) ● The text editor is the world ● My icon is not zebra!
  3. 3. The dark powered plugins ● deoplete.nvim: The next completion plugin for neovim ● deol.nvim: The next terminal plugin for neovim/Vim8 ● dein.vim: The next plugin manager for neovim/Vim8 ● denite.nvim: The next UI plugin for neovim/Vim8 ● deoppet.nvim: The next snippet plugin for neovim (vaporware) ● defx.nvim: The next file manager for neovim/Vim8 (vaporware) ● deorise.nvim: The next hexadecimal editor plugin for neovim/Vim8 (vaporware)
  4. 4. Today's theme ● The snippet plugins ● neosnippet.vim ● deoppet.nvim ● The extra thing Note:No songs
  5. 5. The snippet plugins
  6. 6. What is the snippet plugin? ● It expands the snippet trigger Ex: if → if () {} ● And jumps the next places(place holder) Ex: if (${1}) { ${2} } ● You don’t have to insert the texts and move to the next position manually ● The similar plugins: The template plugin, emmet-vim
  7. 7. neosnippet.vim https://github.com/Shougo/neosnippet.vim ● The neo-snippet plugin ● The marker type snippet plugin ● Popular in Japan ● Compatible with snipMate syntax ● Integrated with the completion plugins ● Vim script based
  8. 8. snipMate https://github.com/garbas/vim-snipmate ● Easy to read syntax ● Very popular ● The development seems slowly ● The non-marker type snippet plugin ● Vim script based
  9. 9. UltiSnips https://github.com/Silver/ultisnips ● Non compatible syntax with snipMate ● Popular ● Many features ● The non-marker type snippet plugin ● if_python/if_python3 based ● Slow performance in neovim
  10. 10. What is the marker type snippet plugin? ● It adds the markers to the buffer to detect the next jump places Ex: <`1`> ● It is easy to implement ● No performance problem ● Easy to find the next jump places
  11. 11. What is the non marker type snippet plugin? ● It monitors the buffer changes to find the next jump position ● The implementation is complex ● It is easy to implement jump back feature
  12. 12. Neosnippet.vim
  13. 13. The history of neosnippet.vim ● I don't understand why the snippet plugins are useful ● I have created the snippet plugin as builtin neocomplcache source ● The snippet plugin is very huge... → neosnippet.vim ● The default snippets are very huge and not easy to customize for the users → neosnippet-snippets
  14. 14. neosnippet.vim disadvantages ● Conflicts with conceal feature ● Hard to implement jump back feature ● It changes the buffer ● The slow parser (Vim script performance problem) ● It is hard to extend…
  15. 15. Deoppet.nvim
  16. 16. deoppet.nvim https://github.com/Shougo/deoppet.nvim ● The dark powered neo snippet plugin ● Compatible syntax with neosnippet.vim ● The non-marker type snippet plugin ● It depends on Extended Marks feature in neovim https://github.com/neovim/neovim/pull/5031 ● neovim only ● Python3 based, almost 300 lines
  17. 17. Extended marks feature ● It detects the buffer changes automatically ● The plugins don’t have to detect the buffer changes ● And it has the namespaces let ns = nvim_init_mark_ns(‘deoppet’) let id = nvim_buf_set_marks(bufnr, ns, ‘’, row, col)
  18. 18. Current development status ● Works the simple neosnippet syntax parser ● Can expand the snippet trigger ● The Completion by deoplete ● Can Jump forward/jump back to the placeholders ● It is hard to try...
  19. 19. Current development status ● Works the simple neosnippet syntax parser ● Can expand the snippet trigger ● The Completion by deoplete ● Can Jump forward/jump back to the placeholders ● It is hard to try...
  20. 20. The demo of deoppet.nvim
  21. 21. The extra thing
  22. 22. The extra thing ● neocomplete.vim development is over ● Because deoplete.nvim supports Vim8 ● You can try it ● Enjoy!
  23. 23. Thank you!

×