diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-07-25 18:42:55 +0100 |
---|---|---|
committer | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-07-25 18:42:55 +0100 |
commit | 4647e89defd367a92d00d3bbb11c2463408bb3ad (patch) | |
tree | b1d01cf8f7751daad61ee16fef82e616f55a8261 /crates/ra_lsp_server/src/main_loop/handlers.rs | |
parent | ceb16591deef2190daaf5eb9a6480f20dc5d169c (diff) | |
parent | f1ba963a3097106ad6daa41d04c51b7f2d418d8c (diff) |
Merge #1586
1586: Add type decorators r=matklad a=SomeoneToIgnore
A follow-up of https://github.com/rust-analyzer/rust-analyzer/pull/1549
Now the frontend shows inlay hints as VS Code Decorators:
<img width="666" alt="image" src="https://user-images.githubusercontent.com/2690773/61802687-918fcc80-ae39-11e9-97b0-3195ab467393.png">
<img width="893" alt="image" src="https://user-images.githubusercontent.com/2690773/61802688-93599000-ae39-11e9-8bcb-4512e22aa3ed.png">
A few notes on the implementation:
* I could not find a normal way to run and display the hints for the file that's already open in the VS Code when it starts.
The updating code runs ok, but does not actually show anything.
Seems like I miss some event that I could add a handler to.
I've also experimented with `setTimeout` and it worked, but this is too ugly.
The hints appear now when a new file is open or when some change is done in the existing file.
* If there's a `dbg!` used in the lsp_server, the frontend starts receiving change events that contain the string from the `dbg!` output.
It should not be the case in a real life, but I've decided to cover this case, just in case.
* For bigger files, ~500 lines, the decorators start to blink, when updated, this does not seem to be very much of a problem for me at this particular stage of the feature development and can be optimized later. In the worst case, those decorators can be turned off in settings.
* Cursor movement is rather non-intuitive on the right edge of the decorator.
Seems like a thing to fix in the VS Code, not in the plugin.
Co-authored-by: Kirill Bulatov <[email protected]>
Diffstat (limited to 'crates/ra_lsp_server/src/main_loop/handlers.rs')
0 files changed, 0 insertions, 0 deletions