YouCompleteMe/python/ycm
zzbot 95efbc8766
Auto merge of #3208 - micbou:null-character-completion, r=micbou
[READY] Handle null characters in completion response

The `detailed_info` field may contain null characters e.g. `\x00` in Python docstrings (though it doesn't make sense to use such characters in a docstring). Since these characters cannot be evaluated through `pyeval` (and `py3eval`), we replace them with the symbol used by Vim to display them (`^@`).

This PR also rewrites the `_ConvertCompletionDataToVimData` function by relying on two things:
 - [the `insertion_text` field is always defined](600f54de20/ycmd/responses.py (L109));
 - [Vim ignores fields with an empty string](833e5dab14/src/edit.c (L2748-L2755)).

I did some measurements and the performance hit is negligible.

Fixes #3207.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/3208)
<!-- Reviewable:end -->
2018-11-17 05:23:42 -08:00
..
client Auto merge of #3208 - micbou:null-character-completion, r=micbou 2018-11-17 05:23:42 -08:00
tests Auto merge of #3208 - micbou:null-character-completion, r=micbou 2018-11-17 05:23:42 -08:00
__init__.py Fixing python tests broken in rename 2013-05-19 20:06:14 -07:00
base.py Simplify AdjustCandidateInsertionText function 2018-10-14 18:07:55 +02:00
buffer.py Update JavaScript support and documentation 2018-07-25 22:15:01 +02:00
diagnostic_filter.py Do not install aliases from future 2017-03-18 18:24:48 +01:00
diagnostic_interface.py Update matches for all windows 2018-06-03 18:58:09 +02:00
omni_completer.py Convert strings from omnifunc into dictionaries 2018-10-14 18:07:54 +02:00
paths.py Drop Python 2.6 and Python 3.3 2018-01-30 18:34:50 +01:00
syntax_parse.py Add flake8-ycm to test requirements 2018-05-30 02:53:28 +02:00
unsafe_thread_pool_executor.py Add flake8-ycm to test requirements 2018-05-30 02:53:28 +02:00
vimsupport.py Recompute starting column on auto-wrapping 2018-11-17 01:07:02 +01:00
youcompleteme.py Ignore ft= argument from YcmCompleter command 2018-09-28 01:12:23 +02:00