Skip to content

feat: show full type in tooltips for hints #19640

New issue

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

roife
Copy link
Member

@roife roife commented Apr 20, 2025

fix #19615.

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 20, 2025
@roife roife marked this pull request as draft April 21, 2025 02:25
@roife roife marked this pull request as ready for review April 21, 2025 03:22
@roife
Copy link
Member Author

roife commented Apr 21, 2025

image

pub struct InlayHintLabel {
pub parts: SmallVec<[InlayHintLabelPart; 1]>,
pub tooltip: Option<LazyProperty<String>>,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should not be needed here, we should instead record the hover tooltip for the ... parts (to make that work, we probably need to add a function to HirWrite that is called when the truncation string gets emitted).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If so, should we concatenate the types at the end? 👀 I tried adding a tooltip only for ..., but it was quite inconvenient. Displaying the tooltip for the entire type directly is a better choice.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The feature itself shouldn't require changes to our inlay hint structure here (and thus also no changes in to_proto). Associating a tooltip with all parts doesnt make sense when every part can track tooltips themselves.

I would expect that if HirWrite had a function like fn start_truncated(&mut self) (and end) that gets called when the formatting infra emits a ... we could have that implemented as:

    fn start_truncated(&mut self) {
        self.make_new_part();
        // render full type into the new part tooltip here / (lazily)
    }

    fn end_truncated(&mut self) {
        self.make_new_part();
    }

and probably needs InlayHintLabelBuilder to get the full type as an additional field or so

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Show the collapsed part in tooltips for inlay hints.
3 participants