We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sending snippet completions for clients that don't declare that capability can break said clients.
Ycmd client capabilities:
{"textDocument":{"completion":{"completionItem":{"documentationFormat":["plaintext","markdown"]},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"hover":{"contentFormat":["plaintext","markdown"]},"signatureHelp":{"signatureInformation":{"documentationFormat":["plaintext","markdown"],"parameterInformation":{"labelOffsetSupport":false}}}}}
As you can see, completionItem doesn't mention snippetSupport. However, this is how vls responds to textDocument/completion request:
completionItem
snippetSupport
textDocument/completion
2019-10-23 23:53:58,733 - DEBUG - TX: Sending message: b'Content-Length: 176\r\n\r\n{"id":2,"jsonrpc":"2.0","method":"textDocument/completion","params":{"position":{"character":0,"line":0},"textDocument":{"uri":"file:///home/bstaletic/work/test/vue/foo.vue"}}}' 2019-10-23 23:53:58,737 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","id":2,"result":{"isIncomplete":false,"items":[{"label":"<vue> with default.vue \xe2\x9c\x8c","insertText":"<template>\\n ${0}\\n</template>\\n\\n<script>\\nexport default {\\n\\n}\\n</script>\\n\\n<style>\\n\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<template>\\n ${0}\\n</template>\\n\\n<script>\\nexport default {\\n\\n}\\n</script>\\n\\n<style>\\n\\n</style>\\n```"},"detail":"default.vue | .vue","sortText":"2a<vue> with default.vue \xe2\x9c\x8c"},{"label":"<template> html.vue \xe2\x9c\x8c","insertText":"<template>\\n\\t${0}\\n</template>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<template>\\n\\t${0}\\n</template>\\n```"},"detail":"html.vue | .html","sortText":"2b<template> html.vue \xe2\x9c\x8c"},{"label":"<template> pug.vue \xe2\x9c\x8c","insertText":"<template lang=\\"pug\\">\\n\\t${0}\\n</template>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<template lang=\\"pug\\">\\n\\t${0}\\n</template>\\n```"},"detail":"pug.vue | .html","sortText":"2b<template> pug.vue \xe2\x9c\x8c"},{"label":"<style> css-scoped.vue \xe2\x9c\x8c","insertText":"<style scoped>\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style scoped>\\n${0}\\n</style>\\n```"},"detail":"css-scoped.vue | .css","sortText":"2c<style> css-scoped.vue \xe2\x9c\x8c"},{"label":"<style> css.vue \xe2\x9c\x8c","insertText":"<style>\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style>\\n${0}\\n</style>\\n```"},"detail":"css.vue | .css","sortText":"2c<style> css.vue \xe2\x9c\x8c"},{"label":"<style> less-scoped.vue \xe2\x9c\x8c","insertText":"<style lang=\\"less\\" scoped>\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style lang=\\"less\\" scoped>\\n${0}\\n</style>\\n```"},"detail":"less-scoped.vue | .css","sortText":"2c<style> less-scoped.vue \xe2\x9c\x8c"},{"label":"<style> less.vue \xe2\x9c\x8c","insertText":"<style lang=\\"less\\">\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style lang=\\"less\\">\\n${0}\\n</style>\\n```"},"detail":"less.vue | .css","sortText":"2c<style> less.vue \xe2\x9c\x8c"},{"label":"<style> postcss-scoped.vue \xe2\x9c\x8c","insertText":"<style lang=\\"postcss\\" scoped>\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style lang=\\"postcss\\" scoped>\\n${0}\\n</style>\\n```"},"detail":"postcss-scoped.vue | .css","sortText":"2c<style> postcss-scoped.vue \xe2\x9c\x8c"},{"label":"<style> postcss.vue \xe2\x9c\x8c","insertText":"<style lang=\\"postcss\\">\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style lang=\\"postcss\\">\\n${0}\\n</style>\\n```"},"detail":"postcss.vue | .css","sortText":"2c<style> postcss.vue \xe2\x9c\x8c"},{"label":"<style> sass-scoped.vue \xe2\x9c\x8c","insertText":"<style lang=\\"sass\\" scoped>\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style lang=\\"sass\\" scoped>\\n${0}\\n</style>\\n```"},"detail":"sass-scoped.vue | .css","sortText":"2c<style> sass-scoped.vue \xe2\x9c\x8c"},{"label":"<style> sass.vue \xe2\x9c\x8c","insertText":"<style lang=\\"sass\\">\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style lang=\\"sass\\">\\n${0}\\n</style>\\n```"},"detail":"sass.vue | .css","sortText":"2c<style> sass.vue \xe2\x9c\x8c"},{"label":"<style> scss-scoped.vue \xe2\x9c\x8c","insertText":"<style lang=\\"scss\\" scoped>\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style lang=\\"scss\\" scoped>\\n${0}\\n</style>\\n```"},"detail":"scss-scoped.vue | .css","sortText":"2c<style> scss-scoped.vue \xe2\x9c\x8c"},{"label":"<style> scss.vue \xe2\x9c\x8c","insertText":"<style lang=\\"scss\\">\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style lang=\\"scss\\">\\n${0}\\n</style>\\n```"},"detail":"scss.vue | .css","sortText":"2c<style> scss.vue \xe2\x9c\x8c"},{"label":"<style> stylus-scoped.vue \xe2\x9c\x8c","insertText":"<style lang=\\"stylus\\" scoped>\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style lang=\\"stylus\\" scoped>\\n${0}\\n</style>\\n```"},"detail":"stylus-scoped.vue | .css","sortText":"2c<style> stylus-scoped.vue \xe2\x9c\x8c"},{"label":"<style> stylus.vue \xe2\x9c\x8c","insertText":"<style lang=\\"stylus\\">\\n${0}\\n</style>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<style lang=\\"stylus\\">\\n${0}\\n</style>\\n```"},"detail":"stylus.vue | .css","sortText":"2c<style> stylus.vue \xe2\x9c\x8c"},{"label":"<script> javascript.vue \xe2\x9c\x8c","insertText":"<script>\\nexport default {\\n\\t${0}\\n}\\n</script>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<script>\\nexport default {\\n\\t${0}\\n}\\n</script>\\n```"},"sortText":"2d<script> javascript.vue \xe2\x9c\x8c"},{"label":"<script> typescript.vue \xe2\x9c\x8c","insertText":"<script lang=\\"ts\\">\\nimport Vue from \'vue\'\\nexport default Vue.extend({\\n\\t${0}\\n})\\n</script>","insertTextFormat":2,"kind":17,"documentation":{"kind":"markdown","value":"```vue\\n<script lang=\\"ts\\">\\nimport Vue from \'vue\'\\nexport default Vue.extend({\\n\\t${0}\\n})\\n</script>\\n```"},"sortText":"2d<script> typescript.vue \xe2\x9c\x8c"}]}}' Traceback (most recent call last): File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/bottle/bottle.py", line 862, in _handle return route.call(**args) File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/third_party/bottle/bottle.py", line 1740, in wrapper rv = callback(*a, **ka) File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/ycmd/watchdog_plugin.py", line 104, in wrapper return callback( *args, **kwargs ) File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/ycmd/hmac_plugin.py", line 68, in wrapper body = callback( *args, **kwargs ) File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/ycmd/handlers.py", line 120, in GetCompletions completions = filetype_completer.ComputeCandidates( request_data ) File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/ycmd/completers/completer.py", line 271, in ComputeCandidates candidates = self._GetCandidatesFromSubclass( request_data ) File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/ycmd/completers/language_server/language_server_completer.py", line 933, in _GetCandidatesFromSubclass codepoint ) File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/ycmd/completers/language_server/language_server_completer.py", line 920, in ComputeCandidatesInner request_data ), File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/ycmd/completers/language_server/language_server_completer.py", line 1033, in _CandidatesFromCompletionItems _InsertionTextForItem( request_data, item ) ) File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/third_party/ycmd/ycmd/completers/language_server/language_server_completer.py", line 2089, in _InsertionTextForItem item.get( 'insertTextFormat' ) or 1 ] == 'PlainText' AssertionError
The completion items contain "insertTextFormat":2 which indicates snippets instead of plain text completion.
"insertTextFormat":2
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Info
Problem
Sending snippet completions for clients that don't declare that capability can break said clients.
Ycmd client capabilities:
As you can see,
completionItem
doesn't mentionsnippetSupport
. However, this is how vls responds totextDocument/completion
request:The completion items contain
"insertTextFormat":2
which indicates snippets instead of plain text completion.The text was updated successfully, but these errors were encountered: