Setup command completion/linting/language server for crystal language on the NEOVIM editor

I use neovim but have no idea how to configure it to work good with the crystal language.

I added the lines to neovim config file :

"crystal
Plug 'elbywan/crystalline'
let g:LanguageClient_serverCommands = {'ocaml': ['ocamllsp'] , 'nim': ['~/.nimble/bin/nimlsp'] , 'crystal': ['crystalline'] }

But poor results.