Enhances CompletionItemsCollector in such a way that snippet completions can be presented to the client. Enable snippet completion items by specifying -enable-snippets while invoking the clangd executable.
- VSCode Toy Client: needs changes in order to account for snippets.
- Sublime Text 3 LSP plugin: works out of the box.
- Atom: ???
- Vim: ???
- Emacs: ???
See: https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#completion-request
See: https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/browser/snippet.md
Code style: we don't use const for non-reference parameters.