Chris Kipp
2020 ScalaUA
Grew up in the USA on a farm
Studied International Relations
Now based in the Netherlands
Software Engineer at Lunatech Labs
Enjoy working on tooling
& minimal tech
Switched careers to tech
Feel free to shoot them in the chat.
I'll either see them and address them as they come, or if I have time at the end.
2019
2018
2017
Stack Overflow Developer Surveys
2018 Scala Developer Survey
2019 Scala Developer Survey
Ólafur Páll Geirsson
Tomasz Godzik
Gabriele Petronella
ycm-core/YouCompleteMe (20.9K★ Python)
neoclide / coc.nvim (9.5K ★ - Node)
dense-analysis / ale (9.2K ★ - Vimscript)
prabirshrestha / vim-lsp (1.5K ★ - Vimscript)
neovim / nvim-lsp (603 ★ - Lua)
natebosch / vim-lsc (418 ★ - Vimscript)
My recommendations depending on your situation
Â
Coc is an intellisense engine for Vim/Neovim.
Same language server protocol support as VSCode
Allows you to re-use VSCode extensions (mostly)
Extremely responsive team
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Paste recommended mappings into your .vimrc
nmap <leader>rn <Plug>(coc-rename)
Either
:CocInstall coc-metals
Plug 'scalameta/coc-metals', {'do': 'yarn install --frozen-lockfile'}
With the assumption you have Node and Java Installed
Via puremourning / vimspector
Â
Covers the basics very well
Has some niceties like striking out deprecated methods
Pure vimscript
Â
Automated installation of servers
Keep in mind that the support right now is pretty much experimental
coursier bootstrap \
--java-opt -Xss4m \
--java-opt -Xms100m \
--java-opt -Dmetals.client=vim-lsc \
org.scalameta:metals_2.12:0.8.3 \
-r bintray:scalacenter/releases \
-r sonatype:snapshots \
-o /usr/local/bin/metals-vim -f
https://scalameta.org/metals/docs/editors/new-editor.html#metals-server-properties
interface ClientCapabilities {
...
/**
* User provided initialization options.
* */
initializationOptions?: any;
}
https://microsoft.github.io/language-server-protocol/specifications/specification-current/#initialize
interface ClientCapabilities {
...
/**
* Experimental client capabilities.
*/
experimental?: any;
}
https://microsoft.github.io/language-server-protocol/specifications/specification-current/#initialize
Make sure you have
"metals.statusBarEnabled": true
"codeLens.enable": true
Give nvim a try if you're a vim user
@ckipp01
https://www.lunatech.com/